commit dcd1322d413b8d86b220c730189c7be5bc0489da Author: kjh2064 Date: Sun Aug 2 05:15:36 2026 +0900 Initial commit: Add project files diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..72f9ae60 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.cs] +indent_style = space +indent_size = 4 +dotnet_sort_system_directives_first = true +dotnet_diagnostic.CA2007.severity = none +csharp_style_namespace_declarations = file_scoped:warning + +[*.{json,yml,yaml,ts,vue,css,md}] +indent_style = space +indent_size = 2 diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 00000000..a804dea1 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,80 @@ +name: ci +on: + push: + pull_request: + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ci-${{ gitea.ref }} + cancel-in-progress: true + +jobs: + static: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + - run: python tools/validate_v16.py + - run: python -m unittest -v + working-directory: research/hardening + - run: python -m unittest -v scripts.tests.test_scaffold_slice scripts.tests.test_scaffold_ui_screen + + backend: + runs-on: ubuntu-latest + timeout-minutes: 30 + services: + postgres: + image: postgres:17 + env: + POSTGRES_DB: kartsell + POSTGRES_USER: kartsell + POSTGRES_PASSWORD: kartsell + ports: ["5432:5432"] + options: >- + --health-cmd "pg_isready -U kartsell" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: '10.0.x' + - run: dotnet restore KArtSell.sln + - run: dotnet build KArtSell.sln --no-restore -c Release + - run: dotnet run --project src/KArtSell.DbMigrator -c Release --no-build + env: + KARTSELL_POSTGRES: Host=localhost;Port=5432;Database=kartsell;Username=kartsell;Password=kartsell + - run: dotnet run --project src/KArtSell.DbMigrator -c Release --no-build + env: + KARTSELL_POSTGRES: Host=localhost;Port=5432;Database=kartsell;Username=kartsell;Password=kartsell + - run: dotnet test KArtSell.sln --no-build -c Release --logger trx + env: + KARTSELL_POSTGRES: Host=localhost;Port=5432;Database=kartsell;Username=kartsell;Password=kartsell + + frontend: + runs-on: ubuntu-latest + timeout-minutes: 30 + steps: + - uses: actions/checkout@v4 + - run: test -f frontend/pnpm-lock.yaml || (echo "pnpm-lock.yaml is required for reproducible CI" && exit 1) + - uses: pnpm/action-setup@v4 + with: + version: 10 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: pnpm + cache-dependency-path: frontend/pnpm-lock.yaml + - run: pnpm install --frozen-lockfile + working-directory: frontend + - run: pnpm typecheck && pnpm test && pnpm build + working-directory: frontend + - run: pnpm exec playwright install --with-deps chromium && pnpm e2e + working-directory: frontend diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..bd690d07 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +**/bin/ +**/obj/ +frontend/node_modules/ +frontend/dist/ +frontend/.env.local +.playwright/ +TestResults/ +*.user +*.suo +.DS_Store +__pycache__/ +*.pyc diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..e246ab1b --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,71 @@ +# K-ArtSell Aegis AI Coding Constitution v12.0 + +1. 자동주문과 KIS 제출 Capability는 OFF다. 별도 승인 Release 전 구현·활성화·우회하지 않는다. +2. 채팅과 생성 코드는 Source of Truth가 아니다. 모든 변경은 Source / Assumption / Unknown / Decision Required를 표시한다. +3. 한 PR은 한 Vertical Slice 또는 한 동작보존 리팩터링 목적만 가진다. +4. Endpoint→Application→Pure Policy→Dapper SQL→Outbox→Tests 경계를 지킨다. +5. Domain Policy는 시간·랜덤·네트워크·DB·DI Container를 직접 읽지 않는다. +6. Generic Repository, God Service, Service Locator, Job 내 비즈니스 정책, 조기 Microservice 분리를 금지한다. +7. 모듈은 다른 모듈 Source Table을 직접 조회하지 않는다. 승인된 Contract/Read Model만 사용한다. +8. `DateTime.Now/UtcNow`를 직접 사용하지 않고 IClock과 MarketCalendar를 사용한다. +9. 금융값은 decimal, 명시적 rounding, 단위 계약을 사용한다. 모델 내부 double은 경계에서 변환한다. +10. `SellRatioOfLot`, `SellQuantity`, `TargetPortfolioWeightAfter`, `StrategicCoreFloorWeight`를 혼용하지 않는다. +11. EvidenceSnapshot·DatasetId·Model/Config/Code SHA 없이 Decision/Recommendation을 저장하지 않는다. +12. Command/Job는 IdempotencyKey/JobRunId/Watermark를 갖고 replay를 견딘다. +13. Evidence/Decision/Audit는 update/delete하지 않고 append/correction event로 보존한다. +14. Write Model은 정규화·append·revision, 화면은 version/watermark/rebuild가 있는 Read Model이다. +15. 서버 상태는 TanStack Query가 소유한다. Pinia에 API 응답을 복제하지 않는다. +16. FE request/response는 Zod로 runtime validation하고 같은 retry에 같은 Idempotency-Key를 재사용한다. +17. `/internal/*` Endpoint는 Roles 또는 Policies를 선언하며 익명 접근을 허용하지 않는다. +18. 알고리즘 변경은 Policy ID, Golden, Frozen OOS, cost×2, false-exit/reentry/ES, ModelCard를 동반한다. +19. 새 library/pattern/table/threshold는 ADR/Issue 승인 없이 도입하지 않는다. +20. 실행하지 못한 build/test/migration을 통과했다고 기록하지 않는다. +21. AI 생성 Migration은 fresh/upgrade/re-run/failure rehearsal 및 DBA 승인 없이는 병합하지 않는다. +22. 실고객 데이터·실계좌·실주문 키·secret를 prompt/fixture/log/trace에 넣지 않는다. +23. Metric·Alert·Runbook·Rollback·Owner/Secondary가 없으면 Done이 아니다. + + +## v12.1 execution-readiness delta + +- Every change must cite Requirement/Slice/Policy/Data/API/DB/Job/UI/Test IDs. +- Production commands load Evidence/Model/Config from approved server-side PIT context; never trust client-supplied evidence. +- Write models are normalized and append/correction based. Denormalization is allowed only in versioned, rebuildable read models. +- Outbox/Inbox/JobRun/Projection operations require scope, idempotency, watermark, hashes, and replay evidence. +- No generic repository, God service, reflection plugin framework, premature microservice, or unapproved threshold. +- Refactoring and policy changes must be separate PRs with characterization or Golden tests first. +- Never claim a build, migration, test, Shadow period, PBO, or DSR result that was not executed and preserved as evidence. + +## v12.2 strategic data-semantics delta + +- `CurrentSecurityPortfolioWeight`, `CurrentLotPortfolioWeight`, `SellRatioOfLot`, and `StrategicCoreFloorWeight` are distinct units. Never reintroduce the ambiguous `CurrentPortfolioWeight` into active decision code. +- A lot-relative sell changes security weight by `CurrentLotPortfolioWeight * SellRatioOfLot`. +- Persist the ordered policy trace with Applied/Blocked/NotApplicable dispositions; do not expose raw internal scores directly to customers. +- Prior migrations are immutable. v12.2 changes belong in migration `0014` or later. +- The six current-session attachments and their SHA-256 values are part of the release evidence. +- Use the reviewed templates under `templates/`; do not bulk-generate unapproved modules or placeholder implementations. + +## v12.3 execution and semantic-version delta + +- `weight_semantics_version=1` contexts are legacy ambiguous data and must never enter active decisions; rebuild them as version 2 from explicit security and lot weights. +- A positive opportunity edge with a zero or missing requested sell ratio is BLOCKED. Never clamp missing intent to a minimum sell. +- Policy IDs, priorities and thresholds must match `contracts/policies/sell-policy-contract.v1.json`; drift blocks G2. +- Decision/API/Event/DB evidence must preserve `decision_contract_version` and `policy_trace_schema_version`. +- Outcome metrics must name a definition version, population, numerator, denominator, window and aggregation. Do not equate 63-session research output with an annual target without approval. +- `scripts/scaffold_slice.py` is dry-run by default, refuses overwrite and produces SCAFFOLD_ONLY code. Generated files are not approved implementation. +- The seven cumulative attachments and their SHA-256 values are part of v12.3 release evidence. + +## v12.4 Model Operations Constitution + +- Scheduler automation is limited to EVALUATION_ONLY, PROPOSAL_ONLY and DRILL_ONLY. +- Never generate or merge automatic model promotion, rollback, threshold mutation, code change, automatic order or KIS submission paths. +- Every evaluation request freezes Dataset/Model/Config/Code/Contract VersionSet from an approved server-side context. +- Metric changes require a versioned numerator, denominator, window, aggregation, PIT/revision rule and Golden/OOS impact. +- Improvement proposals are documents and records only; they do not edit model, policy, configuration or source files. +- Drift thresholds, false-exit definition and retention policy are DECISION_REQUIRED until approved. + +## v14.0 UI / Model Feedback non-negotiables +- Feature code MUST NOT import PrimeVue or AG Grid directly. Use shared UI ports and screen types. +- UI provider changes require contract, accessibility, visual, state-matrix and performance evidence. +- Model operation automation stops at evaluation/proposal. Model activation is human change approval only. +- J39 and every new schedule remain disabled until their source, calendar, ownership and alert contracts are approved. +- Never claim .NET, pnpm, PostgreSQL, Playwright or Shadow evidence passed unless the actual artifact is attached. diff --git a/DISTRIBUTION_README.md b/DISTRIBUTION_README.md new file mode 100644 index 00000000..8c77fa83 --- /dev/null +++ b/DISTRIBUTION_README.md @@ -0,0 +1,8 @@ +# K-ArtSell Aegis v16.0 Distribution + +Use `Core_NoLegacy` for development and CI. It contains no nested ZIP archives. +Use `Full_With_Attachments` for source preservation. It contains one prior v15 Core archive. + +Execution order: read v10/v12.1 baselines → review v16 docs/decisions → run `python tools/validate_v16.py` → provision .NET 10/pnpm/PostgreSQL → execute build/tests/migration rehearsal → complete Shadow/model gates. + +This package is `IMPLEMENTATION_TEMPLATE / STATIC_VALIDATED`. Automatic model activation, customer publication, order submission and KIS submission remain OFF. diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 00000000..2ea0b864 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,11 @@ + + + net10.0 + enable + enable + true + latest-recommended + true + true + + diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000..348bf2e0 --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,27 @@ + + + true + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KArtSell.sln b/KArtSell.sln new file mode 100644 index 00000000..75d43065 --- /dev/null +++ b/KArtSell.sln @@ -0,0 +1,60 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.BuildingBlocks", "src/KArtSell.BuildingBlocks/KArtSell.BuildingBlocks.csproj", "{5F0F6CB9-ECB2-5B9E-8FCF-2AF378C6BB82}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.Modules.SignalEngine", "src/KArtSell.Modules.SignalEngine/KArtSell.Modules.SignalEngine.csproj", "{C203AEFE-E523-50DF-A0BC-66E41914E411}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.Host", "src/KArtSell.Host/KArtSell.Host.csproj", "{7F4AD582-8828-5F37-A4F3-E0F8ED300BFF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.DbMigrator", "src/KArtSell.DbMigrator/KArtSell.DbMigrator.csproj", "{C1E481A2-B1C9-5647-8600-DBE8D854552F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.SignalEngine.UnitTests", "tests/KArtSell.SignalEngine.UnitTests/KArtSell.SignalEngine.UnitTests.csproj", "{FAA2A1FD-EB0C-50F6-BC9F-D571E1CF570E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.ArchitectureTests", "tests/KArtSell.ArchitectureTests/KArtSell.ArchitectureTests.csproj", "{E62B968F-28A3-5055-8E5E-BFB52EC0175E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.Modules.ModelOperations", "src/KArtSell.Modules.ModelOperations/KArtSell.Modules.ModelOperations.csproj", "{A9A7D32E-7F4D-4B90-8C57-3D6A2E1A2401}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KArtSell.ModelOperations.UnitTests", "tests/KArtSell.ModelOperations.UnitTests/KArtSell.ModelOperations.UnitTests.csproj", "{B0B8E43F-805E-4CA1-9D68-4E7B3F2B3502}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5F0F6CB9-ECB2-5B9E-8FCF-2AF378C6BB82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5F0F6CB9-ECB2-5B9E-8FCF-2AF378C6BB82}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5F0F6CB9-ECB2-5B9E-8FCF-2AF378C6BB82}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5F0F6CB9-ECB2-5B9E-8FCF-2AF378C6BB82}.Release|Any CPU.Build.0 = Release|Any CPU + {C203AEFE-E523-50DF-A0BC-66E41914E411}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C203AEFE-E523-50DF-A0BC-66E41914E411}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C203AEFE-E523-50DF-A0BC-66E41914E411}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C203AEFE-E523-50DF-A0BC-66E41914E411}.Release|Any CPU.Build.0 = Release|Any CPU + {7F4AD582-8828-5F37-A4F3-E0F8ED300BFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7F4AD582-8828-5F37-A4F3-E0F8ED300BFF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7F4AD582-8828-5F37-A4F3-E0F8ED300BFF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7F4AD582-8828-5F37-A4F3-E0F8ED300BFF}.Release|Any CPU.Build.0 = Release|Any CPU + {C1E481A2-B1C9-5647-8600-DBE8D854552F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1E481A2-B1C9-5647-8600-DBE8D854552F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1E481A2-B1C9-5647-8600-DBE8D854552F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1E481A2-B1C9-5647-8600-DBE8D854552F}.Release|Any CPU.Build.0 = Release|Any CPU + {FAA2A1FD-EB0C-50F6-BC9F-D571E1CF570E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FAA2A1FD-EB0C-50F6-BC9F-D571E1CF570E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FAA2A1FD-EB0C-50F6-BC9F-D571E1CF570E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FAA2A1FD-EB0C-50F6-BC9F-D571E1CF570E}.Release|Any CPU.Build.0 = Release|Any CPU + {E62B968F-28A3-5055-8E5E-BFB52EC0175E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E62B968F-28A3-5055-8E5E-BFB52EC0175E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E62B968F-28A3-5055-8E5E-BFB52EC0175E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E62B968F-28A3-5055-8E5E-BFB52EC0175E}.Release|Any CPU.Build.0 = Release|Any CPU + {A9A7D32E-7F4D-4B90-8C57-3D6A2E1A2401}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9A7D32E-7F4D-4B90-8C57-3D6A2E1A2401}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9A7D32E-7F4D-4B90-8C57-3D6A2E1A2401}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9A7D32E-7F4D-4B90-8C57-3D6A2E1A2401}.Release|Any CPU.Build.0 = Release|Any CPU + {B0B8E43F-805E-4CA1-9D68-4E7B3F2B3502}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0B8E43F-805E-4CA1-9D68-4E7B3F2B3502}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0B8E43F-805E-4CA1-9D68-4E7B3F2B3502}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B0B8E43F-805E-4CA1-9D68-4E7B3F2B3502}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/PACKAGE_MANIFEST.json b/PACKAGE_MANIFEST.json new file mode 100644 index 00000000..0c088a29 --- /dev/null +++ b/PACKAGE_MANIFEST.json @@ -0,0 +1,3510 @@ +{ + "package": "K-ArtSell Aegis", + "version": "v16.0", + "root": "KArtSell_Aegis_v16_0_reference_implementation", + "status": "IMPLEMENTATION_TEMPLATE_STATIC_VALIDATED_RUNTIME_REHEARSAL_REQUIRED", + "generated_at": "2026-08-01T19:41:12.299837+00:00", + "file_count": 699, + "total_bytes": 18413047, + "source_archive_policy": { + "core_nested_zip_count": 0, + "full_source_archive_count": 1 + }, + "files": [ + { + "path": ".editorconfig", + "size": 369, + "sha256": "f35bc6049060b59e664933599133dd3fa8d042434ac0200f67ce4416aac1f195" + }, + { + "path": ".gitea/workflows/ci.yml", + "size": 2576, + "sha256": "3467a392a4b99b6207a3595c7cd2004a12ac2c015656ab56b92d283566d5ae04" + }, + { + "path": ".gitignore", + "size": 142, + "sha256": "456f6535fd54dcf2fff0031f31fe9206673bb18187be985877e83ba5e1bfa3ef" + }, + { + "path": "AGENTS.md", + "size": 6475, + "sha256": "2a46ba12a4480ec583fd0d5a718676ce455fed6d23406ef2240c7279281c175c" + }, + { + "path": "DISTRIBUTION_README.md", + "size": 599, + "sha256": "1b64ecd71c3e683bd2b4191c557ae35098fa6104d7a957bd93bc0e450d9b64bd" + }, + { + "path": "DOCX_QA_V12_2.txt", + "size": 503, + "sha256": "d917950192b515a7736477b4a57711026debdfe596a6503d4001f6a38b1ee012" + }, + { + "path": "DOCX_QA_V12_3.txt", + "size": 495, + "sha256": "1a2bf24001700357a5022f17ca169e0e9c1fc48d37e4af5b2ebff77c4450efe8" + }, + { + "path": "DOCX_QA_V12_4.txt", + "size": 694, + "sha256": "dcd316fc70c0f5292009600aa815fc67fc8c5d7099a61f0e841bcfe135580fa3" + }, + { + "path": "DOCX_QA_V12_5.txt", + "size": 361, + "sha256": "31b7d42445993d1742fb9aa1f448367b450d8ed579c5fc0722655ad233435c41" + }, + { + "path": "DOCX_QA_V13_0.txt", + "size": 716, + "sha256": "96588e0e245d371f4645affe4f24216c6f2d9f11e7a67a4d28c5580706ab9aa5" + }, + { + "path": "DOCX_QA_V14_0.txt", + "size": 669, + "sha256": "3c0e1915232bb80d9992cd635e8cc43bab8970beb8a4cf366ec867f6f76d25a5" + }, + { + "path": "DOCX_QA_V15_0.txt", + "size": 489, + "sha256": "e7a64f6f7841aa112a196325f5d938236c5bdf733814e08f959540be429ee6d4" + }, + { + "path": "DOCX_QA_V16_0.txt", + "size": 298, + "sha256": "adfe5744a02435441cc7664fdd1bed1c0366fbf641c44eb4e44b0eb709096157" + }, + { + "path": "Directory.Build.props", + "size": 427, + "sha256": "1b9316a55c61a41e2bea70fe860dc4cd6dc225b7506d8b25b9b764df97609e6e" + }, + { + "path": "Directory.Packages.props", + "size": 1601, + "sha256": "ce5187f882c9b32002e8aaed7d2ad6ed076ec450ae85ccde1c8703806bcf016e" + }, + { + "path": "FRONTEND_SYNTAX_VALIDATION_V13_0.txt", + "size": 41, + "sha256": "6def03419c8bf0217f90adc34c675e543501808735cc4da771d78acc9df7d545" + }, + { + "path": "KArtSell.sln", + "size": 4651, + "sha256": "db7570fb57ba130481ad22a58daa3288697e87be5720fd6e06a9c5662d8f6138" + }, + { + "path": "PACKAGE_POLICY_V14_0.md", + "size": 605, + "sha256": "6545ced9b75e35a5038a3c5b59cd69a80e6933fde65bb39eb79676ffefcbaef9" + }, + { + "path": "PACKAGE_POLICY_V15_0.md", + "size": 334, + "sha256": "a5544f61f74ec38c661112489122bd1f1bc062303710e580b0361e3fa920f29e" + }, + { + "path": "PACKAGE_POLICY_V16_0.md", + "size": 537, + "sha256": "1d17beb712d48f7d46d0f33cb58b72d254bf7fd4eb849d01f3a45f7ebc299226" + }, + { + "path": "PACKAGE_QA_POLICY_V16_0.txt", + "size": 320, + "sha256": "768ee7b83568c192606f5406126809f4cc78d6d8a5cdb37ecd5143ad8c79c679" + }, + { + "path": "README.md", + "size": 4804, + "sha256": "fc4f645d7faeffc525fe3ea3dee85f49305612b02ae767402dff78de8145ae0b" + }, + { + "path": "RELEASE_NOTES_V12_1.md", + "size": 1248, + "sha256": "2165bfc06fbad044d0c9c20935de98c5b31c174f56afdce12f6ca15193be0d11" + }, + { + "path": "RELEASE_NOTES_V12_2.md", + "size": 610, + "sha256": "fec641183bd8280f5499db64dc6aaf5b30920aac3cebce82f1c56dee7344df3d" + }, + { + "path": "RELEASE_NOTES_V12_3.md", + "size": 834, + "sha256": "c6ca453b2ce1754c9d3f788f808793562f6b8979fdec00b967e915ba04ab3c43" + }, + { + "path": "RELEASE_NOTES_V12_4.md", + "size": 1395, + "sha256": "98754b18b8ba071b1fa09643502f8fea0e0094b50c77515a3aa1d52bee26b041" + }, + { + "path": "RELEASE_NOTES_V12_5.md", + "size": 740, + "sha256": "b3f310ad185867a148df62429694fb13c2b0ce9c2300264978ac3a99c535ff51" + }, + { + "path": "RELEASE_NOTES_V13_0.md", + "size": 1370, + "sha256": "35b4946a192a04b127248cf32ba9d12e9b7dc2c48d73b339f5a254ca5f371a92" + }, + { + "path": "RELEASE_NOTES_V14_0.md", + "size": 745, + "sha256": "6431aafcbbdab57f42db78214b99694de1d88bb87351c6fd93341a5333da1e36" + }, + { + "path": "RELEASE_NOTES_V15_0.md", + "size": 359, + "sha256": "2ae11d839c5b71e4b6dbb2633afae7fe24725cc14ec841a0a2e676a41cba3540" + }, + { + "path": "RELEASE_NOTES_V16_0.md", + "size": 608, + "sha256": "fd1b9f436287265aa02bde032917d42916a299ed6afd8793985529facf17bd5f" + }, + { + "path": "RESEARCH_VALIDATION_V12_2.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "RESEARCH_VALIDATION_V12_3.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "RESEARCH_VALIDATION_V12_4.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "RESEARCH_VALIDATION_V12_5.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "RESEARCH_VALIDATION_V15_0.txt", + "size": 514, + "sha256": "d00081efa6ffdf305b8523be33255f6bab531fc313005af020f7c3ac97088e98" + }, + { + "path": "RESEARCH_VALIDATION_V16_0.txt", + "size": 280, + "sha256": "946157d2bedafd2b7ec20d2f0aede1ce07fa095a0af04fe45073e19e70a2b825" + }, + { + "path": "SCAFFOLD_VALIDATION_V12_3.txt", + "size": 414, + "sha256": "cfb19b72d80f79fc1cf7b0ae6fb54b24db8c0b883ec312c549139ef7d5065628" + }, + { + "path": "SCAFFOLD_VALIDATION_V12_4.txt", + "size": 414, + "sha256": "cfb19b72d80f79fc1cf7b0ae6fb54b24db8c0b883ec312c549139ef7d5065628" + }, + { + "path": "SCAFFOLD_VALIDATION_V12_5.txt", + "size": 414, + "sha256": "cfb19b72d80f79fc1cf7b0ae6fb54b24db8c0b883ec312c549139ef7d5065628" + }, + { + "path": "SCAFFOLD_VALIDATION_V13_0.txt", + "size": 349, + "sha256": "4833ec50b8916905181a334e49c0de85e96677f18c86fc13abd9437c6674e681" + }, + { + "path": "SCAFFOLD_VALIDATION_V15_0.txt", + "size": 553, + "sha256": "687beb8e558099a591a9422814ec348a0478a07347dae02d91c4087820473c7a" + }, + { + "path": "SCAFFOLD_VALIDATION_V16_0.txt", + "size": 226, + "sha256": "658df87b697d423c8beabb3f514141684335e001870aa1863b5dd6cb2a38ddaa" + }, + { + "path": "SOURCE_BASIS.md", + "size": 1556, + "sha256": "eb17dcacd94d8207cc0712fb571341e2d4d56ac86d2d8b8b22574ccab144e878" + }, + { + "path": "SOURCE_BASIS_V12_5.md", + "size": 880, + "sha256": "3acda947f45b7c26cc1b8a87a3ae7646de9a6058ae73bc56a95464566a8df168" + }, + { + "path": "SOURCE_BASIS_V16_0.md", + "size": 300, + "sha256": "23a6427fd671beff48c6ae4cd710ffcc0fb4172511837e73eff06d6c5cf3f506" + }, + { + "path": "STATIC_VALIDATION_V11_1_BASELINE.txt", + "size": 1062, + "sha256": "4bd8f78683630e45d70443dc4816e193342bc7675a0eb24c8443dee1b18a939d" + }, + { + "path": "STATIC_VALIDATION_V12_1.txt", + "size": 1023, + "sha256": "193d6ef4580e5f617cbf92ac80fb6956d8b16c2d56be37638f49e620a30cbae8" + }, + { + "path": "STATIC_VALIDATION_V12_2.txt", + "size": 1083, + "sha256": "017db182ab1a3d02e333964998d2320cae056aa0be4ad317c6b3b2b8e27e5399" + }, + { + "path": "STATIC_VALIDATION_V12_3.txt", + "size": 1208, + "sha256": "17840549957551985e9d873456143f98e653492ee06a260b6e211582721da22f" + }, + { + "path": "STATIC_VALIDATION_V12_4.txt", + "size": 1300, + "sha256": "5511e64d441415f89faceeebb1ab899519521745768c64d6a81ac81e22e97abf" + }, + { + "path": "STATIC_VALIDATION_V12_5.txt", + "size": 1013, + "sha256": "edfde4e295d1f80b169b8275877366a5c9342a71aecb4e4a016915e852fffb61" + }, + { + "path": "STATIC_VALIDATION_V13_0.txt", + "size": 166, + "sha256": "b76e525ecfc20f9934f79f483f1fe509ac7f8f0c918a620cb1e7f7b6c5925ade" + }, + { + "path": "STATIC_VALIDATION_V14_0.txt", + "size": 815, + "sha256": "ff7a781c60b31abcb75d37dff293f23341a5137db0a57cc30354205208acd999" + }, + { + "path": "STATIC_VALIDATION_V15_0.txt", + "size": 191, + "sha256": "c57f4cae4b6ab1d07f23324163922b8a8e0c1b4a268829a5c89c20cc5b3e4b69" + }, + { + "path": "STATIC_VALIDATION_V16_0.txt", + "size": 208, + "sha256": "6129e30afb2c1cd6ac27429f48b73d22ea097d306179a88083467e708a90f477" + }, + { + "path": "VALIDATION_EVIDENCE_V12_1.txt", + "size": 1978, + "sha256": "66f6b05facb445f83669d347ebd61a1b61afa256ac94fac6bcf0ccd8eda7e7a6" + }, + { + "path": "VALIDATION_EVIDENCE_V12_2.txt", + "size": 566, + "sha256": "fa8c07d66deda17d539fa3ae5f74093858b414b1f80c2999e7f3cea3058672fd" + }, + { + "path": "VALIDATION_EVIDENCE_V12_3.txt", + "size": 684, + "sha256": "3f8f7e4ac42253b1f3005d9efdf779f8ad7b960b8d35afae448e1d27a6382c1a" + }, + { + "path": "VALIDATION_EVIDENCE_V12_4.txt", + "size": 979, + "sha256": "c195703d3c34168603f45d291d130f5d7c4410724203bb465ff98cd6c8aa762d" + }, + { + "path": "VALIDATION_EVIDENCE_V12_5.txt", + "size": 784, + "sha256": "1113bb613fc804ed3770f163ec4561a05d02fe7d8a601102d7eb67f450778e02" + }, + { + "path": "VALIDATION_EVIDENCE_V13_0.txt", + "size": 1787, + "sha256": "dd22efa9924b13fa72e9b72b20728394f9f3725b82b4e2f3079931eaa21b7f16" + }, + { + "path": "VALIDATION_EVIDENCE_V14_0.txt", + "size": 1178, + "sha256": "fea920339cd1dacd117e41d26221aa3571f0a989b3e8fce6c161607540caaf74" + }, + { + "path": "VALIDATION_EVIDENCE_V15_0.txt", + "size": 965, + "sha256": "0f630736f4d7c1b6802e209ece475804a34a9bbf2f54ba8306c2efc4951aa68c" + }, + { + "path": "VALIDATION_EVIDENCE_V16_0.txt", + "size": 591, + "sha256": "340345f68e3d4db3930c797c6257dab60d9c24aff37622a0ed9d13b4dbaeb91f" + }, + { + "path": "attachments/current_session/K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx", + "size": 64063, + "sha256": "eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3" + }, + { + "path": "attachments/current_session/K-ArtSell_Aegis_v15_0_통합고도화_제안서.docx", + "size": 52933, + "sha256": "ef7e5746f129ecf14d1bc7d7bd5705fe44ca72251b050769506beb343e28c0a0" + }, + { + "path": "attachments/current_session/K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx", + "size": 402134, + "sha256": "d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6" + }, + { + "path": "attachments/current_session/SOURCE_INDEX_V16_0.json", + "size": 1931, + "sha256": "400df666cab7b64413b07f821e88c633ea235285dc301e43da2e611dff22bbef" + }, + { + "path": "attachments/source_archives/KArtSell_Aegis_v15_0_Core_NoLegacy(1).zip", + "size": 4390109, + "sha256": "6c88d2442c831fa11d42726951592929caf2b5bd5847e6b42f9ad9ef28ee1b95" + }, + { + "path": "contracts/README.md", + "size": 687, + "sha256": "e4d95a972d5a91d315202f27426deb59163ee9b3a843bef02cdec15eb142e9d9" + }, + { + "path": "contracts/data/pit-envelope.v1.json", + "size": 460, + "sha256": "48ba160ca4751e8fc286cf57811bf06999b01880a8398fec9579807b35fec1e8" + }, + { + "path": "contracts/data/projection-contract.v1.json", + "size": 379, + "sha256": "78533796bec63d58dea8901b8c0997a7dd52c904b8453cae9d530a0dc4fbe147" + }, + { + "path": "contracts/events/signal-decision-created.v2.schema.json", + "size": 1424, + "sha256": "28366a0b2d0f85493d39d440a1c754cb3f228207dc49365e7057d27b2f973776" + }, + { + "path": "contracts/metrics/outcome-metrics.v1.json", + "size": 1367, + "sha256": "d7fa0a9785ef984654dd5b85e82833de13423566b63b445c23f26827d4ebfcfe" + }, + { + "path": "contracts/metrics/outcome-metrics.v2.json", + "size": 2347, + "sha256": "632840aef35d519fb7bd7ef0e515f46d5e21f0492c85681192845776222cacc9" + }, + { + "path": "contracts/model-governance/evaluation-promotion.v2.json", + "size": 526, + "sha256": "a8ab0ba1aec53524d1b1d7289da3759d6d4928ba10c95d3c5a387fb42c057dc2" + }, + { + "path": "contracts/model-governance/evidence-classification.v1.json", + "size": 925, + "sha256": "ecea3eaf29769083fe54f467985919197d8111ed4e7a45de0f5361fe2518de66" + }, + { + "path": "contracts/model-governance/promotion-gate.v1.json", + "size": 823, + "sha256": "f495ddef3cb3c408e0a259491384de40c93637c88c3bd2eb02094528378f3064" + }, + { + "path": "contracts/policies/sell-policy-contract.v1.json", + "size": 2167, + "sha256": "a269a0331b83c0f6ec108e7587de1d20c798036ff8d0c03d726cd854e73d8480" + }, + { + "path": "contracts/schedules/execution-assurance.v1.json", + "size": 1354, + "sha256": "0fcd3ff9940b4f8d79c3bc2d4d6c3909b246279a2e369a2aeff456fe7f7748e4" + }, + { + "path": "contracts/schedules/execution-ledger.v1.json", + "size": 658, + "sha256": "b34f1be1833c06111d84212b989c5b3c5014c1f9f12de2154b95beabe1bedd42" + }, + { + "path": "contracts/schedules/model-operations.v1.json", + "size": 1930, + "sha256": "c484a4296f43166b88fa6d672892ec058a3b227afbf05887e598322852d083aa" + }, + { + "path": "contracts/schedules/model-operations.v2.json", + "size": 2918, + "sha256": "1ceee37f1bd0c427ff98c18216c011c8808a4571de1a4ed7dbdb4a8f38b20e81" + }, + { + "path": "contracts/schedules/model-operations.v3.json", + "size": 1213, + "sha256": "68d7e2944cad6c7ef2c337043b31eafc402e44981e42e48f6e4c3d11df3ba65a" + }, + { + "path": "contracts/ui/crud-page.v1.json", + "size": 779, + "sha256": "352d014af492d156ac23155f48c55bcbaa759128686b38779c7d49da6bf75adb" + }, + { + "path": "contracts/ui/crud-resource.v2.json", + "size": 735, + "sha256": "40a483dfdef9b99219452c1cfa3cf6404de76b1940017ef4cec9e55287fc8a4f" + }, + { + "path": "contracts/ui/layout-regions.v1.json", + "size": 331, + "sha256": "5cff8b99904831cc8edef845ba5c46bc26e00f9621eebaaf8b29909683079eee" + }, + { + "path": "contracts/ui/screen-types.v2.json", + "size": 1232, + "sha256": "1be7f95e088b41ae21f87de618b93416197ca03d8fd0438d7d117157e7564824" + }, + { + "path": "contracts/ui/ui-adapter.v2.json", + "size": 735, + "sha256": "6c46e3e2dd50475471c845aaa6aadfbffeb4be76ce8442f450b7068f9ba6fd22" + }, + { + "path": "contracts/ui/ui-adapter.v3.json", + "size": 949, + "sha256": "39a79a1bc941b3fd10fae127c362e16cc04a0fe81ef8d121841e84ee5b902ab3" + }, + { + "path": "contracts/ui/ui-adapter.v4.json", + "size": 1027, + "sha256": "0063c629c89c953b6a5a4e1449790479d2923142b4cd71d1e36e7ae567cb5584" + }, + { + "path": "db/migrations/0000_building_blocks.sql", + "size": 1348, + "sha256": "0247e5a9723d72af74ad0c585baf14d7ff64d08956796154e1aa43f7e0893f66" + }, + { + "path": "db/migrations/0010_signal_engine.sql", + "size": 2359, + "sha256": "597a0caf9b0a4000143ea983448a5287d945f4f5ee3fc00d6191314a8d642b35" + }, + { + "path": "db/migrations/0011_signal_engine_hardening.sql", + "size": 981, + "sha256": "3f441220471728dac654d53f5e398e268488f9ff12a208a46f6d06d392058bc7" + }, + { + "path": "db/migrations/0012_signal_engine_integrated_hardening.sql", + "size": 6314, + "sha256": "1322a701291d2a68f6172cd0d363296afa32df724fce2965314e59ebd2af98c5" + }, + { + "path": "db/migrations/0013_execution_readiness_building_blocks.sql", + "size": 2613, + "sha256": "42035f15d92e93f24fd47cc9fd4f918c1bcd99e3188b20a056dc3499ff0cd9b1" + }, + { + "path": "db/migrations/0014_signal_engine_lot_weight_and_policy_trace.sql", + "size": 3253, + "sha256": "af9366067f441b5b35b8702fa905579de914e5f972a7d1f26ab8fb90c8e5fc28" + }, + { + "path": "db/migrations/0015_signal_engine_semantic_versioning.sql", + "size": 5393, + "sha256": "ae063fd73907d11c533d07510c9b48d46cd5a464e903086678e930e97a73ded2" + }, + { + "path": "db/migrations/0016_continuous_model_operations.sql", + "size": 13586, + "sha256": "2b473bdb80bf51adf781b439ff66e9975e60a970b89b4ca8b61bc5a50699dc36" + }, + { + "path": "db/migrations/0017_execution_assurance.sql", + "size": 8166, + "sha256": "322294527e29a78bec818eaf8090dcfc8c42ae90ea348452e34cfbb3c9f56527" + }, + { + "path": "db/migrations/0018_v13_model_feedback_loop.sql", + "size": 6347, + "sha256": "ed849cc5b4bc28aace3004016b6fdca6bffc47cbcfb895336ae17b575bd1b9f4" + }, + { + "path": "db/migrations/0019_v14_governed_feedback_cycle.sql", + "size": 5239, + "sha256": "139e0085ecd7d60c4c9edb13fef530c6fba61977ad252471328a93a0b537f594" + }, + { + "path": "db/migrations/0020_v15_execution_and_ui_contract_hardening.sql", + "size": 5928, + "sha256": "692173f4ceeda0ffe28cb25feb278e1d86563e9b9fedc7c29a049445d94ade67" + }, + { + "path": "db/migrations/0021_v16_reference_implementation_closure.sql", + "size": 4911, + "sha256": "ab4af1a50a6d3a56aa4f2793e91817c3f3c99d5223c33b63ed914e05c990d1cc" + }, + { + "path": "docker-compose.yml", + "size": 280, + "sha256": "9550673df5a1373ae78838a43863c7decf29cb53dcfc298b698944f2d1040c78" + }, + { + "path": "docs/00_EXECUTIVE_PROPOSAL.md", + "size": 2815, + "sha256": "5f3c881f14cacb03e78741cc313404aafcf4e6f861a10aebc4ff3aed59a29c65" + }, + { + "path": "docs/01_SOURCE_AUDIT.md", + "size": 3621, + "sha256": "ad3c6f6d86e7e37a0037e3e401b9a0b581f6396471b04d536a7193920063c35e" + }, + { + "path": "docs/02_ALGORITHM_REFACTORING.md", + "size": 3181, + "sha256": "fa6216fe2b1a67a6cd6d0e677932450def56db4e920a7ad782ff98e4da87ff7a" + }, + { + "path": "docs/03_ARCHITECTURE_BE_FE.md", + "size": 2745, + "sha256": "1733fecb7567036fe0d6b5b963fa27d199c25b5d173fc3ba0ad1aceba389743c" + }, + { + "path": "docs/04_WBS_V11.csv", + "size": 5810, + "sha256": "8cbfacfc4e34bdf93af561ce1af1ecad51c351960d90ff2eb645635ff6d4386b" + }, + { + "path": "docs/05_TECH_DEBT_REGISTER.csv", + "size": 1301, + "sha256": "949dbf58bdf8d0ac6dc4be9e65a80b8fcef02702f2d527a2dba724eb0c59c972" + }, + { + "path": "docs/06_VIBE_CODING_GUARDRAILS.md", + "size": 1641, + "sha256": "1d4b119e21b175fff9e4ff4ee5e054f55ac27a1e96c9c12ea1602d25212cbcee" + }, + { + "path": "docs/07_VALIDATION_GATES.md", + "size": 1281, + "sha256": "67d2096bb9010ef4950b84ee34c277d64e967978eb238ce9bb6927c29d14f2aa" + }, + { + "path": "docs/hardening/00_STRATEGIC_HARDENING_REPORT.md", + "size": 12702, + "sha256": "0a4fd514843232270b3823b4eaa4ee526b03e626831f4ca58261cc7fecaf7345" + }, + { + "path": "docs/hardening/01_ARCHITECTURE_FITNESS_FUNCTIONS.md", + "size": 1297, + "sha256": "1e9824baf092631ebc9e03c5b6b7e082c5991681718e956207429fb0ba2bf4a7" + }, + { + "path": "docs/hardening/02_ALGORITHM_CONTRACT.md", + "size": 1215, + "sha256": "5f775cf9fe110be277bb8a8bc111b1b1302506fe6eab7e075f42065fea9ac8d3" + }, + { + "path": "docs/hardening/03_WBS_DELTA_V11_1.csv", + "size": 10861, + "sha256": "d238a8bb806997b4ceb703cb737c6e383e01b1ea869476bfa08e914d0277d14a" + }, + { + "path": "docs/hardening/04_TECH_DEBT_REGISTER_V11_1.csv", + "size": 2801, + "sha256": "e469c0dcf33fcdb1816837887c6ee6afa772f5746619622b933ccfbab8e804dd" + }, + { + "path": "docs/templates/ADR.md", + "size": 213, + "sha256": "8990a1cd00f07e5753cbdcb566a497e3fbce5a1843067f782366745389f7ced5" + }, + { + "path": "docs/templates/AI_CHANGE_CHECKLIST.md", + "size": 517, + "sha256": "e410c897e85ddd7771bf4bdd68d043737cac34b718021cca8fc4f4d092da87c2" + }, + { + "path": "docs/templates/DATA_CONTRACT.md", + "size": 328, + "sha256": "029fc8e75ec1b69fe44579c9ba229acaeb6a8f99b7006bff0b70cfcbabbc54cd" + }, + { + "path": "docs/templates/FEATURE_PACKET.md", + "size": 419, + "sha256": "2e9f3f43a6c4988f815d31c736d39910e98893566d63bc1ea9a0a24cbff84b3a" + }, + { + "path": "docs/templates/IMPROVEMENT_PROPOSAL.md", + "size": 539, + "sha256": "48bf43f72416f19a8ac8b17d71c48783fa1d7f7baa97993375912e4e457ac4d3" + }, + { + "path": "docs/templates/MODEL_CHANGE.md", + "size": 355, + "sha256": "e350cd732f504910a1d734f4734dfe7e7e1e75b933d1a35b2b641833fa9db786" + }, + { + "path": "docs/templates/MODEL_EVALUATION_EVIDENCE.md", + "size": 603, + "sha256": "a7b73e7a40234624234cf27cb21e0ab4cd96073d226f3a90b7a7c5ef6ee5e5f5" + }, + { + "path": "docs/templates/MODEL_OPERATIONS_RUNBOOK.md", + "size": 454, + "sha256": "93b7bc71ff76273b2b6a1a480bfb419872c4604a8c63e5a5ed9ded86b6f8a589" + }, + { + "path": "docs/templates/RELEASE_EVIDENCE.md", + "size": 357, + "sha256": "3373a21328baa61a7af256ca38975c3a1f01a4f05f0733938e3c91e771ce146b" + }, + { + "path": "docs/templates/RUNBOOK.md", + "size": 213, + "sha256": "3bcec4538808b77feaf0aadab4ad20864c2d1e6330717fb3d98f85c7be01d059" + }, + { + "path": "docs/templates/SLICE_SPEC.md", + "size": 391, + "sha256": "31ba947101b85f8a43c1376e9e2d8290194fd9ed3db53df09493d83b8694545f" + }, + { + "path": "docs/templates/TECH_DEBT_ITEM.md", + "size": 180, + "sha256": "8e1083cf3d55450b1a39ba10efc45e99c28866a68a81ca3444730a56d9353ecb" + }, + { + "path": "docs/templates/TRACEABILITY.md", + "size": 178, + "sha256": "444fe99b4a8bdb7cf8d4267580bd5fddbb80bf0171665e319b1e04739ea94db6" + }, + { + "path": "docs/v12/00_EXECUTIVE_INTEGRATED_PROPOSAL.md", + "size": 4219, + "sha256": "1826870263e000902b0cc6f604ad9a4617baf880bf5bf27974cfffb379f3c1b3" + }, + { + "path": "docs/v12/01_SOURCE_AND_GAP_AUDIT.md", + "size": 3251, + "sha256": "3e611a58c4232d911f8b2f0b0ef97f1faf7ada9db421a761fb4a34f68bdc9111" + }, + { + "path": "docs/v12/02_ARCHITECTURE_STANDARD.md", + "size": 2693, + "sha256": "98ed6dde35b9e9750d19eae71de9d8979b05434b830ebb009afa2d7477ba3105" + }, + { + "path": "docs/v12/03_ALGORITHM_AND_DATA_CONTRACT.md", + "size": 2779, + "sha256": "7fdca2d13b58e93e21697ac32ebe6ea7332c2d6242377660ca4ab66f85632476" + }, + { + "path": "docs/v12/04_BE_FE_COMPONENT_STANDARD.md", + "size": 2112, + "sha256": "ddfb545d33e973648546485bd4c86ac7aa4958cf34c98c3520975f10c8d16184" + }, + { + "path": "docs/v12/05_VIBE_CODING_AND_HALLUCINATION_CONTROL.md", + "size": 1773, + "sha256": "5bdae90c9d5cca4310c6abfd78b2fe1e3e1e0f5e51bfd7b63b979d2f09bd25b0" + }, + { + "path": "docs/v12/06_DELIVERY_GATES.md", + "size": 1516, + "sha256": "bea750cf65879d4e84b3bfd60b8f50a2ad9bf0fcac2e2d756f0e7359bf5387d4" + }, + { + "path": "docs/v12/07_WBS_MASTER.csv", + "size": 30625, + "sha256": "3477c3d239a6a4f66b6a08aa377969b85895268d4d7f09dcea43b68a63ae0689" + }, + { + "path": "docs/v12/08_TECH_DEBT_REGISTER.csv", + "size": 2709, + "sha256": "3c2eef83cb8de38158e6518ec7c2b372afe76581f1ebe2806cf4008ab6d1c79a" + }, + { + "path": "docs/v12/09_TRACEABILITY_MATRIX.csv", + "size": 2001, + "sha256": "bf50e165191c9c31f33fce29da4f67c80b1a40a9fbfd96230419659313ad88f1" + }, + { + "path": "docs/v12/10_DECISION_LOG.csv", + "size": 725, + "sha256": "d1feec7f28d32fc3ca2adccb741a6c237c1a3401dd3a0c88c177f6a1d5c3fe8f" + }, + { + "path": "docs/v12/11_20_DAY_RESTART_PLAN.md", + "size": 837, + "sha256": "38806060738e7ef0345db8e2f187c9ab65080969d848b1185af89b6220e40857" + }, + { + "path": "docs/v12/12_TEMPLATE_USAGE.md", + "size": 1356, + "sha256": "5dc8734f6980e63d5d69338241a9d5b36d502d574482b8a0c133de14674e310f" + }, + { + "path": "docs/v12/K-ArtSell_Aegis_v12_φå╡φò⌐Ω│áδÅäφÖö_∞ïñφûë∞á£∞òê∞ä£.docx", + "size": 54732, + "sha256": "62845eaf5382ed78e6b6065f3e95c4af9cd87f71bc418bf0077b68e727fce832" + }, + { + "path": "docs/v12/SOURCE_COVERAGE_MATRIX.csv", + "size": 528, + "sha256": "d995ab9382f51286383d2cebd9c82dc8e6095f417af79cf7a115ed2ca0a145e4" + }, + { + "path": "docs/v12_1/00_EXECUTIVE_EXECUTION_PROPOSAL.md", + "size": 2828, + "sha256": "60422f75964e5db2539b64f5ec04826a835919724a9c08a636566544c2e4b8f5" + }, + { + "path": "docs/v12_1/01_SOURCE_COVERAGE_MATRIX.csv", + "size": 2241, + "sha256": "05c73936ad859ec66698cd745b3be4bd8bc642a4acf61c4396d169dd8e46a528" + }, + { + "path": "docs/v12_1/02_STRATEGIC_ARCHITECTURE_AND_SOLID.md", + "size": 1981, + "sha256": "2cf720645ae6b3d616668ddee566149cc4b96e698ca1a3c44d15c415d4d4e0c7" + }, + { + "path": "docs/v12_1/03_ALGORITHM_GOVERNANCE_AND_CONTRACT.md", + "size": 2369, + "sha256": "dce7ef1c369da55427cbb082a6972dc048e3b664130b068c9792315e371fb1ab" + }, + { + "path": "docs/v12_1/04_DATA_INTEGRITY_NORMALIZATION.md", + "size": 1848, + "sha256": "0b302657f300c4cf25a4a2542a9635ef71a9e18a8e17cf1c0415cd95276fdf2f" + }, + { + "path": "docs/v12_1/05_BE_FE_JOB_COMPONENT_STANDARD.md", + "size": 1615, + "sha256": "cb28fafaafb10e462cee3f4e4b1e7a68cf65b6d64a37d5f8c9d1fd8ecdbc02c4" + }, + { + "path": "docs/v12_1/06_SLICE_CATALOGUE.csv", + "size": 5390, + "sha256": "a3209ea8c8ed064fe22b79e320d5d56705b2a3c64cc6dcecc0f5d945fd795d11" + }, + { + "path": "docs/v12_1/07_DETAILED_WBS_MASTER.csv", + "size": 85515, + "sha256": "cdc466349eb6bc3949fb481d8a885ec304f46fa6ec886b60ee66277f228b2dc2" + }, + { + "path": "docs/v12_1/08_TECH_DEBT_REGISTER.csv", + "size": 4012, + "sha256": "333beee330da6289076674ba3814eb9a6f3db111c549f51583e49a3afcde2843" + }, + { + "path": "docs/v12_1/09_TRACEABILITY_MATRIX.csv", + "size": 3847, + "sha256": "eb24a3d8265a5b96268f363a116ab72bd5cbed6e6a4b5b604d5454450b2978c0" + }, + { + "path": "docs/v12_1/10_DECISION_LOG.csv", + "size": 1496, + "sha256": "f50f0feddc870733080dcb2b18de3b2247aa8ec95df91576f7b0a5240d8fec59" + }, + { + "path": "docs/v12_1/11_VIBE_CODING_HALLUCINATION_CONTROL.md", + "size": 1250, + "sha256": "80d867db058b60503ba6cb584f952020f9388feeead89506868de914b678f0a9" + }, + { + "path": "docs/v12_1/12_PROCESS_SIMPLIFICATION_AND_STANDARDIZATION.md", + "size": 1403, + "sha256": "6955334ba5cee3723454936a5ede79a0c471a06d2a09ef872949eefbd80e7699" + }, + { + "path": "docs/v12_1/13_GATES_AND_20_DAY_RESTART.md", + "size": 1204, + "sha256": "27a0f5c997fdf8c77f65071bdfcb252d58b439996a3a654c69d758ea4179d966" + }, + { + "path": "docs/v12_1/14_PACKAGE_CONTENTS.md", + "size": 723, + "sha256": "2cac8b3632b0a14318d62ba6d93a9ea099ad647cb6935da8e4c907ad7b58bed0" + }, + { + "path": "docs/v12_1/K-ArtSell_Aegis_v12_1_∞ïñφûë∞ñÇδ╣ä_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 64063, + "sha256": "eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3" + }, + { + "path": "docs/v12_1/VERSION_COVERAGE_AND_SUPERSESSION.csv", + "size": 780, + "sha256": "df2a3d8b2f4ec583554647fbe497a9479657c4a18a641a26bc6875bafe803d65" + }, + { + "path": "docs/v12_2/00_EXECUTIVE_STRATEGIC_PROPOSAL.md", + "size": 3467, + "sha256": "6539b86410feee04c09c248679b9c5fc82477dea4a76b9aa2768d40649519615" + }, + { + "path": "docs/v12_2/01_SOURCE_COVERAGE_MATRIX.csv", + "size": 1443, + "sha256": "e5483c5c0585d2774d75237e2e19a4557387e0feb5dfca00f39894177a40be84" + }, + { + "path": "docs/v12_2/02_ARCHITECTURE_REFACTORING_STANDARD.md", + "size": 1949, + "sha256": "225698b05dc81508d0d3017db48ac3c267a4f32517c8659cacdf23e7ce586010" + }, + { + "path": "docs/v12_2/03_ALGORITHM_SELL_REENTRY_CONTRACT.md", + "size": 2532, + "sha256": "b5a0a4b4bd77c23fbd2be28ca844f7094ca8685d83533fd77759006b803443e6" + }, + { + "path": "docs/v12_2/04_DATA_INTEGRITY_PIT_LEDGER_READMODEL.md", + "size": 1870, + "sha256": "71c5d215fc5905d2a7eff7b2005bc08d8142e25ea046ca54cbcdec0e103fabce" + }, + { + "path": "docs/v12_2/05_BE_FE_JOB_IMPLEMENTATION_STANDARD.md", + "size": 1847, + "sha256": "1a5e8b0f65e6fc9cb20c61187a25ee27759a4f31aa43076ac6bff127ec4abfc1" + }, + { + "path": "docs/v12_2/06_SLICE_CATALOGUE.csv", + "size": 6942, + "sha256": "4dc50fd77bd7528f2c215d9aa3fc6528838db6578a7202aa7296de88dc022e33" + }, + { + "path": "docs/v12_2/07_DETAILED_WBS_MASTER.csv", + "size": 94737, + "sha256": "fdd99b4043b4db30f13f88eae2fffda95c5753eb15a86b0e903b342bb1892713" + }, + { + "path": "docs/v12_2/08_TECH_DEBT_REGISTER.csv", + "size": 5472, + "sha256": "0350c0158bac9d71ca47a110684f3b90820f44995cd57c922145362f4d0efc07" + }, + { + "path": "docs/v12_2/09_TRACEABILITY_MATRIX.csv", + "size": 4329, + "sha256": "2e0ac20322760e79397f0068eb7bb9ac63b8462e275565372fac85679245c1cd" + }, + { + "path": "docs/v12_2/10_DECISION_LOG.csv", + "size": 2385, + "sha256": "524a34a79401942890fdae9309405464bdb7223234bf3aee1ee5efa4f9d622c9" + }, + { + "path": "docs/v12_2/11_VIBE_CODING_HALLUCINATION_CONTROL.md", + "size": 1055, + "sha256": "e4e03c7cedac9da39ed47f2fcd1599fe290eb578add8e06fe5111c29f61c7eb9" + }, + { + "path": "docs/v12_2/12_GATES_AND_20_DAY_RESTART.md", + "size": 887, + "sha256": "a7610a7c07dc514edb48f5a9172c0aa73daecf57b4d28470c1ea9cb9d7de244c" + }, + { + "path": "docs/v12_2/13_REFACTORING_BACKLOG.md", + "size": 993, + "sha256": "8e9da021d11e263cf68d427fd2eb825a37e0ba7f414b168a823310f8aecbba1d" + }, + { + "path": "docs/v12_2/14_PACKAGE_CONTENTS.md", + "size": 748, + "sha256": "7ec54578a0cb3063f00f5beae7753bf12a04a6cfd6c85389373328102c79b85b" + }, + { + "path": "docs/v12_2/15_VALIDATION_MATRIX.csv", + "size": 954, + "sha256": "1a15044cf96b66e5c72d65af02cd6c5f55bc796342e2cff8272d764022bab601" + }, + { + "path": "docs/v12_2/K-ArtSell_Aegis_v12_2_∞áäδ₧╡∞áü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 57681, + "sha256": "11aea457b347d987e7a0349bbbfd3f74f9fe9c7bc95ebe46f75a41568c82d56b" + }, + { + "path": "docs/v12_3/00_EXECUTIVE_DELIVERY_HARDENING.md", + "size": 2205, + "sha256": "e961de3153b6f35789865c188671c154a729c50fd60aa84b5c7deaff7cdb139a" + }, + { + "path": "docs/v12_3/01_SOURCE_COVERAGE_MATRIX.csv", + "size": 1309, + "sha256": "784b776078be598424c81522896b9570ac256619e4965dac8e4f59c5e79810db" + }, + { + "path": "docs/v12_3/02_SOLID_REFACTORING_AND_COMPONENTIZATION.md", + "size": 1139, + "sha256": "ffbcd5189a47ecffdf67d6e78e7ecfdb3d2c414bcdd115872cb72ee814f5b50a" + }, + { + "path": "docs/v12_3/03_ALGORITHM_CONTRACT_AND_DECISIONS.md", + "size": 1155, + "sha256": "c1a3c2896031eece98519a5510ee0db65e78d6c0746c2d8c7a03b77203c49505" + }, + { + "path": "docs/v12_3/04_DATA_SEMANTICS_PIT_AND_HISTORY.md", + "size": 1021, + "sha256": "9552b374694fb92bb23e4dfb1c4d1c6d68b9d86642b9cd638a439d99a0d3468d" + }, + { + "path": "docs/v12_3/05_BE_FE_JOB_DELIVERY_STANDARD.md", + "size": 897, + "sha256": "d33c98280f2b3602a0e6853798fdfae992c216dc69176951e9a37e77db7b4788" + }, + { + "path": "docs/v12_3/06_SLICE_CATALOGUE.csv", + "size": 7040, + "sha256": "626d6ac32fe7786721fb02806aefc22a3c74576c45fc601dae53baa88d89fb05" + }, + { + "path": "docs/v12_3/07_DETAILED_WBS_MASTER.csv", + "size": 101379, + "sha256": "e9c447138c8be409bd05bf67c2d874244c857216b38ee6aa27d468e5d25c0706" + }, + { + "path": "docs/v12_3/08_TECH_DEBT_REGISTER.csv", + "size": 7136, + "sha256": "ca1babb3fa0881ed0d7a867531fec55dfc54ecc3bda4d6d352804101ec782215" + }, + { + "path": "docs/v12_3/09_TRACEABILITY_MATRIX.csv", + "size": 4813, + "sha256": "de9617ded8565f8db9eed4c4da76617b6118661123ee5327ee9760de84e541c4" + }, + { + "path": "docs/v12_3/10_DECISION_LOG.csv", + "size": 3287, + "sha256": "e7170a1aebcb84292a15da3776b3d43c82b9623da5ff95463af4df61ed68e8c2" + }, + { + "path": "docs/v12_3/11_VIBE_CODING_HALLUCINATION_CONTROL.md", + "size": 637, + "sha256": "4073e040852d95bbbb018cf0cbf0872bca28750202758b3f308a790f27db2403" + }, + { + "path": "docs/v12_3/12_GATES_AND_20_DAY_RESTART.md", + "size": 725, + "sha256": "d97289545e0d1c4dfcb2519d9eeeb2dbc3aad5408d07f9b6f6c04c6830dcb2a7" + }, + { + "path": "docs/v12_3/13_PROCESS_SIMPLIFICATION.md", + "size": 453, + "sha256": "8120c5e72885f8fc8b5fed2c22ecb2036cad2fdb76954db0f2cc661de7409047" + }, + { + "path": "docs/v12_3/14_PACKAGE_CONTENTS.md", + "size": 485, + "sha256": "373d97f174c17842e7106233e1e388a744da779fcc92b74828fecceaa6836e56" + }, + { + "path": "docs/v12_3/15_VALIDATION_MATRIX.csv", + "size": 1020, + "sha256": "0d0b5234959a247e9c44ef5e46375b6fde6dfb0aa8d9dbc7c1cc05286b406897" + }, + { + "path": "docs/v12_3/K-ArtSell_Aegis_v12_3_∞ïñφûëΩ▓Ç∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 50067, + "sha256": "0923df8b0e3b85a39c5c88fa9d4603df8719cc7ddad0ee3a23333ba193be8c7f" + }, + { + "path": "docs/v12_4/00_EXECUTIVE_CONTINUOUS_MODEL_OPERATIONS.md", + "size": 3979, + "sha256": "cc3e17bc4707620daf7385235462d2aa90d76352fa80912d59abb497579d4860" + }, + { + "path": "docs/v12_4/01_SOURCE_COVERAGE_MATRIX.csv", + "size": 2132, + "sha256": "a3b3c953c5fc115988f55e35c58efc8065c3c1a386f5675548753241bee159e5" + }, + { + "path": "docs/v12_4/02_CONTINUOUS_MODEL_LIFECYCLE.md", + "size": 2807, + "sha256": "2120975b2fd31b9a105a58d95915facf44ed94448bb8b1736f4a9278728f2080" + }, + { + "path": "docs/v12_4/03_SCHEDULER_AND_CALENDAR_CONTRACT.md", + "size": 1845, + "sha256": "8f0c46a759b78535ed52146211a45f4fc41fce20da7bb1e23fb5a7e7a411252f" + }, + { + "path": "docs/v12_4/04_ALGORITHM_IMPROVEMENT_GOVERNANCE.md", + "size": 1795, + "sha256": "3a8f5ce6d90f9c1f405c556975edadd2496d42d5762dcabdd8c9e9ffa1e8661b" + }, + { + "path": "docs/v12_4/05_DATA_EVIDENCE_AND_HISTORY.md", + "size": 1657, + "sha256": "f72c9cdf547e9d17fdcf0bf4adada9afeb3c7263d2fb024481b9397bdaefafe2" + }, + { + "path": "docs/v12_4/06_BE_FE_HANGFIRE_IMPLEMENTATION.md", + "size": 2263, + "sha256": "4b06305104447624798e1dd7d39d2f2ff2739e6f791e0df73f251e20e89ff18b" + }, + { + "path": "docs/v12_4/06_MODEL_EVALUATION_METRIC_CATALOGUE.csv", + "size": 2154, + "sha256": "d51fdeb497677468deb123e5cb08c1c5e686b5573fc82355c0fa71cb42d7639e" + }, + { + "path": "docs/v12_4/07_SLICE_CATALOGUE.csv", + "size": 7275, + "sha256": "9a18cfa72ace61e49255d8d6f45944150683de0b670aeba630a29e504d0c7521" + }, + { + "path": "docs/v12_4/08_CONTINUOUS_MODEL_JOB_CATALOGUE.csv", + "size": 2555, + "sha256": "f17d243630c1c8a2d697998fd4fbb6cebccb74b6777b77b3ea412e3ea6f2b56a" + }, + { + "path": "docs/v12_4/09_DETAILED_WBS_MASTER.csv", + "size": 116546, + "sha256": "ad45b65485e2bfa760228d9c703363b6afd3e0f14211b26e42b7da7c640a4c92" + }, + { + "path": "docs/v12_4/10_TECH_DEBT_REGISTER.csv", + "size": 9663, + "sha256": "5c1e8ae9e4cf10c08489f1e137e8e0ba9b4c2f1a5f4eb5c1ca268a5cb14594bc" + }, + { + "path": "docs/v12_4/11_TRACEABILITY_MATRIX.csv", + "size": 6527, + "sha256": "94712a972e22aff046811daff95b5fc6d4e91f2d125a50e00c52edfec7594e3c" + }, + { + "path": "docs/v12_4/12_DECISION_LOG.csv", + "size": 5240, + "sha256": "a1059bb6f008b85de0ff3c0d44c0c49f52e1153270989480f7f2f1b325a15213" + }, + { + "path": "docs/v12_4/13_VIBE_CODING_HALLUCINATION_CONTROL.md", + "size": 1069, + "sha256": "d5e05db9c45e1cdfca41b60bbaa7aa1a2ae5149598a55427806304e9127c5f68" + }, + { + "path": "docs/v12_4/14_GATES_AND_ROLLOUT.md", + "size": 1172, + "sha256": "33eb6122773f6cf65a88cba3b845b4078b9eba521d299ae4693bf48ee3e08158" + }, + { + "path": "docs/v12_4/15_PACKAGE_CONTENTS.md", + "size": 1144, + "sha256": "77aaf46e95092076d58e0e1eb8949d8096975659171a1b8873f49e4f2894c4ea" + }, + { + "path": "docs/v12_4/16_VALIDATION_MATRIX.csv", + "size": 1254, + "sha256": "df1e334429741f4b231755b5a12cfe718cf350cc51f0440e545374541de604aa" + }, + { + "path": "docs/v12_4/K-ArtSell_Aegis_v12_4_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 52729, + "sha256": "e9208fa849caa6576abb3ab857da15219444925cb988ec17dfb01e41c368a148" + }, + { + "path": "docs/v12_5/00_EXECUTIVE_CRITICAL_REVIEW.md", + "size": 3440, + "sha256": "3c82e7f58adc9a73f9825c9370b806f7d13d97da006725b863fdedf506c5e16e" + }, + { + "path": "docs/v12_5/01_SOURCE_COVERAGE_MATRIX.csv", + "size": 745, + "sha256": "9d0e1de97823c4e0341c71103c4d63ba5ae05bf4252cae34fa2422fd08acb63d" + }, + { + "path": "docs/v12_5/02_ROLE_BASED_BRUTAL_AUDIT.md", + "size": 4524, + "sha256": "fd6af0eb082f93fa6a34d261f72df6c152ff7d95991c848c008e4d73de00ad63" + }, + { + "path": "docs/v12_5/03_TARGET_ARCHITECTURE_SOLID_REFACTORING.md", + "size": 2072, + "sha256": "af33d02d0d7d4c002ef3e47e28f8970302e417e14ddf81364bd827415a95bdc4" + }, + { + "path": "docs/v12_5/04_ALGORITHM_MODEL_EVALUATION.md", + "size": 2442, + "sha256": "0918723ab1072140822e295153e86af537ee77a8aa1a23c2f418825ed9ed128d" + }, + { + "path": "docs/v12_5/05_DATA_DB_INTEGRITY.md", + "size": 1989, + "sha256": "13c1ba13519ffd0828529c9460ddf99755bc8e1f52b4db0c69e974f72dcb1085" + }, + { + "path": "docs/v12_5/06_BE_FE_HANGFIRE_IMPLEMENTATION.md", + "size": 1956, + "sha256": "0629150d6cc85d20d4707c4a91834c88e07e46d03cadd3eb2dee7adad4306e93" + }, + { + "path": "docs/v12_5/07_QA_SECURITY_OPERATIONS.md", + "size": 1492, + "sha256": "cc90ccbafefabfebf5b7fe91cade2269a9dec75bc38aef253c626d7a9b63d01b" + }, + { + "path": "docs/v12_5/08_PROCESS_SIMPLIFICATION_VIBE_CODING.md", + "size": 1303, + "sha256": "1670c8eba6c626f347c5cc461d415b608531a6bc41dce816055641102cfe1a05" + }, + { + "path": "docs/v12_5/09_ROADMAP_20D_90D_36M.md", + "size": 1457, + "sha256": "a0b10b3c6f2b61ae803f939900060359d400a9f775767c205abb0275ccf237c1" + }, + { + "path": "docs/v12_5/10_DETAILED_WBS_MASTER.csv", + "size": 131625, + "sha256": "25e825092a9efb87f4e239e49ebe11901c1d4bd593afd41043127c7981ef47bf" + }, + { + "path": "docs/v12_5/11_TECH_DEBT_REGISTER.csv", + "size": 12167, + "sha256": "32feff83fb421e661c17e5a0da6a9189aaaffbb19e1bdda3e0ee9de7feff2a6f" + }, + { + "path": "docs/v12_5/12_TRACEABILITY_MATRIX.csv", + "size": 8591, + "sha256": "ee1337654db1046579be2f5ac0ca93b1a3cf486f9d6e6e7c7ec06df5383a8795" + }, + { + "path": "docs/v12_5/13_DECISION_LOG.csv", + "size": 6707, + "sha256": "9bb879bc462d056b410d18ff79f3fbc0e98905d74234a88597dff051301ac46f" + }, + { + "path": "docs/v12_5/14_PACKAGE_CONTENTS.md", + "size": 862, + "sha256": "50d7a24ed8e7f7a3f85151fc3414fc5466e3261835be5e8302fbd50d5229047d" + }, + { + "path": "docs/v12_5/15_JOB_CATALOGUE.csv", + "size": 3976, + "sha256": "86cdce40230fb7fcb2082fbc8ea1321260cc532c5878cfa8a50d594233aa2b60" + }, + { + "path": "docs/v12_5/16_RACI_MATRIX.csv", + "size": 1238, + "sha256": "b411338ae2c2216979f2340005bb15afbe9c446c737ef51c9015f4d983f92259" + }, + { + "path": "docs/v12_5/17_RISK_REGISTER.csv", + "size": 2068, + "sha256": "562ba6c1073dea33f186efb23fc77f718708c2c3339fe6f57dc6921e6cdbea1f" + }, + { + "path": "docs/v12_5/18_VALIDATION_MATRIX.csv", + "size": 1057, + "sha256": "4f4de90125f8b32938a6cd51dd674369f1d92833e6dd092ce3beef0deae3046c" + }, + { + "path": "docs/v12_5/K-ArtSell_Aegis_v12_5_∞ïñφûëδ│┤∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 62043, + "sha256": "751d9509524ff171d57805fb9c26a077e03b2e5e28d6651ef367565f49ef74d7" + }, + { + "path": "docs/v13_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md", + "size": 2662, + "sha256": "995b9365b2eefafbe4c237d903a2501eb747a5981eddd1c66fd2a0da1aeb0a7b" + }, + { + "path": "docs/v13_0/01_BASELINE_COVERAGE_AND_NON_REGRESSION.md", + "size": 744, + "sha256": "bd1d9384996b4d3c9a8b659d426ea7c184c5b143a4aa80a651c4ac9497768338" + }, + { + "path": "docs/v13_0/02_FRONTEND_ADAPTER_DESIGN_SYSTEM.md", + "size": 1515, + "sha256": "b971aa49e0c5d7e41881f457993ccfd18a2b7bd8e6d6debdcad75b0cbb638e2a" + }, + { + "path": "docs/v13_0/03_STANDARD_LAYOUT_AND_SCREEN_TYPES.md", + "size": 1383, + "sha256": "815f6b75d6bbfeccf46549ade300fa59fbce50081b73ee088cb06c6fd7d67c4e" + }, + { + "path": "docs/v13_0/04_ALGORITHM_AND_CONTINUOUS_MODEL_LOOP.md", + "size": 1979, + "sha256": "efc1539dba04ec857830ad96a11b9d173e165e4dcc89f849e3d9f83dfa4a772f" + }, + { + "path": "docs/v13_0/05_BACKEND_DATA_HANGFIRE_STANDARD.md", + "size": 884, + "sha256": "6af961b2b157adba4f8492439fb71ba26762cf5d80289badb03d49805544d9ca" + }, + { + "path": "docs/v13_0/06_ROLE_BASED_BRUTAL_AUDIT.md", + "size": 1175, + "sha256": "78011a7f196b5ea9b76948d0ef4580d22fed8ddb6e6f5f286913e4f1295a1481" + }, + { + "path": "docs/v13_0/07_WBS_AND_GATES.md", + "size": 934, + "sha256": "d79bedcfc3e70d2d2e18655d5aaf878fef8bb22d640b2d5669482582b2d01f8d" + }, + { + "path": "docs/v13_0/08_DETAILED_WBS_MASTER.csv", + "size": 149804, + "sha256": "e274bb8ce9215b5920abeb014d9fb24f83bae8a3bdb9db4d8c209b6c897473aa" + }, + { + "path": "docs/v13_0/09_STATIC_VALIDATION_SCOPE.md", + "size": 790, + "sha256": "8c5e76412849ed51d3efeaf48fc6fb2dcfab8dec1bf48833d22ffe5b6ce7ee55" + }, + { + "path": "docs/v13_0/10_PACKAGE_CONTENTS.md", + "size": 834, + "sha256": "a59f463438a9b4f06c21e9c17d3811e79e24754a0a99267d4963cee9eb494895" + }, + { + "path": "docs/v13_0/DECISION_LOG.csv", + "size": 7774, + "sha256": "96fdf4401916d0afdb7f31505045c8ea8c41af6131a1654d7d9e2651faba350c" + }, + { + "path": "docs/v13_0/DOCX_A11Y_V13_0.json", + "size": 2484, + "sha256": "03652978a3f69136d6bfbe4abc9ac4c3e2f093030bd8eb01a13c4f2d8b580d91" + }, + { + "path": "docs/v13_0/FE_COMPONENT_CATALOGUE.csv", + "size": 2101, + "sha256": "9ad930dad5e42406801383c669638db22826916ce08db75d8a9ada987ae83e7c" + }, + { + "path": "docs/v13_0/JOB_CATALOGUE.csv", + "size": 5913, + "sha256": "ebea0d84107c87249b9f4f6874c994161af13fde7dba7cee0e77bcad34b32247" + }, + { + "path": "docs/v13_0/K-ArtSell_Aegis_v13_0_φæ£∞ñÇUI_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 59675, + "sha256": "8914f96178d545c60f7dad41a2042ecb1f8b0ec9287f95984972e43b34d93f37" + }, + { + "path": "docs/v13_0/PACKAGE_MANIFEST_CORE_V13_0.json", + "size": 120604, + "sha256": "9bafbb16ff61d57000ce3c826cea9e09e0c3786f54913dfc98d9b6130f2ffc9e" + }, + { + "path": "docs/v13_0/SHA256SUMS_CORE_V13_0.txt", + "size": 86870, + "sha256": "0e3d7d8ce9db26f54bea8852c07411365c9ae82287ccbbaffea71c9596cceb2b" + }, + { + "path": "docs/v13_0/SOURCE_COVERAGE_MATRIX.csv", + "size": 994, + "sha256": "e31f9b10829a4ab0b77e230d4b47b62c6964114011e60fd7aebcd6d1cba13dc7" + }, + { + "path": "docs/v13_0/TECH_DEBT_REGISTER.csv", + "size": 13821, + "sha256": "7d0353f540df528e715cf1c5659185a20bdcb543fcfca1badb2c0181d659b2d9" + }, + { + "path": "docs/v13_0/TRACEABILITY_MATRIX.csv", + "size": 9258, + "sha256": "9d56793b54f9cf99d16daa4a77e84fb9fb5acb09e3c851a158e41c94c07ccec8" + }, + { + "path": "docs/v14_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md", + "size": 1841, + "sha256": "fe48f05ffd304df93ab7b0e957027e6cde12561abe8be34353aa7d85a3349883" + }, + { + "path": "docs/v14_0/01_ROLE_BASED_BRUTAL_AUDIT.md", + "size": 2678, + "sha256": "ba3be8bf0069001254e84f717432597676083281d93b783fe724e51e8858a577" + }, + { + "path": "docs/v14_0/02_FRONTEND_ADAPTER_STANDARD.md", + "size": 1267, + "sha256": "d03c3e4e72327d7b1600dc988716fce460a1eda4ccb9780c8c02b43f9dc0c519" + }, + { + "path": "docs/v14_0/03_STANDARD_LAYOUT_SCREEN_TYPES.md", + "size": 1417, + "sha256": "1f99f94c91d3d7b6f9c16488524a243bbe3e224cf2435fd194b4c3383a61915a" + }, + { + "path": "docs/v14_0/04_ALGORITHM_CONTINUOUS_MODEL_FEEDBACK.md", + "size": 1356, + "sha256": "7ef34793741faf59a410a09f2dd9613ad9fa6fbf5ea1e933bfb5b5e21ac21574" + }, + { + "path": "docs/v14_0/05_BACKEND_DATA_HANGFIRE_STANDARD.md", + "size": 1179, + "sha256": "0845373dabf2ae19e9e5e53fe38bdad0346bbf792b0e6b2cd9505cce5039712d" + }, + { + "path": "docs/v14_0/06_WBS_GATES_AND_TECH_DEBT.md", + "size": 1042, + "sha256": "0645aa0b96569bda641e39993ecf3b54fbc57606a237bc31c318335aa5d9dfbc" + }, + { + "path": "docs/v14_0/07_VALIDATION_TRUTH.md", + "size": 863, + "sha256": "dec3789f0cab2897356f134dbaef1237dfd60b8114298772f6fdf762648bc476" + }, + { + "path": "docs/v14_0/08_DETAILED_WBS_MASTER.csv", + "size": 173526, + "sha256": "7dd7e785625c8cfac021a5ff68e7ec14f46a474718ab1d6cc3ca60d935b4aa85" + }, + { + "path": "docs/v14_0/08_PACKAGE_AND_ATTACHMENT_POLICY.md", + "size": 555, + "sha256": "e1039358a6289ed1f2206c044d65d151b190ade6e96d02f8f46b135ad1123fde" + }, + { + "path": "docs/v14_0/DECISION_LOG.csv", + "size": 9144, + "sha256": "98dec4994ca82417e0d92fad5777de9cb5ea179bfa13e1a3e1b125824ff0a7aa" + }, + { + "path": "docs/v14_0/DOCX_A11Y_V14_0.json", + "size": 258, + "sha256": "0530d00c45d26c9b5710fbf1404ceec1ad1968a240e054398f555f3fe5d7bf8d" + }, + { + "path": "docs/v14_0/FE_COMPONENT_CATALOGUE.csv", + "size": 3937, + "sha256": "d913f1bae670a3e73e291436f3cb65447881445edb28752bb67a1892a5c855ae" + }, + { + "path": "docs/v14_0/JOB_CATALOGUE.csv", + "size": 6175, + "sha256": "24dc521c5bbfc8e14cfca463adfeda30e29fb4322b4299c981d4f2c1e2aac1c3" + }, + { + "path": "docs/v14_0/K-ArtSell_Aegis_v14_0_표준UI_지속모델피드백_통합고도화_제안서.docx", + "size": 52359, + "sha256": "3cf7ca799ead9758dcc3c0405fbf82eadfdd9d7fac18a06c6f7f5e86a47ce29a" + }, + { + "path": "docs/v14_0/PACKAGE_CONTENTS.csv", + "size": 726, + "sha256": "106826823843580a5d92281c3a4fcd3d5329d820bba01f74414cdd890388c8c2" + }, + { + "path": "docs/v14_0/SOURCE_COVERAGE_MATRIX.csv", + "size": 694, + "sha256": "504240f6c7de563219e9d6a6711a6c876a56da454e17162c734cef3d80157948" + }, + { + "path": "docs/v14_0/TECH_DEBT_REGISTER.csv", + "size": 16660, + "sha256": "f51e0f36a75c573d68157a38a19646bc5ec83e824a55663e1471f47aa97e0b29" + }, + { + "path": "docs/v14_0/TRACEABILITY_MATRIX.csv", + "size": 11465, + "sha256": "429228e05c7990d6af146186f531e8df07ccc9d8dab4c0e9ab5cbe01e1471ff3" + }, + { + "path": "docs/v15_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md", + "size": 1075, + "sha256": "2a88fc420d0ca195d73c07d58844b7579bad859b6c0e64c7c4c538edadf74864" + }, + { + "path": "docs/v15_0/01_ROLE_BASED_BRUTAL_AUDIT.md", + "size": 1007, + "sha256": "4ca203addefb2050ea8ef6d5816018ddb9c7557f44c1a8e74e877055ae5766dc" + }, + { + "path": "docs/v15_0/02_FRONTEND_STANDARD_AND_ADAPTER_V3.md", + "size": 718, + "sha256": "2197c6716339c9b02301adfada848a44bbbb7b5a1fc0097bc9719ce9741557a7" + }, + { + "path": "docs/v15_0/03_SCHEDULER_AND_CONTINUOUS_FEEDBACK.md", + "size": 798, + "sha256": "5a7749d1c42d371f8bbad947dcdfe5fe4536f3124af67f57e0bbfab1acc0108c" + }, + { + "path": "docs/v15_0/04_ALGORITHM_DATA_INTEGRITY.md", + "size": 740, + "sha256": "86e09eb5c2b97f06169768288672f8c00d486e06781b30818d04a99d1649ee26" + }, + { + "path": "docs/v15_0/05_WBS_GATES_TECH_DEBT.md", + "size": 295, + "sha256": "4a2cd36f9ece12584ff3c27b6b2703cb4d79c2785d4c284f5f475a7c52bc4277" + }, + { + "path": "docs/v15_0/06_VALIDATION_TRUTH.md", + "size": 482, + "sha256": "3aef62e266608a85d8ed15319521f395d6dab173b537822c3be358edfabbeca3" + }, + { + "path": "docs/v15_0/07_PACKAGE_ATTACHMENT_POLICY.md", + "size": 334, + "sha256": "a5544f61f74ec38c661112489122bd1f1bc062303710e580b0361e3fa920f29e" + }, + { + "path": "docs/v15_0/08_20_DAY_RESTART_PLAN.md", + "size": 379, + "sha256": "4d6f937a80ed96b8864e19349c474d85103af12844c121faacc0cc5712a726f8" + }, + { + "path": "docs/v15_0/08_DETAILED_WBS_MASTER.csv", + "size": 200804, + "sha256": "fc9015b89de63f2585c6650541ad839b6432e22bd76a28b3974ac865e8a729d6" + }, + { + "path": "docs/v15_0/DECISION_LOG.csv", + "size": 11636, + "sha256": "743d9795b809cda1d006f555e3c7b79b0170d7a212fe5ae4e19cd2c7358816d1" + }, + { + "path": "docs/v15_0/DOCX_A11Y_V15_0.json", + "size": 256, + "sha256": "f625b28ef31dc8127ef6e215fcf90b7541fa41414f9b8f511098dd2e4eee3575" + }, + { + "path": "docs/v15_0/FE_COMPONENT_CATALOGUE.csv", + "size": 5452, + "sha256": "aa20e25c5756d160c727399cc3d977fa9706502950acd40bb2e37815d205b1cd" + }, + { + "path": "docs/v15_0/JOB_CATALOGUE.csv", + "size": 6480, + "sha256": "344f149a4d5d92c3311603d57e3f0c8e3a7e4f5a3314cf7388dd8aefccb0a572" + }, + { + "path": "docs/v15_0/K-ArtSell_Aegis_v15_0_실행완결성_표준UI_지속모델운영_통합고도화_제안서.docx", + "size": 52933, + "sha256": "ef7e5746f129ecf14d1bc7d7bd5705fe44ca72251b050769506beb343e28c0a0" + }, + { + "path": "docs/v15_0/SOURCE_COVERAGE_MATRIX.csv", + "size": 1264, + "sha256": "71e326c03985fec40bc0fdec77ecd4b60d85f4d737c4caa37c18790474d11ffc" + }, + { + "path": "docs/v15_0/TECH_DEBT_REGISTER.csv", + "size": 19715, + "sha256": "bce39e27aa9b264cf142269f7324ed2cbc1d6187a487b62869fb01e6e8e09029" + }, + { + "path": "docs/v15_0/TRACEABILITY_MATRIX.csv", + "size": 13938, + "sha256": "39ab3187f503b26be7f9bb1c37b605111a12a0e64e80b044a039d5c8fc4a04e5" + }, + { + "path": "docs/v16_0/00_EXECUTIVE_REFERENCE_IMPLEMENTATION.md", + "size": 1167, + "sha256": "281a97e7c4398d14deb20cbddf2bf80473784ce3dd941fc0a7058eab832849f0" + }, + { + "path": "docs/v16_0/01_BRUTAL_ROLE_AUDIT.md", + "size": 1631, + "sha256": "c36e0266bee07acc15fabc7d63d859fe8e23a687815bfefcf689b563a7459685" + }, + { + "path": "docs/v16_0/02_FRONTEND_ADAPTER_CRUD_STANDARD.md", + "size": 1155, + "sha256": "53f6bbb894d2df19d6d4ecb72acdae22cb9a909bf946495dc6d3d42bb8745571" + }, + { + "path": "docs/v16_0/03_BACKEND_DATA_SCHEDULER_STANDARD.md", + "size": 1161, + "sha256": "9099e2c5d6f9ad25880270c41f96ff2999ec66fe9ba34d7422cb641fe4f2b4cd" + }, + { + "path": "docs/v16_0/04_ALGORITHM_MODEL_GOVERNANCE.md", + "size": 1031, + "sha256": "32455e7778f18d2a53f1f856c74ee36959853f7dff7e59293aabffbf3447ac4d" + }, + { + "path": "docs/v16_0/05_PROCESS_VIBE_DEBT_CONTROL.md", + "size": 824, + "sha256": "c15774cc2bdd07f180e5b8448b1a120d7b63bd577ad4728b74ccf7fcc2709153" + }, + { + "path": "docs/v16_0/06_VALIDATION_TRUTH.md", + "size": 544, + "sha256": "91ee3a53b74929ae5f0b6fc3efed8cb6b59e479cee63c3a08af4b8c3fc1d6f51" + }, + { + "path": "docs/v16_0/07_PACKAGE_ATTACHMENT_POLICY.md", + "size": 537, + "sha256": "1d17beb712d48f7d46d0f33cb58b72d254bf7fd4eb849d01f3a45f7ebc299226" + }, + { + "path": "docs/v16_0/08_20_DAY_RESTART_PLAN.md", + "size": 607, + "sha256": "46de79a4ce6b1e2c1a01e01efb9f46084dd98a105465ad40b097808006f90828" + }, + { + "path": "docs/v16_0/08_DETAILED_WBS_MASTER.csv", + "size": 222612, + "sha256": "c6ef304ec94c26b4bedec6e71a1f12ffab2f40a670e7663ba1d19c3c406bf22d" + }, + { + "path": "docs/v16_0/DECISION_LOG.csv", + "size": 13460, + "sha256": "6e558d6dd07e01719af1574a77552ed8bac84440d2d9ad97f67c2ffeb2930e37" + }, + { + "path": "docs/v16_0/DOCX_A11Y_V16_0.json", + "size": 161, + "sha256": "b560c79ce58d5e5abe02c82667095e777eb10973ea1cd01da2f25b2f73b28e85" + }, + { + "path": "docs/v16_0/FE_COMPONENT_CATALOGUE.csv", + "size": 7220, + "sha256": "8c6a5436a3055121f901225f19fd3334b0f8fa7ec404370aad38c1b9e5841444" + }, + { + "path": "docs/v16_0/JOB_CATALOGUE.csv", + "size": 7101, + "sha256": "13f0af767439cc6fa3ba5e50f386fba8971c6ce38d2fd95c99f6a8752b5c4fde" + }, + { + "path": "docs/v16_0/K-ArtSell_Aegis_v16_0_실행참조구현_표준UI_지속모델평가_통합고도화_제안서.docx", + "size": 54432, + "sha256": "50fcb4cd6a500ee8f226cd3e8894161da767c0ae57389df6d73c54c31c0735f4" + }, + { + "path": "docs/v16_0/PACKAGE_CONTENTS.csv", + "size": 328, + "sha256": "fef48116d3cc67f5b75aafdce7a44d4ffb1e708229c828781ea18e23606b6b1a" + }, + { + "path": "docs/v16_0/SOURCE_COVERAGE_MATRIX.csv", + "size": 1259, + "sha256": "06b07d18ecd8bceb8ffa71cd5f64e475e3c3f2425c2f071773d794d2c8a6b7f4" + }, + { + "path": "docs/v16_0/TECH_DEBT_REGISTER.csv", + "size": 22616, + "sha256": "e6e516cbbce8a967c7c9fd6557c710b0c136b313a0db9c00bf145ebc269636cc" + }, + { + "path": "docs/v16_0/TRACEABILITY_MATRIX.csv", + "size": 16188, + "sha256": "22488a0254c8aef076bcf0054e6a012c88c2e86cc66a72f87c42a3f21c9abb71" + }, + { + "path": "docs/v16_0/VALIDATION_MATRIX.csv", + "size": 580, + "sha256": "2577f2fb62e46063ac98d84961508ed25369d5d582eb0b66244600d85d466824" + }, + { + "path": "frontend/.env.example", + "size": 170, + "sha256": "1b66745855a6f8e9f1bd1492fb142367d8338c16ab087042ffed4b151d6d2935" + }, + { + "path": "frontend/LOCKFILE_REQUIRED.md", + "size": 496, + "sha256": "6be1406c5d08027727363eb929ecdad5c67a041aee70a67dc7bd2c1bfc448367" + }, + { + "path": "frontend/e2e/research-boundary.spec.ts", + "size": 321, + "sha256": "1affa593f7f9c98256969f121c42127537892e71e26f31c8c6313fd1774c583c" + }, + { + "path": "frontend/index.html", + "size": 294, + "sha256": "7a4ce2b77f1038902f997dda98d95ac94893207ba01bd12808843dc763ef5c94" + }, + { + "path": "frontend/package.json", + "size": 855, + "sha256": "ffe4c78a210ad972222c196b2b31ae816aad02b490e2ec9b0ea9e8581c40569b" + }, + { + "path": "frontend/playwright.config.ts", + "size": 305, + "sha256": "b041e6e193829c6d40eac7465a49260832936efc0c9f1c8230f7b6614b7c54a9" + }, + { + "path": "frontend/src/App.vue", + "size": 818, + "sha256": "b31bd056c6fbabd70b6b76957c376886becbb03f083703a8fb6da07a11f4331e" + }, + { + "path": "frontend/src/app/queryClient.ts", + "size": 538, + "sha256": "de582e44c980fafd81ca884e0d20c364be43b4d18c6a70fa6dced78d5459a27c" + }, + { + "path": "frontend/src/app/router.ts", + "size": 1033, + "sha256": "f0cfaa57644768bfde5c32389b8edc438b5cdd420d5e7d35309832338dcb0d55" + }, + { + "path": "frontend/src/design-system/base.css", + "size": 1198, + "sha256": "1171977cc9f39a2e9b71a32582115c574eeb582cd46ef122cecd07c43f787aed" + }, + { + "path": "frontend/src/design-system/tokens.css", + "size": 1288, + "sha256": "1d2344ab9e61ff06f34ff20d08147e9fb75b02245f0d0d8211e66dc8f2672a34" + }, + { + "path": "frontend/src/env.d.ts", + "size": 212, + "sha256": "a5bf21a7ce91c0bcb08e33675fbb5977ec23a14a3a0ac8f4e5f5817d5874af23" + }, + { + "path": "frontend/src/features/data-quality/pages/DataQualityPage.vue", + "size": 1182, + "sha256": "67d58ae4e839d17a21b673596079ec6ff265460c4c02788e810b5a8f475b53fd" + }, + { + "path": "frontend/src/features/data-quality/schema.ts", + "size": 908, + "sha256": "9658c6a8d60e7b32b901dcb7f3f8a76959f9d49143775da71c0946ae9b8d436d" + }, + { + "path": "frontend/src/features/data-quality/tests/schema.spec.ts", + "size": 699, + "sha256": "f31d36fe731bd0ae96b70cce69b994741b51f6c84ae8fb98066c432d43f1de5e" + }, + { + "path": "frontend/src/features/model-operations/api.ts", + "size": 334, + "sha256": "6210fa768523cc5b40426720151387792c37459534139393a046a0154c3db090" + }, + { + "path": "frontend/src/features/model-operations/components/AutomationBoundaryPanel.vue", + "size": 813, + "sha256": "30035753459c7896966968caac81d573869be93dd1607330d9381dcdc468476a" + }, + { + "path": "frontend/src/features/model-operations/components/ModelOperationTable.vue", + "size": 1195, + "sha256": "a8c01732570de0680d0474ef7d0e257a0457d139db6885600510f82776d0ad98" + }, + { + "path": "frontend/src/features/model-operations/pages/ModelOperationsPage.vue", + "size": 1202, + "sha256": "0247f8a973d5e9d95cdd7359ce3cf4feb1ff493437c770d896d35c9d688bc4d2" + }, + { + "path": "frontend/src/features/model-operations/queries.ts", + "size": 430, + "sha256": "d6f6998a511d0fe346c286421701735b54450b2d5d4ee8a3b6b9ffe500f35717" + }, + { + "path": "frontend/src/features/model-operations/schema.ts", + "size": 965, + "sha256": "4e42beabfbe81b37be744085c537ca28db51dafa61b85e89c2eaf9e6655e6b5d" + }, + { + "path": "frontend/src/features/model-operations/tests/schema.spec.ts", + "size": 888, + "sha256": "d63c8c3006ef1171a6e5e0c5d7941b5a200a50bea222a092b26c605dc23496ba" + }, + { + "path": "frontend/src/features/sell-decision/api.ts", + "size": 745, + "sha256": "5b11a1d4592d0911991d133a6a55acd189ed3542d40f8ea4c9c83b190406086f" + }, + { + "path": "frontend/src/features/sell-decision/components/PolicyTracePanel.vue", + "size": 1225, + "sha256": "0d1c2b0d955a145c7bcc082e1c8e36e51519f168e82424323985b09d8b6fe609" + }, + { + "path": "frontend/src/features/sell-decision/pages/SellDecisionPage.vue", + "size": 4122, + "sha256": "ed0a28e54dfe8a3fd38f336220a4b0522af074b69d41c98764dcd25eaae53d93" + }, + { + "path": "frontend/src/features/sell-decision/queries.ts", + "size": 219, + "sha256": "d9cbf7fb58e0286c19a43bd6052ecf7f65b486af8588d851f2f0d9d831fb41ea" + }, + { + "path": "frontend/src/features/sell-decision/schema.ts", + "size": 2515, + "sha256": "7f9dedaa04a4a89490ce21c37dab6c18334d47f9c7e1ab883c3bce82123cd635" + }, + { + "path": "frontend/src/features/sell-decision/tests/schema.spec.ts", + "size": 1954, + "sha256": "9f7abcb83e769d81a67574c8e279d02d4ea085ccf3ae13b6310d9d30e8f8ecfd" + }, + { + "path": "frontend/src/features/ui-standard/pages/UiStandardPage.vue", + "size": 3270, + "sha256": "c1a3b9126ae8fb72019478a87c7a818c1848b58f9d1b4ca154b3c0337b37ddd1" + }, + { + "path": "frontend/src/main.ts", + "size": 516, + "sha256": "a6784152893407a81feee0a280908ab442812feb3131276da683834b07206abc" + }, + { + "path": "frontend/src/shared/api/client.ts", + "size": 709, + "sha256": "536919cbb4146f05fd15a408775ddc592c39af502f896758b603b74da6029762" + }, + { + "path": "frontend/src/shared/api/problem.ts", + "size": 342, + "sha256": "a2c41433f08513c9139bfa9edd681ffdee9b52fc25e44bd5753c25b56c54ed62" + }, + { + "path": "frontend/src/shared/auth/PermissionGuard.vue", + "size": 276, + "sha256": "90b89986d00f945b519da39beec01b80c3ecbcbb3cd19ccc2ced0c720d663c65" + }, + { + "path": "frontend/src/shared/commands/idempotency.ts", + "size": 363, + "sha256": "c2a4675341e780275a0bfab7405d32f14f0ac83835123d3c27c2b06a2286a552" + }, + { + "path": "frontend/src/shared/contracts/versionSet.ts", + "size": 384, + "sha256": "b9aa1927875bad6608054d32f8a99cb450c534567f117220c6409f45efcc3f8e" + }, + { + "path": "frontend/src/shared/crud/StandardCrudFormPage.vue", + "size": 1140, + "sha256": "1ba40ba027276204bdba5fcdfa1fcd679b097924b9f34d7cea02c0dd02aa92fc" + }, + { + "path": "frontend/src/shared/crud/StandardCrudListPage.vue", + "size": 1647, + "sha256": "b90bc3a352872cef36ff0cd4d6a530d80700df62def95295a0863f3e5f5649a5" + }, + { + "path": "frontend/src/shared/crud/contracts.ts", + "size": 1014, + "sha256": "170b3f372d44e58cb76cde444398924d540a4e42b21fc2b51eda68a4dcd1675d" + }, + { + "path": "frontend/src/shared/crud/queryCodec.ts", + "size": 1656, + "sha256": "188f4270d31e3e5c58ec9d4aad67e91e91a0c3f650c4a8749a984242797c319d" + }, + { + "path": "frontend/src/shared/crud/resourceDefinition.ts", + "size": 1046, + "sha256": "3ee472c03be32c802517be631f984c652d2445cfcce8d18a9b644bd2faf03b84" + }, + { + "path": "frontend/src/shared/crud/tests/queryCodec.spec.ts", + "size": 768, + "sha256": "d3aede06652c1f6944e1d1b0d49ffe46b2bf64fa6464d319fac2e652a6cb68a3" + }, + { + "path": "frontend/src/shared/crud/useCrudListState.ts", + "size": 991, + "sha256": "a288a7182dc6eabb28ce607318a8ec5b8f732469026f3a56fa31537a12437050" + }, + { + "path": "frontend/src/shared/crud/useOptimisticCommand.ts", + "size": 1362, + "sha256": "190ce273b477f3637a90b1a7f437cd34609ffc88b0059706d3d7117b9611acb4" + }, + { + "path": "frontend/src/shared/formatters/financial.ts", + "size": 1194, + "sha256": "d00ca09616bea99e88bd0eeabd4f4e17e2072c11cf4aa31e596fb813d54f8ce6" + }, + { + "path": "frontend/src/shared/formatters/tests/financial.spec.ts", + "size": 548, + "sha256": "4b9320a2161fbf07d609cc252e9f7e843b290b6614205841fbbd830b1db7f18c" + }, + { + "path": "frontend/src/shared/status/DataFreshnessBadge.vue", + "size": 549, + "sha256": "85d3a289c3e3f5e769df0a6ec9f5a7d163e5772c8416e812b30031a64cc90e56" + }, + { + "path": "frontend/src/shared/ui/DataGridShell.vue", + "size": 625, + "sha256": "2fac962bc94a84a1bfb318904e600805b61c0fcca229ea658ae055a784aba447" + }, + { + "path": "frontend/src/shared/ui/EvidenceVersionSet.vue", + "size": 650, + "sha256": "b5c46b8d4780a46c07926b8afa67ab7a8a3d5e90b491e213f6ec7595f6736a44" + }, + { + "path": "frontend/src/shared/ui/QueryStateBoundary.vue", + "size": 2681, + "sha256": "ab1f06771ca4829c836a13ec248906df698c26df576cfa31109fa6ec93df5a2b" + }, + { + "path": "frontend/src/shared/ui/VersionConflictDialog.vue", + "size": 677, + "sha256": "cebfc534f43eab9f93c4037870ebd1140e21de5ddb937c38dc5b43b2ff7c2f8a" + }, + { + "path": "frontend/src/shared/ui/adapter/compatibility.ts", + "size": 2395, + "sha256": "28f86d3a46ec33db836887854f52d52ce67c08f75d429f48ee17d49ed4d365ee" + }, + { + "path": "frontend/src/shared/ui/adapter/contracts.ts", + "size": 3344, + "sha256": "4ce5994dcfbb41f479262594b454f706f70f21f15bed6e8ecdf99c35b762e539" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeButtonAdapter.vue", + "size": 606, + "sha256": "c2bd9f273d97d3c8b80c2446fc2491e04039911524278c05ca9b580348a850a8" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeCheckboxAdapter.vue", + "size": 506, + "sha256": "ffb41e074bd1949f5cab11db1c9c1cd9ea407dd628ebce98b18b8f6549cbca78" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeDataGridAdapter.vue", + "size": 1371, + "sha256": "27090396f3710cfc398907d4fec71a89262c8bbf0697279371cdefaf2386249d" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeDateFieldAdapter.vue", + "size": 883, + "sha256": "f3b34fd92432fece26ca97bb4eeb069e04312bce76098ca9ae33c5447ad0e3c1" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeDialogAdapter.vue", + "size": 914, + "sha256": "ce26ee54c30fd8901f9a464c27fe8f36b08652ab80c2b584b226cf9846354227" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeInlineMessageAdapter.vue", + "size": 589, + "sha256": "1534336f7413558ab423b8fd110a25c63d5edcba436078243b2b1866e35150ed" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeMultiSelectAdapter.vue", + "size": 1094, + "sha256": "e19bcaed80541be9c04bc30702ce5e0cb91045b2b14422a5a1c0dfa09dd01418" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeNumberFieldAdapter.vue", + "size": 842, + "sha256": "c3ebf52883b2a50d66994ace6e1a6f1efd2dd59580d40512626c6564bbacf597" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativePaginatorAdapter.vue", + "size": 1185, + "sha256": "fde043e62ee6326896f1530dd27cec038a1f208902491121acdf5bc36db42bea" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeSelectAdapter.vue", + "size": 1092, + "sha256": "9174a3f065de35d1ccab30acb5494946d6962c3ae28774f5038e4348fc8a22ae" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeStatusTagAdapter.vue", + "size": 268, + "sha256": "e516e9bd2b8f2909774cf3f501d4e3724afa2efceaa7e7bc444e0618202330e0" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeTabsAdapter.vue", + "size": 677, + "sha256": "f15e4f4abaa8c2a914024dc3ba5d859a8a29c271776215f272aff47987baf5c9" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeTextAreaAdapter.vue", + "size": 568, + "sha256": "f38a8b215b24e375b53658b0d872f72e5ad5f54af595c9e26dea3c6a0150924b" + }, + { + "path": "frontend/src/shared/ui/adapter/native/NativeTextFieldAdapter.vue", + "size": 541, + "sha256": "22af48dc4c899cc84805ab2697b1a1dd9318d6d1d3a3ab19ca5e14fb7d5f5100" + }, + { + "path": "frontend/src/shared/ui/adapter/native/index.ts", + "size": 1493, + "sha256": "fc18a7985ef8efdd326155090fc9042bbb23230eb436fa44a2741cae1cfba6cb" + }, + { + "path": "frontend/src/shared/ui/adapter/native/installNativeAdapter.ts", + "size": 351, + "sha256": "03905b3ee7b96293193f793cb2a8c7ce600ec373012cd2acee50587aed3b7ced" + }, + { + "path": "frontend/src/shared/ui/adapter/native/native.css", + "size": 2174, + "sha256": "8b57424200c6fb861926caea28e38073b8c4190dbf95756d10408f2a12d81224" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/AgGridAdapter.vue", + "size": 1884, + "sha256": "0b57b8d7e0dd75d1551c293323a616d7593ba45543999bff8f78c7b77d9edd1c" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeButtonAdapter.vue", + "size": 1004, + "sha256": "fdd26e0258d7721c62e3fbdd0e261097d6ff459658d29c9fe9089ee949015e38" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeCheckboxAdapter.vue", + "size": 436, + "sha256": "d7053a680874be0060eca0c36a1bcc85656297b245f89f0f73cc2871bc7d5a87" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeDateFieldAdapter.vue", + "size": 641, + "sha256": "f1a8a132f12ab555e4283fa0c443249b32ffcc53ad1c5f44135d405a48f24518" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeDialogAdapter.vue", + "size": 513, + "sha256": "c7997429a9d2c3fa5ce34da166128c15b38641fb799e5b0f7717eb0ec298e002" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeInlineMessageAdapter.vue", + "size": 622, + "sha256": "cd6922ecb58e30a80e3812a36ce473bac3b37e3434806177884162896e3cd7f8" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeMultiSelectAdapter.vue", + "size": 771, + "sha256": "2d7d016f0f773dfe7880ea29d5ca0c1140e06907299954d81218c8e07a4e977d" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeNumberFieldAdapter.vue", + "size": 729, + "sha256": "792894b132d6dbe5a726f835463bc2059bdedc1492f29cb5a42d81f0faa45707" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimePaginatorAdapter.vue", + "size": 579, + "sha256": "e3faecccfa6d70c497f0db35ae3b87eb6e59664270179d3347ebb5ac5a0c1c4d" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeSelectAdapter.vue", + "size": 938, + "sha256": "f655c5a0d5a8182a96bfd9e34d4f06461ac0acf3fbef354ef7f208273b3cbd20" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeStatusTagAdapter.vue", + "size": 665, + "sha256": "14624b68be436b1fdebcbee32872c902b22b17de31840fa21d644f017f10660f" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeTabsAdapter.vue", + "size": 677, + "sha256": "f15e4f4abaa8c2a914024dc3ba5d859a8a29c271776215f272aff47987baf5c9" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeTextAreaAdapter.vue", + "size": 853, + "sha256": "55432e421103111d1fb6e7d75960e7399634a6f4b15b370fb417441a81d2a4df" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/PrimeTextFieldAdapter.vue", + "size": 908, + "sha256": "20f5c4531bf07f9647f46e6d3e490a8a0da7a15788e72aa76e9aabc1df9bddc9" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/adapter.css", + "size": 1932, + "sha256": "88e933ac4b58ce400de876801e435f0e2cd8324dd24bab77a080e85d9b30d8f4" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/index.ts", + "size": 1478, + "sha256": "15d4430f90f18c0c8b07eedd44e4e6b87f7e7a43b73df80fcabb5caa59edd950" + }, + { + "path": "frontend/src/shared/ui/adapter/primevue/installPrimeVueAdapter.ts", + "size": 537, + "sha256": "5bb3395852c85a1698872b4bd51f8861a20fb41808308231e277d17701cd5194" + }, + { + "path": "frontend/src/shared/ui/adapter/tests/uiAdapter.contract.spec.ts", + "size": 686, + "sha256": "43687416750abc179194e2a1839c23514580b8d673557dc66ffcf8eb40065605" + }, + { + "path": "frontend/src/shared/ui/adapter/useUiAdapter.ts", + "size": 547, + "sha256": "9a86a72bf0973dbed40d6e3432f6eb7d6a490650af45d922c1f634c21484de8c" + }, + { + "path": "frontend/src/shared/ui/components/FieldShell.vue", + "size": 982, + "sha256": "e7ffe8eb658a181a6eef380122f173e46cf08020a4539e46f66cfea7ca12bf42" + }, + { + "path": "frontend/src/shared/ui/components/KsButton.vue", + "size": 597, + "sha256": "4cf1080b672a0fd6516ff144b9d923c90c7e194c69308ebd4457aa21a0c23f76" + }, + { + "path": "frontend/src/shared/ui/components/KsCheckbox.vue", + "size": 830, + "sha256": "fb9c98e5ebcc5c43d2511f80d789f936c3149f64690925d1e0c32244e0561c72" + }, + { + "path": "frontend/src/shared/ui/components/KsCommandBar.vue", + "size": 783, + "sha256": "0457b654117a34cfd62cf6cc8583420c030ad5e8d92ef7a1cf0060fdb9d81be2" + }, + { + "path": "frontend/src/shared/ui/components/KsDataContextHeader.vue", + "size": 1702, + "sha256": "8d570b1c3caeade30ecae2e22e2c3ac98a49f2c085566d0cb8841de073ae3ead" + }, + { + "path": "frontend/src/shared/ui/components/KsDataGrid.vue", + "size": 585, + "sha256": "a6eb87135abee11ec94f340c0fe49eb6c1c92da644d791813c9f6a6676faa192" + }, + { + "path": "frontend/src/shared/ui/components/KsDateField.vue", + "size": 1287, + "sha256": "febc52ffa0717127c7710af9a72e4a2ac190378ec2d36560bc4f4e98b14b3a69" + }, + { + "path": "frontend/src/shared/ui/components/KsDialog.vue", + "size": 477, + "sha256": "5aac8474ec6e588838e2287389440882445cef13627e9b862f50babac504bdef" + }, + { + "path": "frontend/src/shared/ui/components/KsInlineMessage.vue", + "size": 490, + "sha256": "8a7b63b291f01ea076c0f7f0f337ffef9ca7e7ece6a2fb9a1f7260ac2ff010de" + }, + { + "path": "frontend/src/shared/ui/components/KsMultiSelect.vue", + "size": 621, + "sha256": "fc5c89cf5b601ecd588d9339e54604ac1f5663d3cb0e844d96453f27091a743f" + }, + { + "path": "frontend/src/shared/ui/components/KsNumberField.vue", + "size": 1419, + "sha256": "e33e7d633ae81730fe2119b77e4e12ab12ca7add3c3c87ec1975d701087e5f55" + }, + { + "path": "frontend/src/shared/ui/components/KsPaginator.vue", + "size": 511, + "sha256": "7474162f547e0dc9f3be4f0e21a7a5a74952f932eeb95775cfd1d278c9478793" + }, + { + "path": "frontend/src/shared/ui/components/KsSelect.vue", + "size": 1307, + "sha256": "f636c804a30bd7776c4a4e3ba1a10767f94bc1bb70cecb1f9130ac83e99d4c18" + }, + { + "path": "frontend/src/shared/ui/components/KsStatusTag.vue", + "size": 338, + "sha256": "d4d9a4f823b383981b87025425144376b1d6258c17196874941d2af36de80521" + }, + { + "path": "frontend/src/shared/ui/components/KsTabs.vue", + "size": 587, + "sha256": "7c0778efe4cfd3d55f2d344dc1f2dede7ed84c9e3fc13bf926e8c5d50ba9ae8a" + }, + { + "path": "frontend/src/shared/ui/components/KsTextArea.vue", + "size": 1228, + "sha256": "5734d94dbb4da4ab7afdab62c43ef6c60a34614cde5f52ee37496d50088e4bee" + }, + { + "path": "frontend/src/shared/ui/components/KsTextField.vue", + "size": 1367, + "sha256": "f6c475c51e91762b40008d12ae60c30f883f0372efc4c6a064f348abb7077b6a" + }, + { + "path": "frontend/src/shared/ui/components/index.ts", + "size": 1001, + "sha256": "10e94406004581d5430a0f33dc18b0c2d9dcf16e75842c94aec158bb77038d28" + }, + { + "path": "frontend/src/shared/ui/contracts/screenContract.ts", + "size": 744, + "sha256": "ff1938e6b891474a217d6b99c7c4382a23327764a46fbd0c63ffcfc3e518d669" + }, + { + "path": "frontend/src/shared/ui/feedback/StandardStatePanel.vue", + "size": 1327, + "sha256": "af2142b7b4666ff0a22afac9c4e417dba9471feed346e52f503135e82dd97f51" + }, + { + "path": "frontend/src/shared/ui/index.ts", + "size": 374, + "sha256": "174e8a3c480a5e5459a91d18304de2af202f513694b2992248e2d60ee00dbdfd" + }, + { + "path": "frontend/src/shared/ui/layouts/AppShellLayout.vue", + "size": 2506, + "sha256": "3671e53ef512823a7002778793bbf30465b6e5b9e54accc4e5ece058a8534979" + }, + { + "path": "frontend/src/shared/ui/layouts/CrudWorkspaceLayout.vue", + "size": 934, + "sha256": "91b5fbb89c62bc2fd34591d3a294011dde576bf1a47970d08e5d5d0ac1de11b5" + }, + { + "path": "frontend/src/shared/ui/layouts/DashboardLayout.vue", + "size": 839, + "sha256": "0a347aa9f705549fd48ffbc0b1e86d358e9823fa4c7845004f6fb91c3ae357a4" + }, + { + "path": "frontend/src/shared/ui/layouts/FormPageLayout.vue", + "size": 646, + "sha256": "f14c4c20eb6d7527cffdb0022370d13515c0fa935b04b2c2f21fbc1c657d4955" + }, + { + "path": "frontend/src/shared/ui/layouts/OperationsConsoleLayout.vue", + "size": 881, + "sha256": "e93f0285cf763953f722e34c51195b8675204f0ecfbe43791f643afa250b9424" + }, + { + "path": "frontend/src/shared/ui/layouts/PageLayout.vue", + "size": 2440, + "sha256": "6202ff3d13d9ed06586aac6ab4cc7e2cee15fcc725774439ccf6421a39c68733" + }, + { + "path": "frontend/src/shared/ui/layouts/ReviewWorkbenchLayout.vue", + "size": 773, + "sha256": "5ee2e04c8f1b5f99c144be8b277cf61a6d459f1aada5032b20bd02627d8403fc" + }, + { + "path": "frontend/src/shared/ui/layouts/index.ts", + "size": 491, + "sha256": "6556281e8da6c0ee1fb47dce25cae481cd8f44b241c807e5c5f8be85f37a1ce9" + }, + { + "path": "frontend/src/shared/ui/provider/UiProvider.ts", + "size": 173, + "sha256": "b85f7221e7920e98e56ede00b44701e6e11a6823ab20fabc51347ea5af6caa8d" + }, + { + "path": "frontend/src/shared/ui/provider/index.ts", + "size": 103, + "sha256": "45a9be29139716a8c7a4df61579e5ea84c4cc238c5af37109946d7ccb35cb2fd" + }, + { + "path": "frontend/src/shared/ui/provider/resolveUiProvider.ts", + "size": 601, + "sha256": "b6aab34f504046ec39aaa3b153399c4dcba8d9beffbac4b32e360d63bdb2a167" + }, + { + "path": "frontend/src/shared/ui/screen-types/BatchOperationsPage.vue", + "size": 662, + "sha256": "1713e7863ccdad388c03730179b81d0156639ef1cbf9d4ca15c5ee3fac9a08a9" + }, + { + "path": "frontend/src/shared/ui/screen-types/CrudDetailPage.vue", + "size": 469, + "sha256": "e8f2f40e3167324fbfc6dab9bfa9ca8c7291162a1993cd031374b3c18d76aa04" + }, + { + "path": "frontend/src/shared/ui/screen-types/CrudFormPage.vue", + "size": 550, + "sha256": "b68de3f91c2751a1a77cb1c981533ab9548baee8ca35deea33834d5a724085fd" + }, + { + "path": "frontend/src/shared/ui/screen-types/CrudListPage.vue", + "size": 500, + "sha256": "3ce4ec49fae21be45f0b35405d4af97da906a141c4b8118cc768ebf3a2dc7a60" + }, + { + "path": "frontend/src/shared/ui/screen-types/CrudReviewPage.vue", + "size": 561, + "sha256": "88e2ba235f4690380b91636fb91d4260542d57e04d2c352cdc338e5b0f678c18" + }, + { + "path": "frontend/src/shared/ui/screen-types/catalogue.ts", + "size": 3969, + "sha256": "69a990aaacbf430ab2a53d55a4998c68541533fa1c51fd7b58aaf1bbb96e27cd" + }, + { + "path": "frontend/src/shared/ui/screen-types/index.ts", + "size": 376, + "sha256": "6c5d88765b58bac501cb00094815a7b7b8fdc7485fa88017e9617bed9773e2c4" + }, + { + "path": "frontend/src/shared/ui/screen-types/tests/catalogue.spec.ts", + "size": 943, + "sha256": "aba0295db0190880bdb0aa349712e53487dd22f89f52ee852587e5bf9254d63b" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/ApprovalWorkbenchPage.vue", + "size": 898, + "sha256": "2ad9e0bd37f25595e645d3136c38a3d76dd35f4150701de49d2d1fdcf38f413d" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/BatchOperationsPageV2.vue", + "size": 1007, + "sha256": "e11d575588c2fdddcc213e2c3d02d983143ccffd205ad8ce5c3ec21d39519109" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/DetailReadPage.vue", + "size": 894, + "sha256": "85e162360ab259a575f1fa6684e4730dc44a7771c91dfa2d3fa160f6489b3d35" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/EditFormPage.vue", + "size": 941, + "sha256": "db975a83b03b286ea1c1055e1b95fc2b8c2375bdbaeca6ce3ee00353474b5425" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/MasterDetailCrudPage.vue", + "size": 835, + "sha256": "413f29fd5bf0d093c9061d416b26eb6c5be12014c382f2bab3ff86a02336fa42" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/ReconciliationExceptionPage.vue", + "size": 1096, + "sha256": "27358291cce5fba34e27a3b7888fd11dbe044d9121f71030f94057efc0ec1b59" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/ScorecardDashboardPage.vue", + "size": 1070, + "sha256": "91d9fce60500632646cec6c09cd3e2b5c5f95579a830a35134364d618f7d5be6" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/SearchListCrudPage.vue", + "size": 942, + "sha256": "2f6c5544886f965f9061f514940cdf158df3ec3552a7e59688832aac0acb4b8b" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/StandardScreenBoundary.vue", + "size": 1051, + "sha256": "e20876c044fa56f6ceb20936b6c7531b67b2a1e7e751cb3dc261ed6454a560e5" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/StepWizardPage.vue", + "size": 1231, + "sha256": "b1418d31b3c3a826c7e67428d8357d262f006d67fba8b24f7c1f186971baaf2f" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/VersionGovernancePage.vue", + "size": 1224, + "sha256": "6124fe748c1317aa9f1c6a3e148581db2b3e3de841f440c36bd67813241e67d7" + }, + { + "path": "frontend/src/shared/ui/screen-types/v2/index.ts", + "size": 831, + "sha256": "81c562f0aa510263376a6816bded7db8c0428ee368a8128c99d48cdee9d7f754" + }, + { + "path": "frontend/src/shared/ui/tests/adapterCompatibility.spec.ts", + "size": 1287, + "sha256": "7c22eac78a5d8eb590831622ae2235767e48dde498f8480cf1cb1750b85a5efa" + }, + { + "path": "frontend/src/shared/ui/tests/idempotency.spec.ts", + "size": 381, + "sha256": "4bb9102b6728f74db62ffca6c4706b17234ebe61c516e112b35ff92f76dc0575" + }, + { + "path": "frontend/tsconfig.json", + "size": 414, + "sha256": "653c000f3e469b362c64a1ddd19e0ae0ffb342c03584d642c9ccfb8e143cebfc" + }, + { + "path": "frontend/vite.config.ts", + "size": 310, + "sha256": "f891ca0002307beb575781f2c724a5536b1a0cc9e20cb3a1b88b27e87f6c9931" + }, + { + "path": "global.json", + "size": 111, + "sha256": "20c93ca7812d0a9825eef71217156f95ab2f4fe5aadfeb22ebc1c24b630018d3" + }, + { + "path": "research/hardening/README.md", + "size": 764, + "sha256": "cc0d904862710d49ca540eb8134711e96021f819acf342ca666ce0e3cfab5a9d" + }, + { + "path": "research/hardening/TEST_RESULTS.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "research/hardening/TEST_RESULTS_V12_1.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "research/hardening/__pycache__/kartsell_policy_contract.cpython-313.pyc", + "size": 11759, + "sha256": "5d97e4c5aa534cafe29fa2955b3acb4d3fde3445a67f74b0afcff87c35230521" + }, + { + "path": "research/hardening/__pycache__/test_policy_contract.cpython-313.pyc", + "size": 4080, + "sha256": "56bc6be18f39afd1d2373844237981d61788a7cff0001f8b911818b0b0af73a0" + }, + { + "path": "research/hardening/kartsell_policy_contract.py", + "size": 7537, + "sha256": "cef2bc0a58a291a799a0da88a43e23200a6beadf70b5a0e3e31114672378f70c" + }, + { + "path": "research/hardening/test_policy_contract.py", + "size": 2256, + "sha256": "b03c46d40ddf70ba27e62ca95ad10a34c3bd17fd39f3cf84fd8abb16033393dc" + }, + { + "path": "research/original/K-ArtSell_12_2_README.txt", + "size": 516, + "sha256": "64b0cef0ade8479cd3006142ba03fd630dfccce7907463a36e78d07780bdc2b9" + }, + { + "path": "research/original/K-ArtSell_12_2_config_proposal.yaml", + "size": 4696, + "sha256": "ea5a116771766142f802ded9fcaa851abc24d549cb61e70fdc260f41b7b5154e" + }, + { + "path": "research/original/K-ArtSell_12_2_quant_review_ko.md", + "size": 25117, + "sha256": "14eda6f50daf6c66f18a14921f6c02810a5a07a801fe5f05cea352ed4d233d49" + }, + { + "path": "research/original/K-ArtSell_12_2_source_manifest.json", + "size": 1120, + "sha256": "80916d1091353de4e80f89ee2e0227231eb477b77c1c5ccf14e713634fcc1be0" + }, + { + "path": "research/original/kartsell_parameter_robustness_fast.py", + "size": 5506, + "sha256": "75a42fcff9f2df1ea5e46b6f4abaf516557114ae2c10ff15a2fc0085e6121712" + }, + { + "path": "research/original/kartsell_v12_2_extension.py", + "size": 11377, + "sha256": "22b5b0078ca861d8832ad4f2d0763917898dd4403e2df56fc4cb340091856d37" + }, + { + "path": "research/original/kartsell_v12_research.py", + "size": 22598, + "sha256": "dd8c564a1cd3fe87ed8db9b4e89f5e43f1ea41102adbb81a675b4b5f621663e6" + }, + { + "path": "research/original/results_kr/000660_v11_events.csv", + "size": 61728, + "sha256": "679e0cecf72ff5f5bc1d808ccbe73d228678ba300aa6f4a671c11bf9bcfa9ebe" + }, + { + "path": "research/original/results_kr/000660_v12_events.csv", + "size": 8605, + "sha256": "6277c1ab963fed3689cdb214426082a480be0dac17640df5918bd8dc6ee560ac" + }, + { + "path": "research/original/results_kr/005930_v11_events.csv", + "size": 102283, + "sha256": "3b0d9d29d8522669c3989b57f79823628112a71ebd419e6424d20ef3e34e0b76" + }, + { + "path": "research/original/results_kr/005930_v12_events.csv", + "size": 11061, + "sha256": "532ace9444a55b25ed132e7e1295efb8054f238e0bce8a6249692e7baa3caf1f" + }, + { + "path": "research/original/results_kr/035900_v11_events.csv", + "size": 73261, + "sha256": "1355c28b430af95bcaa387fc5771fd57e36fa1bf2f3e833883c9845f01ed526e" + }, + { + "path": "research/original/results_kr/035900_v12_events.csv", + "size": 7599, + "sha256": "aaf0e084affdc2b2db3f524bc14c11d1c70094fe70f168b40f4f5a3f2840ccee" + }, + { + "path": "research/original/results_kr/kr_asset_metrics_10bps.csv", + "size": 4266, + "sha256": "c70823802228d86860a0dc2f28f59391b387bee0e0cb9c4ff220b1202eda89e0" + }, + { + "path": "research/original/results_kr/kr_cost_sensitivity.csv", + "size": 2047, + "sha256": "dc295ed6b722f7d333264359347ca2ea25bbc20f148a474e5e6c4153890b01aa" + }, + { + "path": "research/original/results_kr/kr_data_quality.csv", + "size": 625, + "sha256": "6d86d16d7d1b655c7687163d609855c2e203f3620f610e6c531918034c1696a9" + }, + { + "path": "research/original/results_kr/kr_period_metrics_10bps.csv", + "size": 21342, + "sha256": "3423f6c975b1421ecdb76b93edd08fcfb8dee0bf65d293f2fd9de3653701421c" + }, + { + "path": "research/original/results_kr/kr_portfolio_buy_hold.csv", + "size": 327036, + "sha256": "8cf47e7a69b859f0e01932d92ce2cbb1fbe20b46e6cd8c98fac87a9463579efd" + }, + { + "path": "research/original/results_kr/kr_portfolio_kartsell_v11_original.csv", + "size": 437966, + "sha256": "2486ccc73f256e959a9f17fa5732eeaa515967cd6b991a4c379b6b43d1c6f611" + }, + { + "path": "research/original/results_kr/kr_portfolio_kartsell_v12_candidate.csv", + "size": 420065, + "sha256": "be906730bc90aff11697109b1de251d423e3e7f371097ca23843d03375623a4b" + }, + { + "path": "research/original/results_kr/kr_portfolio_kartsell_v12_plus_capital_floor.csv", + "size": 417007, + "sha256": "ab1c61f623e32d65909126485653862f06196032e72b98b915cc261292e4a723" + }, + { + "path": "research/original/results_kr/kr_portfolio_metrics_10bps.csv", + "size": 1920, + "sha256": "a736f32c07bde9eb5a9e21a8741a6c426daa3a80212d4f5dea8ec5bd863f574f" + }, + { + "path": "research/original/results_kr/kr_portfolio_trailing_12.csv", + "size": 377075, + "sha256": "d03346128abe6189212ce332e949633f950ab425dca08435ddc8d5cbbcd8758f" + }, + { + "path": "research/original/results_kr/kr_portfolio_trend_10m_shifted.csv", + "size": 363137, + "sha256": "3e03c4a0c528f30460d128cd05feb7e991c62bc8573a3a11c378a6de6701a2a1" + }, + { + "path": "research/original/results_kr/kr_sell_event_stats.csv", + "size": 679, + "sha256": "68cc58174ef9bad112bb687e6c85e8fc6f13df45585e64a93887a9fa8d0b6695" + }, + { + "path": "research/original/results_kr/parameter_robustness_27_stdout.txt", + "size": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "research/original/results_kr/parameter_robustness_9_stderr.txt", + "size": 846, + "sha256": "d142f93d8b8fa7d745b97387b88101438bfedc679f47dabc65b344a25f4d8425" + }, + { + "path": "research/original/results_kr/parameter_robustness_9_stdout.txt", + "size": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "research/original/results_kr/parameter_robustness_fast_stderr.txt", + "size": 864, + "sha256": "fde3291abc86719fe592191aa95fdb1c39064d60f83abe707fbc83d2b141906b" + }, + { + "path": "research/original/results_kr/parameter_robustness_fast_stdout.txt", + "size": 4868, + "sha256": "6efb60db099a7ce2572087c4f5b8c08b2216b666754207420e18ca35b0d1b8c5" + }, + { + "path": "research/original/results_kr/parameter_robustness_grid_9.csv", + "size": 4487, + "sha256": "53d994470d88e6458d9563f53b30ccc60cb3b7121a0c119b5d02d71e8e113c86" + }, + { + "path": "research/original/results_kr/parameter_robustness_summary_9.csv", + "size": 128, + "sha256": "75cd54fac7c4ddfb8a17016aba507f0cd8b05914e40feb0f0d7d24ca51f97321" + }, + { + "path": "research/original/results_kr/parameter_top_train_variants_9.csv", + "size": 4487, + "sha256": "53d994470d88e6458d9563f53b30ccc60cb3b7121a0c119b5d02d71e8e113c86" + }, + { + "path": "research/original/results_kr/price_factor_panel_monthly.csv", + "size": 217186, + "sha256": "eaa505db2e905aee6c03044b26a59d04a1388c6bc4993fc7cfcc3b765a952a55" + }, + { + "path": "research/original/results_kr/price_factor_summary.csv", + "size": 1269, + "sha256": "79f867df5001ebef5e881efd5f8ad120eb6b734eabb4977d2e51fc6ccba496f3" + }, + { + "path": "research/original/results_kr/spy_core_tactical_metrics.csv", + "size": 991, + "sha256": "9d9a7482b0fa34538e77b3631ec9f107f60c59311d3aef001483806ad8f8d7ac" + }, + { + "path": "research/original/results_us/AAMRQ_v11_events.csv", + "size": 6855, + "sha256": "66d2dfa8b62336c40cebfb0d529d31b285d4815d01f39ccf5878ff9e0e260489" + }, + { + "path": "research/original/results_us/AAMRQ_v12_events.csv", + "size": 1797, + "sha256": "1c1406de05d69355d4318e75741b9df272491ec4749b145cda9a407fb9fe6332" + }, + { + "path": "research/original/results_us/AAPL_v11_events.csv", + "size": 90834, + "sha256": "eb68fdbaf0d8a984067235e17bd83e518ee179fbc1dad092b614ef3929a26c19" + }, + { + "path": "research/original/results_us/AAPL_v12_events.csv", + "size": 11651, + "sha256": "723e2db979a434ee01d3f59031f4bcca98aadec640445ff991346d2fedfd70b0" + }, + { + "path": "research/original/results_us/AIG_v11_events.csv", + "size": 126506, + "sha256": "aee109b979b25becbe1e860540970d35c7d579407cda02b8ed68cced399bc15d" + }, + { + "path": "research/original/results_us/AIG_v12_events.csv", + "size": 7906, + "sha256": "0d0d4c334b3b1fd1380392de6c1ea1754d0ff630e9b15de59950e0b072cffe7a" + }, + { + "path": "research/original/results_us/AMZN_v11_events.csv", + "size": 98867, + "sha256": "e8c9817288685cca37cb7c8d06fa874b39a0aea504fdebd5946f3ffb077a9e54" + }, + { + "path": "research/original/results_us/AMZN_v12_events.csv", + "size": 12709, + "sha256": "a7ea816fe003aba24b0dfb5d6cb645a11a183eb77f59ac9bf82d303c86713d5b" + }, + { + "path": "research/original/results_us/NVDA_v11_events.csv", + "size": 102845, + "sha256": "849fc1801f7091d6dd7cc5453ddd24c1cedd7ca6dee87669894af7e6fb2a1cf5" + }, + { + "path": "research/original/results_us/NVDA_v12_events.csv", + "size": 12378, + "sha256": "a550dd121f5f0645bff406656fdbcedda5530cb929995eaff3199ddb984e4b53" + }, + { + "path": "research/original/results_us/SPY_v11_events.csv", + "size": 86625, + "sha256": "46585765beb33148fbb08ab7594e4fef0ab604237a681217f649bd517d1a323d" + }, + { + "path": "research/original/results_us/SPY_v12_events.csv", + "size": 9799, + "sha256": "45a3911c6ef11bb5ecbe32a195667d7fbb35dddd63bd098a4ca30fce85d28402" + }, + { + "path": "research/original/results_us/TSLA_v11_events.csv", + "size": 129116, + "sha256": "8ca591e391285d9b56e2e4a6a630e6b9f62ca64a5c7336ac6cd31a4232aad1e1" + }, + { + "path": "research/original/results_us/TSLA_v12_events.csv", + "size": 13627, + "sha256": "d82c0cd43ae199a7596a9ca8773eb45f1e4370357875be4f479a6733f372b090" + }, + { + "path": "research/original/results_us/asset_comparison_wide.csv", + "size": 3896, + "sha256": "6844a1992631c06fdc42ee9cb669c36f4e77a7464186eea5d6989c52f5534a2f" + }, + { + "path": "research/original/results_us/asset_metrics.csv", + "size": 9845, + "sha256": "87fefcaa05dfffc504157afb047353731f8905b811d6db4bd8e21c9888e3089e" + }, + { + "path": "research/original/results_us/data_quality.csv", + "size": 685, + "sha256": "2e6bb956f89243bb8a2cc10c7efc749696073307168e368e8c53254ec098ffe0" + }, + { + "path": "research/original/results_us/opportunity_cost_protection.csv", + "size": 1099, + "sha256": "ea81cd53cd9aaebea98c2371cc476e924aaf292a8538d4b3dc54576b4f158e9f" + }, + { + "path": "research/original/results_us/period_median_metrics_core_six.csv", + "size": 3344, + "sha256": "a14187aedb2db3b21a724ac555273df3d802611d1eaf7ad79d5d9713b4083127" + }, + { + "path": "research/original/results_us/period_metrics.csv", + "size": 58549, + "sha256": "d4bc325eded6037b82c05f4bf8e05f23e53fd69f11635de700182147747f8437" + }, + { + "path": "research/original/results_us/portfolio_all_seven_including_delisted_stress_buy_hold.csv", + "size": 446563, + "sha256": "a04e584abef5c7eb0c67f5f2c871cacc64fe53cd9c4f3844fd64196645296413" + }, + { + "path": "research/original/results_us/portfolio_all_seven_including_delisted_stress_kartsell_v11_original.csv", + "size": 619457, + "sha256": "0ff39e7f14f1e0ef1f641098883d9b364d73d5c7cada12624b8c77550d7aa7ba" + }, + { + "path": "research/original/results_us/portfolio_all_seven_including_delisted_stress_kartsell_v12_candidate.csv", + "size": 576468, + "sha256": "04338b40657f642ad8f0443ab8a7b7e0fae9b323222e65b61e1196672a1b9ead" + }, + { + "path": "research/original/results_us/portfolio_all_seven_including_delisted_stress_kartsell_v12_plus_capital_floor.csv", + "size": 585004, + "sha256": "f54f193832f694064dff4f0a65bea809a450f61e68ee3d1353645ea592326c83" + }, + { + "path": "research/original/results_us/portfolio_all_seven_including_delisted_stress_trailing_12.csv", + "size": 519910, + "sha256": "9b8d5c31bbf5f0c2ac47c8f27881242d19591dbb7bfdf5cd3176147f8b95484b" + }, + { + "path": "research/original/results_us/portfolio_all_seven_including_delisted_stress_trend_10m_shifted.csv", + "size": 516387, + "sha256": "dbc21bfe64b8b7e20367cfc1ee27586e4acc31cc7dfa461d09b3d31a27237821" + }, + { + "path": "research/original/results_us/portfolio_core_six_dynamic_equal_weight_buy_hold.csv", + "size": 446470, + "sha256": "156084f5fb232f04d988d3e40da1f6064d61848ad0c45a2f6ecd249aef12037b" + }, + { + "path": "research/original/results_us/portfolio_core_six_dynamic_equal_weight_kartsell_v11_original.csv", + "size": 618788, + "sha256": "b628f4c8213be786594027eacfc7321de6e87cd28622150aa3798cbcf9228f72" + }, + { + "path": "research/original/results_us/portfolio_core_six_dynamic_equal_weight_kartsell_v12_candidate.csv", + "size": 573093, + "sha256": "3032fb6dd5cd240c7880f251a1edc644a109e5313b75ea6da654e2eb6e34616e" + }, + { + "path": "research/original/results_us/portfolio_core_six_dynamic_equal_weight_kartsell_v12_plus_capital_floor.csv", + "size": 580150, + "sha256": "799c1025a6973c0b16bf64fceab2ec732997e31a63daad0e26bf56f8d83a95fb" + }, + { + "path": "research/original/results_us/portfolio_core_six_dynamic_equal_weight_trailing_12.csv", + "size": 516536, + "sha256": "2777f299358851962916ad8baa4bb5443a538a9d7920178b0506cd5512b82332" + }, + { + "path": "research/original/results_us/portfolio_core_six_dynamic_equal_weight_trend_10m_shifted.csv", + "size": 515448, + "sha256": "380110402f8cacb5d048c71a4d3df0834bf67002cf46c3d6ff0ee71ae7e2f1cd" + }, + { + "path": "research/original/results_us/portfolio_metrics.csv", + "size": 3683, + "sha256": "925c99ef6a0cadfbc82021060b28fdbf279851ce588af3fbe02c9eda194fc09e" + }, + { + "path": "research/original/results_us/portfolio_period_metrics.csv", + "size": 7317, + "sha256": "debae6607ef9e6343171764ff85c00835a566fa2f4ea58ab8c539bdd410b3c44" + }, + { + "path": "research/original/results_us/sell_event_stats.csv", + "size": 1373, + "sha256": "b21801f9679e45b6dd99b48b74b9bd845a86675ff75845603500d34b88bcc8b6" + }, + { + "path": "research/original/results_us/v11_v12_asset_deltas.csv", + "size": 1768, + "sha256": "aee6ce03a10cca43f9193bed49823a8bd66c61f9ed0a703027a53eed143ef3dc" + }, + { + "path": "scripts/__init__.py", + "size": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "scripts/__pycache__/__init__.cpython-313.pyc", + "size": 172, + "sha256": "6504efec76076d3f96752c1a2c478a004e2c6c3e891a470f121c6577156c86e7" + }, + { + "path": "scripts/__pycache__/scaffold_slice.cpython-313.pyc", + "size": 8963, + "sha256": "2559d4b1da7af3ce0c3624e8394e553c67f6572968dd8fc6e3ea05dc757fa43c" + }, + { + "path": "scripts/generate_manifest_v125.py", + "size": 1332, + "sha256": "04780ad286c60287550cf568851fa989853ab938d6676eaba417647052d5cc37" + }, + { + "path": "scripts/scaffold_slice.py", + "size": 5228, + "sha256": "2328008d1d0bf9a76db8f5d59ced408d3ba869564a06aef3d10441d706f97ec5" + }, + { + "path": "scripts/tests/__init__.py", + "size": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "scripts/tests/__pycache__/__init__.cpython-313.pyc", + "size": 178, + "sha256": "928c605d021817ff645f96963bcfe4180de3cf88a17c6d338d6ad46a839bddb4" + }, + { + "path": "scripts/tests/__pycache__/test_scaffold_slice.cpython-313.pyc", + "size": 2825, + "sha256": "34741628c71e3847d3869cf8204c4d6bcb163a925b6687d9e61bef5bcf161b24" + }, + { + "path": "scripts/tests/__pycache__/test_scaffold_ui_screen.cpython-313.pyc", + "size": 1579, + "sha256": "0c735b17646b5149b10bac9c145f91fd706299ffa343bfa551ce924bde687d6f" + }, + { + "path": "scripts/tests/test_scaffold_slice.py", + "size": 1112, + "sha256": "b3d91349003f4019001da5e5ea82c3fba522773a17dce1461a5ea71de23afa54" + }, + { + "path": "scripts/tests/test_scaffold_ui_screen.py", + "size": 666, + "sha256": "7dbc0b033a2dc8445b993fc8ab1fa59bfa177f84ef79aa934d925b1309bae44d" + }, + { + "path": "scripts/validate_static.py", + "size": 6112, + "sha256": "49f9579949239b73987e1c59182f67b38d7c647a7691a67c89e07885a851c438" + }, + { + "path": "scripts/validate_v121.py", + "size": 9084, + "sha256": "f319db3038987ce8fc248efdbb7e8688cdcad6fe48dbdc592da966ba226f9561" + }, + { + "path": "scripts/validate_v122.py", + "size": 10797, + "sha256": "90bef3e5e5f7208e09603e49a4db85eef140880da4440d4a591044a36aeb3673" + }, + { + "path": "scripts/validate_v123.py", + "size": 14023, + "sha256": "a05e82dcbe04cc72c657f76dcd4b671fff7bf1b532046cbca53c8fec725c8338" + }, + { + "path": "scripts/validate_v124.py", + "size": 18134, + "sha256": "6dc078e5fc82a022a3c326ccf1969f1007bf850ffd0a4394afdb1737019aed97" + }, + { + "path": "scripts/validate_v125.py", + "size": 10736, + "sha256": "d1b50c2e9322ceb4a6300f6c65a238800ffdc83f3b36813bf40ccaa3ab483ffb" + }, + { + "path": "scripts/verify-prerequisites.sh", + "size": 500, + "sha256": "420dd56660dffd0beee364f28262c853a78ed85350a16409a9169f4cd0343f69" + }, + { + "path": "src/KArtSell.BuildingBlocks/Auditing/AuditEvent.cs", + "size": 445, + "sha256": "14520aa1e6045a4767aa659dbe4a500594f157d516a29ac074e598841f9777cb" + }, + { + "path": "src/KArtSell.BuildingBlocks/Capabilities/CapabilityOptions.cs", + "size": 336, + "sha256": "560b8f68d1b6156064fdef4c92a5a5fa44f0792a3b2a93ef58d2f0696fb9c72a" + }, + { + "path": "src/KArtSell.BuildingBlocks/Data/IDbConnectionFactory.cs", + "size": 196, + "sha256": "4048b31bac16d5dbebb73fae5cac7896a2e3bd4eab06367cc782b5259bf6cea0" + }, + { + "path": "src/KArtSell.BuildingBlocks/Data/NpgsqlConnectionFactory.cs", + "size": 348, + "sha256": "2e97a6b30a1ed06b862d97fae657f7872b139b94730dde69842c6aa42227ac43" + }, + { + "path": "src/KArtSell.BuildingBlocks/DataIntegrity/PitRecordMetadata.cs", + "size": 1484, + "sha256": "6ab004694a5ff494e889d56c4d2b7a44fdc527fe7e4b551470c3212f25e47549" + }, + { + "path": "src/KArtSell.BuildingBlocks/Execution/ExecutionEnvelope.cs", + "size": 790, + "sha256": "d9e6f204bb5fe76de92126717ae9df76840f8a1cd129e8ef39844042f5a99845" + }, + { + "path": "src/KArtSell.BuildingBlocks/Hashing/ContentHasher.cs", + "size": 283, + "sha256": "79e9fd1f5b76dd4971b7b04aa9914423aba4e87ce68a5b3f91ff2dca99b64cfc" + }, + { + "path": "src/KArtSell.BuildingBlocks/KArtSell.BuildingBlocks.csproj", + "size": 158, + "sha256": "a2f4fe2a1a6c37ab31ff38e2d4838d85ecf1b4b35e85b55d4d14e6ddf75f4f3c" + }, + { + "path": "src/KArtSell.BuildingBlocks/ReadModels/ProjectionCheckpoint.cs", + "size": 568, + "sha256": "671d4761966593b49dfd68f24b553852ba1326149f8afb1f648d178e6efb4347" + }, + { + "path": "src/KArtSell.BuildingBlocks/ReadModels/ProjectionContract.cs", + "size": 690, + "sha256": "e206a95ea78e239a1e969c904504b4a8057aa629374f22baf2b01c35890a1600" + }, + { + "path": "src/KArtSell.BuildingBlocks/Reliability/DapperInboxStore.cs", + "size": 1018, + "sha256": "b1815c8329074471ba5481b00e4ee4c1aa49c8d85869ea9ed451e5e10cdabd73" + }, + { + "path": "src/KArtSell.BuildingBlocks/Reliability/DapperJobRunRepository.cs", + "size": 3608, + "sha256": "4457e830e60b285367b29340be532e4c61ed9fbf8c2ce5e08a6b5e5727916666" + }, + { + "path": "src/KArtSell.BuildingBlocks/Reliability/DapperOutboxWriter.cs", + "size": 788, + "sha256": "159ecd7f618fb56862895b4daca3534b20b6fe1f7c58684729fe8f605453dfc0" + }, + { + "path": "src/KArtSell.BuildingBlocks/Reliability/IInboxStore.cs", + "size": 364, + "sha256": "fcf9b6c0bf67ec5ba502f3a1c725a946933c61bf30187f3f840eb3e434e5654c" + }, + { + "path": "src/KArtSell.BuildingBlocks/Reliability/IJobRunRepository.cs", + "size": 359, + "sha256": "54ed6862813d1a081892570c0f2df31d8de5d18fc7181e3230aef33bd7e17176" + }, + { + "path": "src/KArtSell.BuildingBlocks/Reliability/IOutboxWriter.cs", + "size": 241, + "sha256": "80d5a19b907a56fe281fcf2e212274537259fe3d5fef6fae1c941b32d0262ae0" + }, + { + "path": "src/KArtSell.BuildingBlocks/Reliability/JobRun.cs", + "size": 681, + "sha256": "c56ef1f11d3ed2037cf6ae8470fe2d6537d2c9268f30e1e98adbc0e040453ea0" + }, + { + "path": "src/KArtSell.BuildingBlocks/Reliability/OutboxMessage.cs", + "size": 255, + "sha256": "986920dd9f38d63782e6ca9e6d713274032fbd359c6d5f4a75c741aeebf502c3" + }, + { + "path": "src/KArtSell.BuildingBlocks/Time/IClock.cs", + "size": 209, + "sha256": "f0ceb1632f1eab6cb4b8d9adcb3cc41c9745386f6e7a6fb5fe3d72276e31cc4b" + }, + { + "path": "src/KArtSell.BuildingBlocks/Versioning/VersionSet.cs", + "size": 1079, + "sha256": "342eab88234a45d63e50664fc3a421187a11eb55e0af95508cc26cc11c567ceb" + }, + { + "path": "src/KArtSell.DbMigrator/KArtSell.DbMigrator.csproj", + "size": 248, + "sha256": "972880c73aee1b7b3165117fc54ec1d698422d96bd95e2b496c41f87aa68f74e" + }, + { + "path": "src/KArtSell.DbMigrator/Program.cs", + "size": 820, + "sha256": "c8f954c6f8c91aed4af578d4b8bc171b18b47b13392f70ef0b6d3ca9161490f8" + }, + { + "path": "src/KArtSell.Host/KArtSell.Host.csproj", + "size": 1231, + "sha256": "3646baaba72858ffc674afc1f176fe235033732f8cc029c38cbf46cfd7b14b1a" + }, + { + "path": "src/KArtSell.Host/Program.cs", + "size": 5221, + "sha256": "1af3935e270f41e10b01229e9c118caf9e5244d40313459be5f311f231fc21c7" + }, + { + "path": "src/KArtSell.Host/Security/DevelopmentHeaderAuthenticationHandler.cs", + "size": 1722, + "sha256": "15bbc7992b77f39abc55c8923d8f21e5420ab8636716dd026f7c425e06f4d13b" + }, + { + "path": "src/KArtSell.Host/Security/FailClosedAuthenticationHandler.cs", + "size": 810, + "sha256": "403d488c62627943a576e7f513f9631a459b7b8f8d65bcc5733100228406cbc5" + }, + { + "path": "src/KArtSell.Host/appsettings.Development.json", + "size": 121, + "sha256": "7ee3ae000f3c9ae03e029063a4a28c75b119d988a4c6728f6aa6abda7d7d38af" + }, + { + "path": "src/KArtSell.Host/appsettings.json", + "size": 697, + "sha256": "35371b80b902de59cb629cc83130b6bc98ac57d871dd8dd6bccd7eafb71d1e51" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Application/ModelOperationRequestService.cs", + "size": 1632, + "sha256": "59abe5ed2a6c2ef827d29b5f8d8ac29e0892894ea9ecc9ac62deef4d5c7d45a3" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Application/ModelOperationsContracts.cs", + "size": 2145, + "sha256": "a9b75aeee2b701f083518b18e84b284972bcac1270b3fb7942ac284c31ad658f" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Domain/EvaluationReconciliationPlanner.cs", + "size": 1479, + "sha256": "665296a38ee6e018f58ab9f8e6f074334ddca9461b33ba90edc0e42fe8807e01" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Domain/EvaluationWindowPlanner.cs", + "size": 960, + "sha256": "2f23c04da67d816bb9f193416dd08ab972f93853b49b053c79ff7754dbfa6510" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Domain/MetricDefinitionVersion.cs", + "size": 823, + "sha256": "2f501462a5517311931ebedc2550909ffd082b6d71de423b4fe7c1b72fcf9bc0" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Domain/ModelLifecycle.cs", + "size": 1432, + "sha256": "f22bae39efcea2f1b12378ff73edb29cbce96c6720cea34ea20944ec517a22ae" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Domain/ModelOperationDefinition.cs", + "size": 9531, + "sha256": "1a70b1cf922c1ef090660967cfc89a28e5cc93d8b5db042bae187fa240699c01" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Domain/ModelOperationExecution.cs", + "size": 3471, + "sha256": "ae72c4848949fdb6ebbb441126e697e7f74c74540110faeae59d5b57c31108e9" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Domain/ModelOperationExecutionBoundary.cs", + "size": 1123, + "sha256": "88504bdecbb27bb98ff9eb9c108875369b039150c853190c30a23767587b6cee" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Domain/ModelOperationLease.cs", + "size": 1755, + "sha256": "28016d5c5a888f2b35a87128812ea61306ca76273b9d8c9aa184435a3e191610" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Domain/PromotionGateEvaluator.cs", + "size": 2359, + "sha256": "b626ce2351b72315d30cd7db96d00bb27dcf06b31af7da918d03b5d8d4d1d8b7" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Domain/ScheduleOccurrencePlanner.cs", + "size": 1506, + "sha256": "d6da88d438daaeef82295cb9a5365384ef703c47f93e578732adc6613655cad6" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Features/GetModelFeedbackLoop/Endpoint.cs", + "size": 1052, + "sha256": "9691508d006d130a6b48e8383c8c19682762244b501365ee86e9047f5c49c05b" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Features/GetModelFeedbackLoop/Response.cs", + "size": 416, + "sha256": "e16a17f8a61d704efeaacec0f719c60aac4440da1b6f5f3f031e55bde291e3f7" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Features/GetModelOperationsPlan/Endpoint.cs", + "size": 1116, + "sha256": "2d35d447c8b514fa039764c2a70eab78953f7f726c36fd3b2b492a0556cef57f" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Features/GetModelOperationsPlan/Response.cs", + "size": 507, + "sha256": "8804bbfd9a741b6b5cee1c862997d61cdff655697484f3de9dc485d7e0027369" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/FeedbackLoop/ModelFeedbackCycle.cs", + "size": 4876, + "sha256": "e6cabd4188a8e949ba510ec11b63e36fb891683656e240afc4a990fe29c109cc" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/FeedbackLoop/ModelFeedbackPlan.cs", + "size": 2197, + "sha256": "6f5dd3073af37ffe3964bedf52f3ce15f802a6eec7f6e7efe9f0cfa065b5fa6f" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/FeedbackLoop/ModelImprovementHypothesis.cs", + "size": 1973, + "sha256": "607e356b314d54ed63caa4f4dffd15f9faad8925d352c44bede59553e1f9c1ac" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Infrastructure/DapperApprovedModelContextReader.cs", + "size": 2460, + "sha256": "eb0f9bffbc88d010956992c635830fd500874f7acf79d9b9219ff60319d3c447" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Infrastructure/DapperModelOperationRequestRepository.cs", + "size": 4117, + "sha256": "4870d8b0989b4eb7f169dd75ec7581f85b8c5c079491bc15de99a2264d4934a8" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Infrastructure/DapperModelScheduleRepository.cs", + "size": 4237, + "sha256": "a7b970d60d8b8ab1583c9efd25a08111cfb302b8bcb19f7a478024b5e9c430b3" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/KArtSell.Modules.ModelOperations.csproj", + "size": 307, + "sha256": "2ae3de1298c092062205e7920ca724925c644da092d51d6becae4236f086eb7a" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/ModelOperationsModule.cs", + "size": 976, + "sha256": "53c0fb93670f6b3d9aee8b7df9493fd6f5dff807489446ade1383598dc46b6c1" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Scheduling/ModelOperationsDispatcherJob.cs", + "size": 2317, + "sha256": "80567104f1bdb0962f566f0b1d299276ac75942541ae8c6920fa394ff0cd03c4" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Scheduling/ModelOperationsScheduler.cs", + "size": 913, + "sha256": "3e9e2a6786c80a86a420dc455b0f0ed9730cff856c260b28674a5c9b49f3be6b" + }, + { + "path": "src/KArtSell.Modules.ModelOperations/Scheduling/ScheduledModelOperationJob.cs", + "size": 1604, + "sha256": "7710839fae538111a837ad609dae92e477a38e8b0df2ead60cc25cf81f553e2c" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Application/ISellDecisionService.cs", + "size": 950, + "sha256": "8ee7d75060f5e0aa38f1accb1fd3007c6ae32e6e703a89acbcc0f614fc0e0156" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Application/SellDecisionContext.cs", + "size": 1794, + "sha256": "527707dc415cde676e18af654b3b5259f43d47f28b5a8e35928b2b43d733ab4f" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Application/SellDecisionService.cs", + "size": 9920, + "sha256": "a062d61b5973d8612f71bd97f485d51e4d8694d3c865127e3c217ce85407ed91" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/ISellPolicy.cs", + "size": 193, + "sha256": "d5d14fa872aedf6bfbbcc5452e849557f9e9f67cf38ae63ec125a736072e67c3" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/Policies/ConcentrationLiquidityPolicy.cs", + "size": 1553, + "sha256": "fe0cbce192283c19239667357713ab8a43544406cfe22c3cdc3dfbe0ea0cb01c" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/Policies/GapFloorBreachPolicy.cs", + "size": 1674, + "sha256": "94f409ad020682a44d71bf68c6834a854e7d1a039287491a19fa83ae94982914" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/Policies/HardImpairmentPolicy.cs", + "size": 1314, + "sha256": "92343ac6ff9df82ed0800174298ff9dcd9923f0040b2f61a751554b5adc13a5e" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/Policies/OpportunityCostPolicy.cs", + "size": 1862, + "sha256": "63f45838322dcb10805273166528d8a52ec310e906f0948b6383b901a47171d6" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/Policies/PortfolioSurvivalPolicy.cs", + "size": 1617, + "sha256": "7d3ddd0a4dfa5ea95fc06193c948e38ccb05d35a2a1c219a890c88f6c87e297c" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/Policies/TwoCloseFloorBreachPolicy.cs", + "size": 1594, + "sha256": "834ae308087842b48aa7fbf7df6ef19067f8cfca71c943051c51f14f1fa3c8bf" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/ReentryStateMachine.cs", + "size": 1598, + "sha256": "def0347a1c52c00bbaad7177c72fd84a72496dea0e17e8d4144cb7d65513e98b" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/SellDecision.cs", + "size": 997, + "sha256": "a3453bc9442947cc508405b3b3aec1acc0b8861f9455401d292166f733d9e0f6" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/SellDecisionEvidenceGuard.cs", + "size": 1736, + "sha256": "be23a8ce4b4dec2cc6726904de8c8867e222c2e24b0a45a2a299997b9b2ccbfa" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/SellDecisionInput.cs", + "size": 2509, + "sha256": "83a537ff6c471fc4a0cf82ca1ad85478d5d73ae37e66df8136ce39c482ad69a3" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/SellPolicyChain.cs", + "size": 833, + "sha256": "56237139105c73b48cc292a32c75de7d6b71b471fe681701661392b14bf43fb0" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/SellPolicyContract.cs", + "size": 2378, + "sha256": "ac5f576c7349a75034b341b4ead5fa1c38934488b1aaadeeb06f53f295e561f4" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Domain/SellPolicyResult.cs", + "size": 1550, + "sha256": "2acda27b38206e0750005e90822b0363a176b0021de0f9be4bb18d72296bf0db" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Endpoint.cs", + "size": 1820, + "sha256": "f722562261966c1e62330ebd90e66ec1cb8ab023c95fd1b870a04c554bd005af" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Request.cs", + "size": 867, + "sha256": "abb9f6b78762f631e6134f3ea4c7d20cd45280447819a4ca3a42ae0a84e1bd75" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Response.cs", + "size": 466, + "sha256": "35b5147089eafb935d95715a373a565192c82864fcbac4dcb77b9658a6a10567" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Validator.cs", + "size": 1383, + "sha256": "5b78248c1fea4e2dd665adc375bf3784b7a2fb435d49a99da4c63e444495087e" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Endpoint.cs", + "size": 2369, + "sha256": "b0ee6791bd20a1e5743cb0347358e0570f4b1537d8527cc3f657fe58948ec0c8" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Request.cs", + "size": 260, + "sha256": "d45bfecac3a453729b252dbbcbd7deb57f7e3892012e796a32739af116e43340" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Response.cs", + "size": 619, + "sha256": "9251e36434382582702b8c87a3e080f9c04ea9c8450a362163e39166b3bf1217" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Validator.cs", + "size": 299, + "sha256": "918c403bacac2d9a72425cff5c6a6d23a7193391ec20b139a7f6e564f7140da4" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/Infrastructure/DapperSellDecisionContextReader.cs", + "size": 2471, + "sha256": "1ab0e864711b54bfce48823a6dfd6c3408fcf60af8e7438123778e18e65c8149" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/KArtSell.Modules.SignalEngine.csproj", + "size": 258, + "sha256": "d422b7370a5c318aa716bebd1a4dac01f709a9069912e143f934e158a77c6bbd" + }, + { + "path": "src/KArtSell.Modules.SignalEngine/SignalEngineModule.cs", + "size": 1102, + "sha256": "d2e1beab4e18f7eeb9d06f4f16f8b889f93814fc060ff82843daea269b4b154e" + }, + { + "path": "templates/dotnet/Module/Module.cs.template", + "size": 260, + "sha256": "2047b3ff3a6d4aa43324c6d82e2504363d284a1ad4593fd19b789d3174c12420" + }, + { + "path": "templates/dotnet/VerticalSlice/Endpoint.cs.template", + "size": 528, + "sha256": "6a188d448ac4a39866d2264bd12a30910df6466c2c11325f244d60c2a1ef0374" + }, + { + "path": "templates/dotnet/VerticalSlice/Handler.cs.template", + "size": 416, + "sha256": "3ce5dea3d11ae737c931b8d59c36a1e8492b62eaec12cd030c3c857bb1da64ee" + }, + { + "path": "templates/dotnet/VerticalSlice/Policy.cs.template", + "size": 280, + "sha256": "ceb371f34a25108a826f395b90a4b33868421d33717277961274802a3e7012aa" + }, + { + "path": "templates/dotnet/VerticalSlice/README.md.template", + "size": 205, + "sha256": "fc39255e5515fa28a46e7494075b5da06fa79d81e6354cd59f27b6ccf72c28a0" + }, + { + "path": "templates/dotnet/VerticalSlice/Request.cs.template", + "size": 108, + "sha256": "d0f55d2e3ca509008ae58d8e59f068d9797904a4059850edb5b009070938b90c" + }, + { + "path": "templates/dotnet/VerticalSlice/Response.cs.template", + "size": 110, + "sha256": "8023e305f0535ac9bca4404996f0d3a029909ee7abd7829eaa271115fee3f188" + }, + { + "path": "templates/dotnet/VerticalSlice/Sql.cs.template", + "size": 363, + "sha256": "41c2e58cedbe58e6fd414d1e2bc58b42d7528e3888a5c253bdbf128cc9739456" + }, + { + "path": "templates/dotnet/VerticalSlice/Tests.cs.template", + "size": 255, + "sha256": "613cde71f35234eb7188703c5ec2bac3cc012b014bc506b321d457a6e0cda4c5" + }, + { + "path": "templates/dotnet/VerticalSlice/Validator.cs.template", + "size": 277, + "sha256": "b88b320c6942ae1073e7127f36ecf7f5b18fbfc1363fc4d342a6aa68b155ae1f" + }, + { + "path": "templates/hangfire/ReliableJob.cs.template", + "size": 487, + "sha256": "86b02ba2b05cd4f3e409747a220d31a067801db443ccc1a908af9f55b756cc07" + }, + { + "path": "templates/sql/Migration.sql.template", + "size": 393, + "sha256": "cedd0e8409863880bd3440756b38c5d3e06927efeb291e5150a26588a95dd8d9" + }, + { + "path": "templates/vertical-slice/backend/Endpoint.cs", + "size": 425, + "sha256": "9f107759482b99bdc19d8794ed6a01d0e465acea2a5284cf68497170045f3c83" + }, + { + "path": "templates/vertical-slice/backend/Handler.cs", + "size": 436, + "sha256": "62a86b432d067ec644577a0732a836bf771e1c347c7cb7cdf28a7bc924e45613" + }, + { + "path": "templates/vertical-slice/backend/README.md", + "size": 270, + "sha256": "ef001a207b832694ee77f78f09e63e293988779b9e0fb350a4964a0aa911ccbc" + }, + { + "path": "templates/vertical-slice/backend/Request.cs", + "size": 150, + "sha256": "7aa17ff6e0f20f8f9187d9f499b04111ffa9568fc2c89a3d0867e7510d18bef8" + }, + { + "path": "templates/vertical-slice/backend/Response.cs", + "size": 157, + "sha256": "17470754f87b4ea683a11f937adef284de0d4d19b92a998491193a31048be239" + }, + { + "path": "templates/vertical-slice/backend/Sql.cs", + "size": 193, + "sha256": "ccb6587228fbd688b9e15caff2b52de0d7bd9e962786e4e0b2199c0361bc2ae5" + }, + { + "path": "templates/vertical-slice/backend/Validator.cs", + "size": 305, + "sha256": "05a45fd89381e3d6307fd0d10f16a4ab4c43bad805ad7983bb026b772065ae8c" + }, + { + "path": "templates/vertical-slice/frontend/api.ts", + "size": 378, + "sha256": "995f09dd9e9e17c37db3e242eb29c8773711fb2155bd903ea5c9ef98b978638c" + }, + { + "path": "templates/vertical-slice/frontend/pages/__FEATURE__Page.vue", + "size": 302, + "sha256": "001bad76fe89dac3548bb269e409606e79e204305be859f987ac772698a4c6d1" + }, + { + "path": "templates/vertical-slice/frontend/queries.ts", + "size": 360, + "sha256": "3e36f33f21360131e1bf428faf5b3e11f61261b162f36500fc887de3a6b3e345" + }, + { + "path": "templates/vertical-slice/frontend/schema.ts", + "size": 428, + "sha256": "d44cf205614eb5957f3d2d7f332e5a08eff7dc5e0c7849565c46abffc85e2d2f" + }, + { + "path": "templates/vertical-slice/frontend/tests/schema.spec.ts", + "size": 282, + "sha256": "1868c28f3f45f7b70eb8af1aad996c3f1ebcd9cada89bd285676142dda85708f" + }, + { + "path": "templates/vue/Feature/api.ts.template", + "size": 309, + "sha256": "8b5f20b3b6b3b5d05ace88d569f4c354f4b641168bc9d17bbc930f2b0ed2b050" + }, + { + "path": "templates/vue/Feature/page.vue.template", + "size": 291, + "sha256": "07c89d6f6549586dfac479087b40b9ceb221e31fd7a31b0edacfe574d841fc01" + }, + { + "path": "templates/vue/Feature/queries.ts.template", + "size": 231, + "sha256": "57298077b3c709b4bb598b4d8de5eb0b7656ebac61c306d91bfac1d3bb11e99e" + }, + { + "path": "templates/vue/Feature/schema.spec.ts.template", + "size": 269, + "sha256": "773758f8d9c4a6d8549ae7fe2a6fafd3871afd1e62d03e879cd25c510db32bda" + }, + { + "path": "templates/vue/Feature/schema.ts.template", + "size": 271, + "sha256": "6e13905385e900e3ec944b26ae362ae0645c55be73f065f6e69bb6e3010aa11e" + }, + { + "path": "templates/vue/screens/CrudDetailPage.vue.template", + "size": 611, + "sha256": "dbed09043b62def64d71d85e3bf29fd9c46c37eb600db83385bebe7b0c490661" + }, + { + "path": "templates/vue/screens/CrudFormPage.vue.template", + "size": 437, + "sha256": "d7b9a5942332ab07f84a06d65ac20c7ff66573739f64b41c81a8e0812fe14588" + }, + { + "path": "templates/vue/screens/CrudListPage.vue.template", + "size": 417, + "sha256": "5c154abe3a743eb3d48d34a014f6d3140ff2c36cdd29c0d1bce18856de4450f7" + }, + { + "path": "templates/vue/screens/CrudReviewPage.vue.template", + "size": 411, + "sha256": "6a80a2d0b154bf350590ee86b7d76713e783a8a0563cc4ee0d8a6fda3de636b7" + }, + { + "path": "tests/KArtSell.ArchitectureTests/KArtSell.ArchitectureTests.csproj", + "size": 366, + "sha256": "916706ab4897ac9ac251507455b73b5ad03479cecfdd0c55287a956abf06f9a4" + }, + { + "path": "tests/KArtSell.ArchitectureTests/RepositoryRulesTests.cs", + "size": 6096, + "sha256": "4871eb72b1471b7b263c6fe4ff6cf7b83bc7454722513caa00826a50361530ac" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/EvaluationReconciliationPlannerTests.cs", + "size": 514, + "sha256": "d359b299e7c02763570f00bf7e94d68392b3378808ba5c63c260b4adf0cdb838" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/EvaluationWindowPlannerTests.cs", + "size": 1023, + "sha256": "6b0a5b57eab2fbc14a8e6d3007d762cd1fe3e67a538a802b74b3551b949f28ee" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/KArtSell.ModelOperations.UnitTests.csproj", + "size": 484, + "sha256": "21ed4fe67f70ecd6d34713eea69d3830ce05dd7a5b9997c88b7895a05804b45a" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/ModelFeedbackCycleTests.cs", + "size": 2153, + "sha256": "b22172bdb0432e0e14e7f9aa835ebbea1d5a06b0448d8ef3cb5a3b5d2ef38492" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/ModelImprovementHypothesisTests.cs", + "size": 872, + "sha256": "6535922decae577ca3ccebc4a42b270c3809924f2ed9480ae558d6c254d3d9fa" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/ModelOperationExecutionBoundaryTests.cs", + "size": 859, + "sha256": "1a0dc2dea56d80e1f2e2d4014e93ed8840964497cf191be7b245bd0b29eb6f0d" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/ModelOperationExecutionTests.cs", + "size": 814, + "sha256": "d8074c568316d8fe2d535eee7c714852f639876699ee11cfee94229dbd2af74c" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/ModelOperationLeaseTests.cs", + "size": 765, + "sha256": "38bd8667cc758be3aa30a7b0c8c988484126bcb74c39692f89e2e14b412e31f0" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/ModelOperationRegistryTests.cs", + "size": 1031, + "sha256": "2282f4dca87328eb9602a029329de92abf34e4e5adbe710a86229f4aa45e275e" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/PromotionGateEvaluatorTests.cs", + "size": 1658, + "sha256": "7a7f4f70f88191943fd62ebae62756cfaa71a45d14817a4b07c7abffdb128824" + }, + { + "path": "tests/KArtSell.ModelOperations.UnitTests/ScheduleOccurrencePlannerTests.cs", + "size": 953, + "sha256": "184bac5f0c5c61631eebccd9503a9da12d083115c324edafbd1db9d73057d167" + }, + { + "path": "tests/KArtSell.SignalEngine.UnitTests/BuildingBlocks/PitRecordMetadataTests.cs", + "size": 1045, + "sha256": "a7921afc85ad7100c176023d765f1429415cfbe920fb98f5837b9522c546a95b" + }, + { + "path": "tests/KArtSell.SignalEngine.UnitTests/BuildingBlocks/VersionSetTests.cs", + "size": 370, + "sha256": "7cbfbbec1b99efb5c7be94ae1bad0a63f744f7c77d1cd1ed4d6ce7525189450a" + }, + { + "path": "tests/KArtSell.SignalEngine.UnitTests/KArtSell.SignalEngine.UnitTests.csproj", + "size": 478, + "sha256": "bd809f8e5475fc80712a8e63ef86dde6166afbd1881b18cbc2b35d0d8e4db32d" + }, + { + "path": "tests/KArtSell.SignalEngine.UnitTests/ReentryStateMachineTests.cs", + "size": 1974, + "sha256": "42d5590486fe77a244ded5d486da8e89f5b4127c59e867cfc977e1876df84487" + }, + { + "path": "tests/KArtSell.SignalEngine.UnitTests/SellDecisionEvidenceGuardTests.cs", + "size": 557, + "sha256": "2e2f7ba1b1410dd677686e9266aa8b137b3464b37062871525c9d21025c1898a" + }, + { + "path": "tests/KArtSell.SignalEngine.UnitTests/SellPolicyChainTests.cs", + "size": 5427, + "sha256": "f7abe2df6032b1471b8ddd7996cb55703d7c5a3bd54a6254fbc9e747baa8c8f6" + }, + { + "path": "tests/KArtSell.SignalEngine.UnitTests/SellPolicyContractTests.cs", + "size": 1274, + "sha256": "1b408a0bc1365638322352ef0c4f63309e60550cac6aa71fc0cb970ff0705817" + }, + { + "path": "tools/scaffold_ui_screen.py", + "size": 1654, + "sha256": "97e83fe349784f9b8dcdf4f3fc5c295f8e9a83ce0102350d2a2c946c41a0dd6a" + }, + { + "path": "tools/scaffold_vertical_slice.py", + "size": 2315, + "sha256": "16b95ff1193efdb0317b9131fa445609562e5cd63a9794ecb8ccffa4d522d4b5" + }, + { + "path": "tools/validate_v13.py", + "size": 7153, + "sha256": "b1621784a67d431c59e35373b81551f92226763d542e5e961a7c472dc5790f77" + }, + { + "path": "tools/validate_v14.py", + "size": 7987, + "sha256": "f03de53f504588c0fbec751a5ba96d32ecdd3c1761dc8438a975e2b6067ac2ec" + }, + { + "path": "tools/validate_v15.py", + "size": 6391, + "sha256": "35518d58f3c4cfc793ad3b510258a2a99cbfcacbec56f9df988a7d924f14de5a" + }, + { + "path": "tools/validate_v16.py", + "size": 5474, + "sha256": "e34777367e8e43520ab42bbd4b63b3f0f0150ff0980bda5cd74199603061a4d2" + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..f55264d1 --- /dev/null +++ b/README.md @@ -0,0 +1,77 @@ +# K-ArtSell Aegis v16.0 + +Reference implementation closure for governed advisory research. `RESEARCH_CANDIDATE_NOT_PRODUCTION`; automatic order/KIS/model activation OFF. + + +**상태:** `IMPLEMENTATION_TEMPLATE / STATIC_VALIDATED / BUILD_DB_E2E_SHADOW_REHEARSAL_REQUIRED` +**운영 경계:** `RESEARCH_CANDIDATE_NOT_PRODUCTION · 투자자문형 우선 · 자동주문/KIS 제출 OFF · 자동 모델승격 OFF` + +v16.0은 v10.0의 Baseline Preservation + Delta + Supersession + Traceability, RG-01~08, PIT·불변 Evidence·26 Vertical Slice 기준과 v12.1~v14.0 실행 패키지를 삭제하지 않고 보존한 누적 Delta다. 화면 수나 코드량을 생산준비도로 간주하지 않으며, `Source/License → PIT/Revision/DQ → Evidence/Version Set → Sell/Reentry → Recommendation → Maker-Checker → Publish → Outcome → Reconciliation/DR`의 완결성으로 판단한다. + +## v16.0 핵심 Delta + +### FE 표준화·교체 가능성 +- UI Adapter Contract v3.0과 14개 Capability를 제공한다. +- 업무 Feature에서 PrimeVue/AG Grid 직접 import를 금지하고 `shared/ui/adapter` 경계 안에서만 허용한다. +- `Ks*` Wrapper, `CrudWorkspaceLayout`, `OperationsConsoleLayout`, 표준 CRUD List/Form Page, URL Query Codec, 공통 13상태 Matrix를 제공한다. +- Adapter 교체는 contract conformance, keyboard/focus/a11y, T01~T10 회귀, visual regression, bundle·license 검사와 release approval을 통과해야 한다. + +### BE·데이터·스케줄러 실행완결성 +- Endpoint → Application → Domain Policy → Dapper/Npgsql → Outbox/Inbox를 한 Vertical Slice로 완결한다. +- 스케줄 실행은 `scheduledFor` anchor, catch-up 정책, BusinessHold, dispatch revision, correlation, version set을 보존한다. +- 평가창은 달력 일이 아니라 MarketCalendar의 1/5/20/63/126/252 거래세션으로 성숙도를 판정한다. +- `prediction_evaluation_window`, `metric_cohort_definition`, `ui_contract_release`와 append-only 보호를 Migration 0020에 추가했다. +- J39 FeedbackCycleIntegrityAudit와 J40 EvaluationWindowIntegrityAudit는 기본 `disabled`다. + +### 알고리즘·지속 모델운영 +- 매도 우선순위는 `HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION/LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION`으로 고정한다. +- 비가치훼손 매도는 ReentryWatch, 새 CycleId/Lot, 단계간격·만료·중복방지를 동반한다. +- 모델 루프는 Freeze → Mature → Score → Diagnose → Hypothesis → Challenger → Validate → Review → Manual Activation으로 제한한다. +- 자동 재학습·자동 승격·자동 주문을 하지 않으며 모든 활성화는 ModelCard, OOS/PBO/DSR, maker-checker, effective_at, rollback evidence를 요구한다. + +## 실행 자료 규모 + +- 상세 WBS: 576건(기존 480 + v15 Delta 96) +- 기술부채: 124건 +- Decision Log: 80건 +- Traceability Matrix: 101건 +- FE Component Catalogue: 43건 +- Job Catalogue: 26건 + +## 먼저 읽을 문서 + +1. `docs/v15_0/K-ArtSell_Aegis_v15_0_실행완결성_표준UI_지속모델운영_통합고도화_제안서.docx` +2. `docs/v15_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md` +3. `docs/v15_0/01_ROLE_BASED_BRUTAL_AUDIT.md` +4. `docs/v15_0/02_FRONTEND_STANDARD_AND_ADAPTER_V3.md` +5. `docs/v15_0/03_SCHEDULER_AND_CONTINUOUS_FEEDBACK.md` +6. `docs/v15_0/08_DETAILED_WBS_MASTER.csv` +7. `docs/v15_0/TECH_DEBT_REGISTER.csv` + +## 주요 구현 경로 + +- FE Adapter/Wrapper: `frontend/src/shared/ui/adapter/`, `frontend/src/shared/ui/components/` +- 표준 CRUD/Layout: `frontend/src/shared/crud/`, `frontend/src/shared/ui/layouts/` +- UI 계약: `contracts/ui/ui-adapter.v3.json`, `crud-page.v1.json`, `layout-regions.v1.json` +- 스케줄 계약: `contracts/schedules/model-operations.v3.json` +- 모델운영 도메인: `src/KArtSell.Modules.ModelOperations/Domain/` +- DB Delta: `db/migrations/0020_v15_execution_and_ui_contract_hardening.sql` +- 화면/Slice 생성기: `tools/scaffold_ui_screen.py`, `tools/scaffold_vertical_slice.py` +- 원본 첨부: `attachments/current_session/`, `attachments/source_archives/` + +## 현재 검증 진실성 + +확인 완료: +- v15 정적 패키지 검증: `PASS=1 / WARN=2 / FAIL=0` +- Python 정책 Golden: 4 tests PASS +- Scaffold 검증: 3 tests PASS +- DOCX: 18페이지 전부 렌더·육안 확인, 접근성 감사 `high=0 / medium=0 / low=0` + +아직 통과로 주장하지 않는 Gate: +- `.NET 10 restore/build/test` +- `pnpm frozen install/typecheck/Vitest/build/Playwright` +- PostgreSQL DbUp fresh/upgrade/re-run/failure-recovery +- Outbox/Inbox crash/replay, DR·대사 리허설 +- 최소 252거래일 Shadow, 복수 국면 OOS, PBO/DSR + +위 Gate가 충족되기 전에는 생산 배포, 투자일임형, 자동주문 또는 자동 모델승격으로 해석하지 않는다. diff --git a/attachments/current_session/K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx b/attachments/current_session/K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx new file mode 100644 index 00000000..cba99fa5 Binary files /dev/null and b/attachments/current_session/K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx differ diff --git a/attachments/current_session/K-ArtSell_Aegis_v15_0_통합고도화_제안서.docx b/attachments/current_session/K-ArtSell_Aegis_v15_0_통합고도화_제안서.docx new file mode 100644 index 00000000..efa767f8 Binary files /dev/null and b/attachments/current_session/K-ArtSell_Aegis_v15_0_통합고도화_제안서.docx differ diff --git a/attachments/current_session/K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx b/attachments/current_session/K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx new file mode 100644 index 00000000..07fdf1da Binary files /dev/null and b/attachments/current_session/K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx differ diff --git a/attachments/current_session/SOURCE_INDEX_V16_0.json b/attachments/current_session/SOURCE_INDEX_V16_0.json new file mode 100644 index 00000000..8e450cc3 --- /dev/null +++ b/attachments/current_session/SOURCE_INDEX_V16_0.json @@ -0,0 +1,43 @@ +{ + "version": "v16.0", + "files": [ + { + "File": "K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx", + "Relative_Path": "attachments/current_session/K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx", + "Size": 402134, + "SHA256": "d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6", + "Role": "최상위 누적 실행기준서", + "Package": "CORE_AND_FULL", + "Treatment": "RETAINED_UNMODIFIED" + }, + { + "File": "K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx", + "Relative_Path": "attachments/current_session/K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx", + "Size": 64063, + "SHA256": "eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3", + "Role": "실행준비 통합 제안서", + "Package": "CORE_AND_FULL", + "Treatment": "RETAINED_UNMODIFIED" + }, + { + "File": "K-ArtSell_Aegis_v15_0_통합고도화_제안서.docx", + "Relative_Path": "attachments/current_session/K-ArtSell_Aegis_v15_0_통합고도화_제안서.docx", + "Size": 52933, + "SHA256": "ef7e5746f129ecf14d1bc7d7bd5705fe44ca72251b050769506beb343e28c0a0", + "Role": "직전 통합 고도화 제안서", + "Package": "CORE_AND_FULL", + "Treatment": "RETAINED_UNMODIFIED" + }, + { + "File": "KArtSell_Aegis_v15_0_Core_NoLegacy(1).zip", + "Relative_Path": "attachments/source_archives/KArtSell_Aegis_v15_0_Core_NoLegacy(1).zip", + "Size": 4390109, + "SHA256": "6c88d2442c831fa11d42726951592929caf2b5bd5847e6b42f9ad9ef28ee1b95", + "Role": "직전 Core 구현 기준선", + "Package": "FULL_ONLY", + "Treatment": "RETAINED_UNMODIFIED" + } + ], + "all_match": true, + "nested_zip_policy": "CORE excludes ZIP; FULL contains one v15 Core archive" +} \ No newline at end of file diff --git a/contracts/README.md b/contracts/README.md new file mode 100644 index 00000000..24e50cf0 --- /dev/null +++ b/contracts/README.md @@ -0,0 +1,9 @@ +# Versioned contracts + +This directory is the machine-readable contract surface for policy, event and outcome-metric definitions. + +- `policies/sell-policy-contract.v1.json`: approved research-candidate implementation values; SHA-256 `a269a0331b83c0f6ec108e7587de1d20c798036ff8d0c03d726cd854e73d8480`. +- `events/signal-decision-created.v2.schema.json`: immutable outbox payload contract. +- `metrics/outcome-metrics.v1.json`: proposed metric definitions; Quant/Risk approval is still required. + +The C# constants are intentionally checked against the policy JSON by `scripts/validate_v123.py`. A changed value without a Model Change record, Golden vectors and OOS impact evidence blocks G2. diff --git a/contracts/data/pit-envelope.v1.json b/contracts/data/pit-envelope.v1.json new file mode 100644 index 00000000..508f87ac --- /dev/null +++ b/contracts/data/pit-envelope.v1.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "PIT Execution Envelope", + "contractVersion": "1.0", + "required": [ + "asOf", + "publishedAtCutoff", + "datasetId", + "modelVersion", + "configVersion", + "codeSha", + "contractVersion", + "contentHash", + "correlationId" + ], + "rules": [ + "server-resolved-context", + "no-client-evidence-trust", + "append-only-evidence", + "tradable-session-cutoff" + ] +} \ No newline at end of file diff --git a/contracts/data/projection-contract.v1.json b/contracts/data/projection-contract.v1.json new file mode 100644 index 00000000..9b993e61 --- /dev/null +++ b/contracts/data/projection-contract.v1.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Projection Contract", + "contractVersion": "1.0", + "required": [ + "projectionName", + "projectionVersion", + "sourceWatermark", + "builtAt", + "staleAfter", + "rebuildPolicy", + "owner" + ], + "states": [ + "CURRENT", + "STALE", + "REBUILDING", + "FAILED", + "QUARANTINED" + ] +} \ No newline at end of file diff --git a/contracts/events/signal-decision-created.v2.schema.json b/contracts/events/signal-decision-created.v2.schema.json new file mode 100644 index 00000000..ab542d45 --- /dev/null +++ b/contracts/events/signal-decision-created.v2.schema.json @@ -0,0 +1,69 @@ +{ + "$id": "https://kartsell.local/contracts/events/signal-decision-created.v2.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "action": { + "enum": [ + "Hold", + "PartialSell", + "FullSell" + ] + }, + "createdAt": { + "format": "date-time", + "type": "string" + }, + "datasetId": { + "minLength": 1, + "type": "string" + }, + "decisionContractVersion": { + "const": "sell-decision.v2" + }, + "decisionId": { + "format": "uuid", + "type": "string" + }, + "evidenceId": { + "minLength": 1, + "type": "string" + }, + "policyId": { + "minLength": 1, + "type": "string" + }, + "policyTraceSchemaVersion": { + "const": 2 + }, + "positionLotId": { + "format": "uuid", + "type": "string" + }, + "sellRatioOfLot": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "targetSecurityPortfolioWeightAfter": { + "maximum": 1, + "minimum": 0, + "type": "number" + } + }, + "required": [ + "decisionId", + "positionLotId", + "policyId", + "action", + "sellRatioOfLot", + "targetSecurityPortfolioWeightAfter", + "evidenceId", + "datasetId", + "decisionContractVersion", + "policyTraceSchemaVersion", + "createdAt" + ], + "title": "SignalDecisionCreated v2", + "type": "object" +} diff --git a/contracts/metrics/outcome-metrics.v1.json b/contracts/metrics/outcome-metrics.v1.json new file mode 100644 index 00000000..8ac27fb2 --- /dev/null +++ b/contracts/metrics/outcome-metrics.v1.json @@ -0,0 +1,35 @@ +{ + "metrics": [ + { + "aggregation": "quantity weighted", + "definitionVersion": "1.0.0", + "denominator": "eligible sold quantity with complete PIT total-return outcome", + "metricId": "FALSE_EXIT_63D", + "notes": "Not directly comparable to annual 2% target until annualization and cohort rules are approved", + "numerator": "sold quantity whose benchmark-adjusted total return from decision price to window end is positive beyond approved materiality threshold", + "population": "non-hard sell decisions", + "windowTradingSessions": 63 + }, + { + "aggregation": "watch count", + "definitionVersion": "1.0.0", + "denominator": "eligible watches with complete observations", + "metricId": "REENTRY_CAPTURE_126D", + "minimumTarget": 0.65, + "numerator": "eligible watches that create an approved stage before expiry", + "population": "reentry-eligible sell decisions", + "windowTradingSessions": 126 + }, + { + "aggregation": "count", + "definitionVersion": "1.0.0", + "denominator": "not applicable", + "maximumTarget": 0, + "metricId": "DUPLICATE_STAGE_COUNT", + "numerator": "duplicate execution attempts accepted", + "population": "all reentry stages" + } + ], + "registryVersion": "outcome-metrics.v1", + "status": "PROPOSED_REQUIRES_QUANT_RISK_APPROVAL" +} diff --git a/contracts/metrics/outcome-metrics.v2.json b/contracts/metrics/outcome-metrics.v2.json new file mode 100644 index 00000000..65f16286 --- /dev/null +++ b/contracts/metrics/outcome-metrics.v2.json @@ -0,0 +1,56 @@ +{ + "contractVersion": "outcome-metrics.v2", + "status": "PROPOSED", + "commonRules": { + "pointInTime": true, + "revisionAware": true, + "costs": ["fee", "tax", "fx", "slippage"], + "windowsTradingDays": [1, 5, 20, 63, 126, 252], + "attribution": ["recommendation", "publication", "clientDecision", "execution"] + }, + "metrics": [ + { + "metricCode": "OPERATIONAL_INTEGRITY_ERRORS", + "numerator": "count of duplicate, lookahead, unauthorized publication, unreconciled critical breaks and immutable-evidence violations", + "denominator": "one evaluation run", + "aggregation": "sum", + "threshold": "0" + }, + { + "metricCode": "FALSE_EXIT_ANNUAL_RATE", + "numerator": "eligible non-impairment exits followed by approved adverse-regret condition within the versioned evaluation window", + "denominator": "all eligible non-impairment exits in the same cohort", + "aggregation": "annualized cohort ratio", + "threshold": "<=0.02", + "decisionRequired": "The exact adverse-regret price and benchmark definition must be approved before production use." + }, + { + "metricCode": "REENTRY_CAPTURE_RATE", + "numerator": "eligible exits whose versioned reentry contract produced a valid stage-ready observation within 126 trading days", + "denominator": "all eligible non-impairment exits with complete data", + "aggregation": "cohort ratio", + "threshold": ">=0.65" + }, + { + "metricCode": "NET_EXPECTED_UTILITY", + "numerator": "realized or calibrated expected benefit after risk, fee, tax, FX, slippage and reentry option loss", + "denominator": "one evaluated decision or cohort", + "aggregation": "mean with confidence interval", + "threshold": ">0 and lower confidence bound >0 for opportunity replacement" + }, + { + "metricCode": "PBO", + "numerator": "CSCV combinations where in-sample winner underperforms out of sample", + "denominator": "all approved CSCV combinations", + "aggregation": "probability", + "threshold": "<=0.20" + }, + { + "metricCode": "DSR", + "numerator": "deflated performance statistic adjusted for multiple testing and non-normality", + "denominator": "approved experiment registry", + "aggregation": "probability/confidence", + "threshold": ">=0.95" + } + ] +} diff --git a/contracts/model-governance/evaluation-promotion.v2.json b/contracts/model-governance/evaluation-promotion.v2.json new file mode 100644 index 00000000..fd9d94db --- /dev/null +++ b/contracts/model-governance/evaluation-promotion.v2.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Model Evaluation and Promotion Contract v2", + "contractVersion": "2.0", + "promotionMode": "HUMAN_CHANGE_APPROVAL_ONLY", + "automaticActivation": false, + "automaticOrder": false, + "requiredEvidence": [ + "252-trading-session-shadow", + "multiple-regimes", + "calibration", + "sell-reentry-attribution", + "PBO", + "DSR", + "double-cost-positive", + "independent-validation", + "rollback-evidence", + "operations-integrity" + ] +} \ No newline at end of file diff --git a/contracts/model-governance/evidence-classification.v1.json b/contracts/model-governance/evidence-classification.v1.json new file mode 100644 index 00000000..7e9f666c --- /dev/null +++ b/contracts/model-governance/evidence-classification.v1.json @@ -0,0 +1,18 @@ +{ + "contractVersion": "1.0.0", + "classes": [ + {"code":"SOURCE","description":"Original source, license, schema or policy evidence"}, + {"code":"RUNTIME","description":"Build, test, migration, performance or operational evidence"}, + {"code":"RESEARCH","description":"Frozen backtest, OOS, calibration, PBO/DSR or model-comparison evidence"}, + {"code":"RELEASE","description":"Approved release bundle with required runtime and governance artifacts"}, + {"code":"AUDIT","description":"Immutable decision, review, correction and chain-of-custody evidence"} + ], + "statusTransitions": { + "IMPLEMENTATION_TEMPLATE": ["STATIC_VALIDATED"], + "STATIC_VALIDATED": ["BUILD_VALIDATED"], + "BUILD_VALIDATED": ["DB_REHEARSED"], + "DB_REHEARSED": ["SHADOW_READY"], + "SHADOW_READY": ["PILOT_REVIEW_REQUIRED"] + }, + "forbiddenShortcut": "No state may be inferred from file presence or document version number." +} diff --git a/contracts/model-governance/promotion-gate.v1.json b/contracts/model-governance/promotion-gate.v1.json new file mode 100644 index 00000000..29ec1ae4 --- /dev/null +++ b/contracts/model-governance/promotion-gate.v1.json @@ -0,0 +1,32 @@ +{ + "contractVersion": "promotion-gate.v1", + "status": "PROPOSED", + "boundary": "EVIDENCE_ONLY_NO_AUTO_PROMOTION", + "thresholds": { + "minimumShadowTradingDays": 252, + "preferredShadowTradingDays": 504, + "minimumDistinctRegimes": 2, + "maximumFalseExitAnnualRate": 0.02, + "minimumReentryCaptureRate": 0.65, + "maximumPbo": 0.20, + "minimumDsr": 0.95, + "positiveNetExpectedUtility": true, + "positiveUnderDoubleCost": true, + "operationalIntegrityErrors": 0, + "calibrationStable": true + }, + "mandatoryApprovals": [ + "IndependentValidation", + "Risk", + "InvestmentCommittee", + "Compliance", + "Security", + "Operations" + ], + "forbiddenActions": [ + "automatic model activation", + "automatic threshold change", + "automatic order submission", + "KIS submission" + ] +} diff --git a/contracts/policies/sell-policy-contract.v1.json b/contracts/policies/sell-policy-contract.v1.json new file mode 100644 index 00000000..dd5f213b --- /dev/null +++ b/contracts/policies/sell-policy-contract.v1.json @@ -0,0 +1,83 @@ +{ + "changeControl": "MODEL_CHANGE_AND_GOLDEN_OOS_REQUIRED", + "contractVersion": "sell-policy.v1", + "decisionContractVersion": "sell-decision.v2", + "policies": [ + { + "condition": "approved hard impairment", + "documentedRange": [ + 0.8, + 1.0 + ], + "mayCrossStrategicCore": true, + "policyId": "ALG-SELL-001", + "priority": 1000, + "reentryEligible": false, + "requestedSellRatioOfLot": 1.0, + "terminal": true + }, + { + "condition": "capital floor breached", + "decisionRequired": "Whether portfolio survival bypasses same-direction cooldown", + "mayCrossStrategicCore": true, + "policyId": "ALG-SELL-PORT-001", + "priority": 900, + "ratioSource": "server PIT risk context", + "reentryEligible": true, + "terminal": true + }, + { + "condition": { + "gapBelowFloorAtrGte": 1.5 + }, + "documentedRange": [ + 0.3, + 0.5 + ], + "mayCrossStrategicCore": false, + "policyId": "ALG-SELL-002", + "priority": 800, + "reentryEligible": true, + "requestedSellRatioOfLot": 0.4, + "terminal": false + }, + { + "condition": { + "consecutiveCloseBreachesGte": 2 + }, + "documentedRange": [ + 0.15, + 0.25 + ], + "mayCrossStrategicCore": false, + "policyId": "ALG-SELL-003", + "priority": 700, + "reentryEligible": true, + "requestedSellRatioOfLot": 0.2, + "terminal": false + }, + { + "condition": "approved concentration/liquidity excess ratio > 0", + "mayCrossStrategicCore": false, + "policyId": "ALG-SELL-004", + "priority": 600, + "ratioSource": "server PIT portfolio risk context", + "reentryEligible": true, + "terminal": false + }, + { + "condition": "opportunity edge lower bound > 0 and requested ratio > 0", + "mayCrossStrategicCore": false, + "policyId": "ALG-SELL-005", + "priority": 500, + "reentryEligible": true, + "requestedRange": [ + 0.1, + 0.25 + ], + "terminal": false + } + ], + "policyTraceSchemaVersion": 2, + "status": "RESEARCH_CANDIDATE_NOT_PRODUCTION" +} diff --git a/contracts/schedules/execution-assurance.v1.json b/contracts/schedules/execution-assurance.v1.json new file mode 100644 index 00000000..d06c4480 --- /dev/null +++ b/contracts/schedules/execution-assurance.v1.json @@ -0,0 +1,27 @@ +{ + "contractVersion": "1.0.0", + "boundary": "EVIDENCE_ONLY_NO_AUTO_MODEL_OR_ORDER_MUTATION", + "dispatcher": { + "enabledByDefault": false, + "defaultCronUtc": "*/15 * * * *", + "leaseMinutes": 14, + "batchLimit": 50, + "requiresCapability": "ShadowEvaluation" + }, + "operations": [ + {"code":"J25","name":"SourceContractDriftCheck","cadence":"DAILY","mode":"EVALUATION_ONLY","queue":"q-evaluation","enabledByDefault":false}, + {"code":"J26","name":"MarketCalendarCompletenessCheck","cadence":"DAILY","mode":"EVALUATION_ONLY","queue":"q-market-data","enabledByDefault":false}, + {"code":"J27","name":"EvidenceChainAudit","cadence":"DAILY","mode":"EVALUATION_ONLY","queue":"q-control","enabledByDefault":false}, + {"code":"J28","name":"ProjectionFreshnessCheck","cadence":"DAILY","mode":"EVALUATION_ONLY","queue":"q-evaluation","enabledByDefault":false}, + {"code":"J29","name":"CapacitySlaTrend","cadence":"WEEKLY","mode":"EVALUATION_ONLY","queue":"q-control","enabledByDefault":false}, + {"code":"J30","name":"ReleaseEvidenceAssemble","cadence":"EVENT_DRIVEN","mode":"PROPOSAL_ONLY","queue":"q-control","enabledByDefault":false} + ], + "forbiddenEffects": [ + "MODEL_VERSION_ACTIVATION", + "MODEL_CONFIGURATION_MUTATION", + "CODE_MERGE", + "CLIENT_PUBLICATION", + "BROKER_ORDER_SUBMISSION", + "KIS_SUBMISSION" + ] +} diff --git a/contracts/schedules/execution-ledger.v1.json b/contracts/schedules/execution-ledger.v1.json new file mode 100644 index 00000000..09428fbe --- /dev/null +++ b/contracts/schedules/execution-ledger.v1.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "Scheduled Execution Ledger", + "contractVersion": "1.0", + "required": [ + "operationCode", + "scopeKey", + "scheduledFor", + "dispatchRevision", + "leaseToken", + "idempotencyKey", + "versionSet", + "state", + "reasonCode", + "heartbeatAt" + ], + "states": [ + "REQUESTED", + "LEASED", + "RUNNING", + "SUCCEEDED", + "BUSINESS_HOLD", + "FAILED", + "QUARANTINED", + "ABANDONED" + ], + "rules": [ + "fencing-token-required", + "scheduled-for-anchor", + "no-blind-retry", + "terminal-state-immutable", + "manual-model-activation-only" + ] +} \ No newline at end of file diff --git a/contracts/schedules/model-operations.v1.json b/contracts/schedules/model-operations.v1.json new file mode 100644 index 00000000..b9d49208 --- /dev/null +++ b/contracts/schedules/model-operations.v1.json @@ -0,0 +1,28 @@ +{ + "contractVersion": "model-operations.v1", + "status": "IMPLEMENTATION_TEMPLATE", + "algorithmStatus": "RESEARCH_CANDIDATE_NOT_PRODUCTION", + "dispatcher": { + "jobId": "model-operations-dispatcher-v1", + "cadence": "EVERY_15_MINUTES", + "queue": "q-control", + "leaseMinutes": 14, + "batchLimit": 50 + }, + "automationBoundary": { + "allowed": ["EVALUATION_ONLY", "PROPOSAL_ONLY", "DRILL_ONLY"], + "forbidden": ["AUTO_PROMOTE", "AUTO_ROLLBACK", "AUTO_PARAMETER_CHANGE", "AUTO_ORDER", "KIS_SUBMISSION"] + }, + "operations": [ + {"operationCode":"J10","name":"OutcomeEvaluationRun","cadence":"DAILY","queue":"q-evaluation","mode":"EVALUATION_ONLY","gate":"G3"}, + {"operationCode":"J11","name":"DailyScorecardBuild","cadence":"DAILY","queue":"q-evaluation","mode":"EVALUATION_ONLY","gate":"G3"}, + {"operationCode":"J17","name":"DriftDetectionRun","cadence":"DAILY","queue":"q-evaluation","mode":"EVALUATION_ONLY","gate":"G4"}, + {"operationCode":"J18","name":"ChampionChallengerEvaluation","cadence":"WEEKLY","queue":"q-evaluation","mode":"EVALUATION_ONLY","gate":"G4"}, + {"operationCode":"J19","name":"FrozenOosBacktest","cadence":"MONTHLY","queue":"q-research","mode":"EVALUATION_ONLY","gate":"G4"}, + {"operationCode":"J20","name":"RobustnessPboDsrRun","cadence":"QUARTERLY","queue":"q-research","mode":"EVALUATION_ONLY","gate":"G4"}, + {"operationCode":"J21","name":"ModelImprovementProposalBuild","cadence":"MONTHLY","queue":"q-research","mode":"PROPOSAL_ONLY","gate":"G4"}, + {"operationCode":"J22","name":"PromotionEvidenceReviewBuild","cadence":"MONTHLY","queue":"q-control","mode":"PROPOSAL_ONLY","gate":"G4"}, + {"operationCode":"J23","name":"ModelRollbackDrill","cadence":"QUARTERLY","queue":"q-control","mode":"DRILL_ONLY","gate":"G5"}, + {"operationCode":"J24","name":"DataRevisionRevalidation","cadence":"WEEKLY","queue":"q-backfill","mode":"EVALUATION_ONLY","gate":"G3"} + ] +} diff --git a/contracts/schedules/model-operations.v2.json b/contracts/schedules/model-operations.v2.json new file mode 100644 index 00000000..4b381fea --- /dev/null +++ b/contracts/schedules/model-operations.v2.json @@ -0,0 +1,116 @@ +{ + "contractVersion": "model-operations.v2", + "status": "IMPLEMENTATION_TEMPLATE", + "algorithmStatus": "RESEARCH_CANDIDATE_NOT_PRODUCTION", + "dispatcher": { + "jobId": "model-operations-dispatcher-v1", + "cadence": "EVERY_15_MINUTES", + "queue": "q-control", + "leaseMinutes": 14, + "batchLimit": 50, + "enabledByDefault": false + }, + "automationBoundary": { + "allowed": [ + "EVALUATION_ONLY", + "PROPOSAL_ONLY", + "DRILL_ONLY" + ], + "forbidden": [ + "AUTO_PROMOTE", + "AUTO_ROLLBACK", + "AUTO_PARAMETER_CHANGE", + "AUTO_ORDER", + "KIS_SUBMISSION", + "CLIENT_PUBLICATION" + ] + }, + "evaluationClock": { + "predictionFreeze": "before approved market cutoff", + "labelMaturity": "trading-session windows 1/5/20/63/126/252", + "revisionPolicy": "new revision; never overwrite prior evidence" + }, + "operations": [ + { + "operationCode": "J31", + "name": "PredictionFreezeRun", + "cadence": "DAILY", + "queue": "q-evaluation", + "mode": "EVALUATION_ONLY", + "gate": "G3", + "enabledByDefault": false + }, + { + "operationCode": "J32", + "name": "OutcomeMaturitySweep", + "cadence": "DAILY", + "queue": "q-evaluation", + "mode": "EVALUATION_ONLY", + "gate": "G3", + "enabledByDefault": false + }, + { + "operationCode": "J33", + "name": "SellReentryAttributionReview", + "cadence": "WEEKLY", + "queue": "q-evaluation", + "mode": "EVALUATION_ONLY", + "gate": "G4", + "enabledByDefault": false + }, + { + "operationCode": "J34", + "name": "CalibrationRegimeReview", + "cadence": "WEEKLY", + "queue": "q-evaluation", + "mode": "EVALUATION_ONLY", + "gate": "G4", + "enabledByDefault": false + }, + { + "operationCode": "J35", + "name": "ImprovementHypothesisBuild", + "cadence": "MONTHLY", + "queue": "q-research", + "mode": "PROPOSAL_ONLY", + "gate": "G4", + "enabledByDefault": false + }, + { + "operationCode": "J36", + "name": "ChallengerExperimentPlan", + "cadence": "MONTHLY", + "queue": "q-research", + "mode": "PROPOSAL_ONLY", + "gate": "G4", + "enabledByDefault": false + }, + { + "operationCode": "J37", + "name": "IndependentValidationPack", + "cadence": "QUARTERLY", + "queue": "q-control", + "mode": "PROPOSAL_ONLY", + "gate": "G4", + "enabledByDefault": false + }, + { + "operationCode": "J38", + "name": "ModelPolicyDebtReview", + "cadence": "MONTHLY", + "queue": "q-control", + "mode": "PROPOSAL_ONLY", + "gate": "G5", + "enabledByDefault": false + }, + { + "operationCode": "J39", + "name": "FeedbackCycleIntegrityAudit", + "cadence": "DAILY", + "queue": "q-control", + "mode": "EVALUATION_ONLY", + "gate": "G4", + "enabledByDefault": false + } + ] +} diff --git a/contracts/schedules/model-operations.v3.json b/contracts/schedules/model-operations.v3.json new file mode 100644 index 00000000..d66989b3 --- /dev/null +++ b/contracts/schedules/model-operations.v3.json @@ -0,0 +1,20 @@ +{ + "contractVersion": "model-operations.v3", + "status": "IMPLEMENTATION_TEMPLATE", + "algorithmStatus": "RESEARCH_CANDIDATE_NOT_PRODUCTION", + "dispatcher": {"jobId":"model-operations-dispatcher-v1","cadence":"EVERY_15_MINUTES","queue":"q-control","leaseMinutes":14,"batchLimit":50,"enabledByDefault":false}, + "scheduleSemantics": { + "anchor":"next due time advances from scheduledFor, not worker dispatch time", + "timezone":"IANA/approved calendar mapping; UTC storage", + "catchUpPolicies":["LATEST_ONLY","SKIP_MISSED","ALL_WITH_LIMIT"], + "businessHold":"no blind retry; reason, owner, holdUntil and evidence required", + "idempotency":"operation:scope:scheduleVersion:scheduledForUtc" + }, + "executionStates":["REQUESTED","RUNNING","SUCCEEDED","BUSINESS_HOLD","FAILED","QUARANTINED"], + "evaluationWindows":[1,5,20,63,126,252], + "automationBoundary": { + "allowed":["EVALUATION_ONLY","PROPOSAL_ONLY","DRILL_ONLY"], + "forbidden":["AUTO_PROMOTE","AUTO_ROLLBACK","AUTO_PARAMETER_CHANGE","AUTO_ORDER","KIS_SUBMISSION","CLIENT_PUBLICATION"] + }, + "newOperation": {"operationCode":"J40","name":"EvaluationWindowIntegrityAudit","enabledByDefault":false,"mode":"EVALUATION_ONLY","gate":"G4"} +} diff --git a/contracts/ui/crud-page.v1.json b/contracts/ui/crud-page.v1.json new file mode 100644 index 00000000..fdc7d287 --- /dev/null +++ b/contracts/ui/crud-page.v1.json @@ -0,0 +1,9 @@ +{ + "contractVersion": "crud-page.v1", + "stateOwners": {"server":"TanStack Query","form":"vee-validate + Zod","url":"vue-router","sessionAndUiPreference":"Pinia"}, + "requiredRequestHeaders": ["Idempotency-Key for commands", "If-Match for updates where concurrency applies", "X-Correlation-Id"], + "requiredResponseMetadata": ["asOf", "projectionVersion", "stale", "watermark where applicable"], + "listQuery": ["page", "pageSize", "search", "sort[]", "filter[]"], + "failureStates": ["LOADING","EMPTY","WARN","ERROR","UNAUTHORIZED","FORBIDDEN","PARTIAL","DIRTY","CONFLICT","EXPIRED","READONLY","PROCESSING"], + "forbidden": ["server data duplicated in Pinia", "vendor grid state stored in domain feature", "silent overwrite after 409/412", "delete without reason and audit"] +} diff --git a/contracts/ui/crud-resource.v2.json b/contracts/ui/crud-resource.v2.json new file mode 100644 index 00000000..654a2a27 --- /dev/null +++ b/contracts/ui/crud-resource.v2.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "K-ArtSell CRUD Resource Contract v2", + "contractVersion": "2.0", + "required": [ + "resourceId", + "querySchemaVersion", + "responseSchemaVersion", + "permissionPolicy", + "concurrencyMode", + "idempotencyMode", + "sensitiveFields" + ], + "properties": { + "concurrencyMode": { + "enum": [ + "NONE", + "ETAG_IF_MATCH" + ] + }, + "idempotencyMode": { + "enum": [ + "NONE", + "IDEMPOTENCY_KEY" + ] + }, + "queryOwnership": { + "const": "VUE_ROUTER" + }, + "serverStateOwnership": { + "const": "TANSTACK_QUERY" + }, + "formOwnership": { + "const": "VEE_VALIDATE_ZOD" + } + } +} \ No newline at end of file diff --git a/contracts/ui/layout-regions.v1.json b/contracts/ui/layout-regions.v1.json new file mode 100644 index 00000000..d3213a7c --- /dev/null +++ b/contracts/ui/layout-regions.v1.json @@ -0,0 +1,5 @@ +{ + "contractVersion":"layout-regions.v1", + "regions":["Header","Summary","Filter","Main","SidePanel","ActionBar","AuditHelp"], + "rules":["one h1 per page","actions remain visible without covering content","evidence context is visible","responsive order follows task order","operation screens expose run status and watermark"] +} diff --git a/contracts/ui/screen-types.v2.json b/contracts/ui/screen-types.v2.json new file mode 100644 index 00000000..304f9e4f --- /dev/null +++ b/contracts/ui/screen-types.v2.json @@ -0,0 +1,22 @@ +{ + "contractVersion": "2.0", + "templates": [ + { "id": "T01", "component": "SearchListCrudPage", "purpose": "search/list CRUD" }, + { "id": "T02", "component": "DetailReadPage", "purpose": "read-only detail with evidence" }, + { "id": "T03", "component": "EditFormPage", "purpose": "create/update form" }, + { "id": "T04", "component": "MasterDetailCrudPage", "purpose": "master-detail CRUD" }, + { "id": "T05", "component": "ApprovalWorkbenchPage", "purpose": "maker-checker review" }, + { "id": "T06", "component": "StepWizardPage", "purpose": "multi-step workflow" }, + { "id": "T07", "component": "ScorecardDashboardPage", "purpose": "dashboard and scorecard" }, + { "id": "T08", "component": "BatchOperationsPageV2", "purpose": "batch and data operations" }, + { "id": "T09", "component": "ReconciliationExceptionPage", "purpose": "reconciliation and correction" }, + { "id": "T10", "component": "VersionGovernancePage", "purpose": "version comparison and governance" } + ], + "mandatoryCrossCutting": [ + "loading/empty/warn/error/unauthorized/partial states", + "as-of and version evidence", + "permission boundary", + "correlation and audit link", + "responsive and keyboard operation" + ] +} diff --git a/contracts/ui/ui-adapter.v2.json b/contracts/ui/ui-adapter.v2.json new file mode 100644 index 00000000..4957839f --- /dev/null +++ b/contracts/ui/ui-adapter.v2.json @@ -0,0 +1,16 @@ +{ + "contractVersion": "2.0", + "requiredCapabilities": [ + "button", "text-field", "text-area", "select", "checkbox", + "date-field", "number-field", "dialog", "status-tag", "data-grid" + ], + "providers": [ + { "id": "primevue-aggrid", "productionEligible": true, "selection": "VITE_UI_ADAPTER=primevue" }, + { "id": "native-accessible", "productionEligible": false, "selection": "VITE_UI_ADAPTER=native" } + ], + "featureImportRule": "Feature code imports only from @/shared/ui/components, @/shared/ui/layouts or @/shared/ui/screen-types.", + "replacementGate": [ + "adapter contract tests", "accessibility keyboard tests", "visual regression", + "screen-state matrix", "large-list performance", "security review" + ] +} diff --git a/contracts/ui/ui-adapter.v3.json b/contracts/ui/ui-adapter.v3.json new file mode 100644 index 00000000..e84f798d --- /dev/null +++ b/contracts/ui/ui-adapter.v3.json @@ -0,0 +1,12 @@ +{ + "contractVersion": "3.0", + "status": "CURRENT", + "principle": "Feature code depends on normalized K-ArtSell contracts, never vendor props or events.", + "requiredCapabilities": ["button","text-field","text-area","select","multi-select","checkbox","date-field","number-field","dialog","status-tag","inline-message","paginator","tabs","data-grid"], + "providers": [ + {"id":"primevue-aggrid","productionEligible":true,"boundary":"frontend/src/shared/ui/adapter/primevue"}, + {"id":"native-accessible","productionEligible":false,"purpose":"reference and contract conformance"} + ], + "forbidden": ["vendor import outside provider", "pass-through of unreviewed vendor props", "vendor-specific state in feature store", "silent fallback when capability is missing"], + "acceptance": ["contract conformance", "keyboard and label tests", "T01-T10 state matrix", "server paging and sorting contract", "visual regression", "accessibility review"] +} diff --git a/contracts/ui/ui-adapter.v4.json b/contracts/ui/ui-adapter.v4.json new file mode 100644 index 00000000..53b60076 --- /dev/null +++ b/contracts/ui/ui-adapter.v4.json @@ -0,0 +1,46 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "title": "K-ArtSell UI Adapter Contract v4", + "contractVersion": "4.0", + "status": "IMPLEMENTATION_TEMPLATE", + "requiredCapabilities": [ + "button", + "text-field", + "text-area", + "select", + "multi-select", + "checkbox", + "date-field", + "number-field", + "dialog", + "status-tag", + "inline-message", + "paginator", + "tabs", + "data-grid" + ], + "requiredEvidence": [ + "contract-conformance", + "keyboard-focus", + "accessible-name", + "t01-t10-state-regression", + "provider-switch-smoke", + "visual-regression", + "performance-budget", + "rollback-rehearsal" + ], + "rules": { + "featureVendorImports": 0, + "unknownCapability": "FAIL_FAST", + "unsupportedContract": "FAIL_FAST", + "providerSelection": "STARTUP_ONLY", + "mutableGlobalProviderSwitch": false, + "normalizedSemantics": [ + "disabled", + "invalid", + "busy", + "aria-describedby", + "stable-events" + ] + } +} \ No newline at end of file diff --git a/db/migrations/0000_building_blocks.sql b/db/migrations/0000_building_blocks.sql new file mode 100644 index 00000000..d399f32b --- /dev/null +++ b/db/migrations/0000_building_blocks.sql @@ -0,0 +1,44 @@ +create schema if not exists building_blocks; +create schema if not exists signal_engine; + +create table if not exists building_blocks.outbox_message ( + message_id uuid primary key, + event_type text not null, + schema_version integer not null check (schema_version > 0), + payload_json jsonb not null, + correlation_id text not null, + occurred_at timestamptz not null, + payload_hash text not null, + published_at timestamptz null, + attempt integer not null default 0 +); + +create table if not exists building_blocks.inbox_message ( + consumer text not null, + message_id uuid not null, + received_at timestamptz not null, + payload_hash text not null, + primary key (consumer, message_id) +); + +create table if not exists building_blocks.job_run ( + job_run_id uuid primary key, + job_type text not null, + job_version integer not null, + scope_key text not null, + idempotency_key text not null unique, + watermark text null, + app_version text not null, + model_version text null, + config_version text null, + data_version text null, + contract_version text null, + status text not null, + input_hash text null, + output_hash text null, + started_at timestamptz null, + heartbeat_at timestamptz null, + finished_at timestamptz null, + error_code text null, + trace_id text null +); diff --git a/db/migrations/0010_signal_engine.sql b/db/migrations/0010_signal_engine.sql new file mode 100644 index 00000000..493e5884 --- /dev/null +++ b/db/migrations/0010_signal_engine.sql @@ -0,0 +1,60 @@ +create table if not exists signal_engine.evidence_snapshot ( + evidence_id text primary key, + as_of timestamptz not null, + published_at_cutoff timestamptz not null, + dataset_id text not null, + data_hash text not null, + model_version text not null, + config_version text not null, + payload jsonb not null, + content_hash text not null unique, + created_at timestamptz not null default now() +); + +create table if not exists signal_engine.signal_decision ( + decision_id uuid primary key, + lot_id uuid not null, + cycle_id uuid not null, + evidence_id text not null references signal_engine.evidence_snapshot(evidence_id), + action text not null, + sell_fraction numeric(9,6) not null check (sell_fraction between 0 and 1), + policy_id text not null, + priority integer not null, + reason_code text not null, + reentry_eligible boolean not null, + created_at timestamptz not null, + decision_hash text not null unique +); + +create table if not exists signal_engine.reentry_watch ( + watch_id uuid primary key, + sell_decision_id uuid not null unique references signal_engine.signal_decision(decision_id), + prior_cycle_id uuid not null, + state text not null, + minimum_wait_sessions integer not null check (minimum_wait_sessions >= 0), + minimum_spacing_sessions integer not null check (minimum_spacing_sessions >= 0), + expires_after_sessions integer not null check (expires_after_sessions > 0), + created_at timestamptz not null +); + +create table if not exists signal_engine.reentry_stage ( + watch_id uuid not null references signal_engine.reentry_watch(watch_id), + stage_no integer not null, + target_fraction numeric(9,6) not null check (target_fraction > 0 and target_fraction <= 1), + status text not null, + eligible_at timestamptz null, + executed_cycle_id uuid null, + primary key (watch_id, stage_no) +); + +create or replace function signal_engine.prevent_immutable_change() +returns trigger language plpgsql as $$ +begin + raise exception 'immutable evidence/decision rows cannot be updated or deleted'; +end; +$$; + +drop trigger if exists evidence_snapshot_immutable on signal_engine.evidence_snapshot; +create trigger evidence_snapshot_immutable +before update or delete on signal_engine.evidence_snapshot +for each row execute function signal_engine.prevent_immutable_change(); diff --git a/db/migrations/0011_signal_engine_hardening.sql b/db/migrations/0011_signal_engine_hardening.sql new file mode 100644 index 00000000..a9928231 --- /dev/null +++ b/db/migrations/0011_signal_engine_hardening.sql @@ -0,0 +1,24 @@ +-- v11.1 hardening delta. Do not edit prior migrations. + +create index if not exists ix_outbox_pending + on building_blocks.outbox_message (occurred_at, message_id) + where published_at is null; + +create index if not exists ix_job_run_status_started + on building_blocks.job_run (status, started_at); + +alter table signal_engine.signal_decision + add constraint ck_signal_decision_policy_id_not_blank + check (length(trim(policy_id)) > 0) not valid; + +alter table signal_engine.signal_decision + validate constraint ck_signal_decision_policy_id_not_blank; + +drop trigger if exists signal_decision_immutable on signal_engine.signal_decision; +create trigger signal_decision_immutable +before update or delete on signal_engine.signal_decision +for each row execute function signal_engine.prevent_immutable_change(); + +create unique index if not exists ux_reentry_stage_executed_cycle + on signal_engine.reentry_stage (executed_cycle_id) + where executed_cycle_id is not null; diff --git a/db/migrations/0012_signal_engine_integrated_hardening.sql b/db/migrations/0012_signal_engine_integrated_hardening.sql new file mode 100644 index 00000000..9b3c02ff --- /dev/null +++ b/db/migrations/0012_signal_engine_integrated_hardening.sql @@ -0,0 +1,142 @@ +-- v12.0 integrated hardening delta. Prior migrations remain immutable. + +-- Rename ambiguous columns while preserving existing data. +do $$ +begin + if exists ( + select 1 from information_schema.columns + where table_schema = 'signal_engine' + and table_name = 'signal_decision' + and column_name = 'lot_id' + ) and not exists ( + select 1 from information_schema.columns + where table_schema = 'signal_engine' + and table_name = 'signal_decision' + and column_name = 'position_lot_id' + ) then + alter table signal_engine.signal_decision + rename column lot_id to position_lot_id; + end if; + + if exists ( + select 1 from information_schema.columns + where table_schema = 'signal_engine' + and table_name = 'signal_decision' + and column_name = 'sell_fraction' + ) and not exists ( + select 1 from information_schema.columns + where table_schema = 'signal_engine' + and table_name = 'signal_decision' + and column_name = 'sell_ratio_of_lot' + ) then + alter table signal_engine.signal_decision + rename column sell_fraction to sell_ratio_of_lot; + end if; +end; +$$; + +alter table signal_engine.signal_decision + add column if not exists target_portfolio_weight_after numeric(12,8), + add column if not exists dataset_id text, + add column if not exists model_version text, + add column if not exists config_version text, + add column if not exists code_sha text, + add column if not exists idempotency_key text, + add column if not exists correlation_id text; + +update signal_engine.signal_decision d +set dataset_id = coalesce(d.dataset_id, e.dataset_id), + model_version = coalesce(d.model_version, e.model_version), + config_version = coalesce(d.config_version, e.config_version), + code_sha = coalesce(d.code_sha, 'LEGACY_UNKNOWN'), + target_portfolio_weight_after = coalesce(d.target_portfolio_weight_after, 0), + idempotency_key = coalesce(d.idempotency_key, 'legacy:' || d.decision_id::text), + correlation_id = coalesce(d.correlation_id, 'legacy:' || d.decision_id::text) +from signal_engine.evidence_snapshot e +where e.evidence_id = d.evidence_id; + +alter table signal_engine.signal_decision + alter column target_portfolio_weight_after set not null, + alter column dataset_id set not null, + alter column model_version set not null, + alter column config_version set not null, + alter column code_sha set not null, + alter column idempotency_key set not null, + alter column correlation_id set not null; + +alter table signal_engine.signal_decision + drop constraint if exists ck_signal_decision_sell_ratio_of_lot, + add constraint ck_signal_decision_sell_ratio_of_lot + check (sell_ratio_of_lot between 0 and 1), + drop constraint if exists ck_signal_decision_target_weight, + add constraint ck_signal_decision_target_weight + check (target_portfolio_weight_after between 0 and 1); + +create unique index if not exists ux_signal_decision_idempotency + on signal_engine.signal_decision (idempotency_key); + +create index if not exists ix_signal_decision_lot_created + on signal_engine.signal_decision (position_lot_id, created_at desc); + +-- Rebuildable, versioned read model. It is populated only by approved upstream slices. +create table if not exists signal_engine.sell_decision_context ( + context_id uuid primary key, + position_lot_id uuid not null, + cycle_id uuid not null, + evidence_id text not null references signal_engine.evidence_snapshot(evidence_id), + dataset_id text not null, + model_version text not null, + config_version text not null, + code_sha text not null, + as_of timestamptz not null, + published_at_cutoff timestamptz not null, + current_portfolio_weight numeric(12,8) not null + check (current_portfolio_weight between 0 and 1), + strategic_core_floor_weight numeric(12,8) not null + check (strategic_core_floor_weight between 0 and current_portfolio_weight), + hard_impairment_approved boolean not null, + capital_floor_breached boolean not null, + survival_sell_ratio_of_lot numeric(12,8) not null + check (survival_sell_ratio_of_lot between 0 and 1), + gap_below_floor_atr numeric(18,8) not null check (gap_below_floor_atr >= 0), + consecutive_close_breaches integer not null check (consecutive_close_breaches >= 0), + cooldown_satisfied boolean not null, + concentration_sell_ratio_of_lot numeric(12,8) not null + check (concentration_sell_ratio_of_lot between 0 and 1), + opportunity_edge_lower_bound numeric(18,8) not null, + opportunity_sell_ratio_of_lot numeric(12,8) not null + check (opportunity_sell_ratio_of_lot between 0 and 1), + quality_status text not null check (quality_status in ('PASS', 'WARN', 'QUARANTINED')), + source_watermark text not null, + projection_version integer not null, + content_hash text not null unique, + created_at timestamptz not null default now(), + unique (position_lot_id, as_of, projection_version) +); + +create index if not exists ix_sell_decision_context_lookup + on signal_engine.sell_decision_context (position_lot_id, as_of desc) + where quality_status = 'PASS'; + +drop trigger if exists sell_decision_context_immutable on signal_engine.sell_decision_context; +create trigger sell_decision_context_immutable +before update or delete on signal_engine.sell_decision_context +for each row execute function signal_engine.prevent_immutable_change(); + +-- Audit rows are append-only. Corrections are represented as new events. +create table if not exists signal_engine.decision_audit_event ( + audit_event_id uuid primary key, + decision_id uuid not null references signal_engine.signal_decision(decision_id), + event_type text not null, + actor_id text not null, + correlation_id text not null, + payload_json jsonb not null, + payload_hash text not null, + occurred_at timestamptz not null, + unique (decision_id, event_type, payload_hash) +); + +drop trigger if exists decision_audit_event_immutable on signal_engine.decision_audit_event; +create trigger decision_audit_event_immutable +before update or delete on signal_engine.decision_audit_event +for each row execute function signal_engine.prevent_immutable_change(); diff --git a/db/migrations/0013_execution_readiness_building_blocks.sql b/db/migrations/0013_execution_readiness_building_blocks.sql new file mode 100644 index 00000000..83cbd0e7 --- /dev/null +++ b/db/migrations/0013_execution_readiness_building_blocks.sql @@ -0,0 +1,68 @@ +-- v12.1 execution-readiness delta. Prior migrations remain immutable. + +alter table building_blocks.outbox_message + add column if not exists next_attempt_at timestamptz null, + add column if not exists lease_owner text null, + add column if not exists lease_until timestamptz null, + add column if not exists dead_lettered_at timestamptz null, + add column if not exists last_error_code text null; + +create index if not exists ix_outbox_dispatchable + on building_blocks.outbox_message (coalesce(next_attempt_at, occurred_at), occurred_at, message_id) + where published_at is null and dead_lettered_at is null; + +alter table building_blocks.inbox_message + add column if not exists processed_at timestamptz null, + add column if not exists result_hash text null; + +create table if not exists building_blocks.projection_checkpoint ( + projection_name text not null, + projection_version integer not null check (projection_version > 0), + source_watermark text not null, + last_event_id uuid null, + content_hash text not null, + built_at timestamptz not null, + primary key (projection_name, projection_version) +); + +create table if not exists building_blocks.projection_rebuild_run ( + rebuild_id uuid primary key, + projection_name text not null, + target_version integer not null check (target_version > 0), + through_watermark text not null, + dry_run boolean not null, + requested_by text not null, + requested_at timestamptz not null, + status text not null, + source_count bigint null, + projected_count bigint null, + result_hash text null, + finished_at timestamptz null, + error_code text null +); + +create table if not exists building_blocks.audit_event ( + audit_event_id uuid primary key, + entity_type text not null, + entity_id text not null, + event_type text not null, + actor_id text not null, + correlation_id text not null, + payload_json jsonb not null, + payload_hash text not null, + corrects_audit_event_id uuid null references building_blocks.audit_event(audit_event_id), + occurred_at timestamptz not null, + unique (entity_type, entity_id, event_type, payload_hash) +); + +create or replace function building_blocks.prevent_append_only_change() +returns trigger language plpgsql as $$ +begin + raise exception 'append-only row cannot be updated or deleted'; +end; +$$; + +drop trigger if exists audit_event_append_only on building_blocks.audit_event; +create trigger audit_event_append_only +before update or delete on building_blocks.audit_event +for each row execute function building_blocks.prevent_append_only_change(); diff --git a/db/migrations/0014_signal_engine_lot_weight_and_policy_trace.sql b/db/migrations/0014_signal_engine_lot_weight_and_policy_trace.sql new file mode 100644 index 00000000..9aedc906 --- /dev/null +++ b/db/migrations/0014_signal_engine_lot_weight_and_policy_trace.sql @@ -0,0 +1,61 @@ +-- v12.2 strategic data-correctness delta. +-- Prior columns remain for compatibility; new code uses explicit security/lot weight semantics. + +alter table signal_engine.sell_decision_context + add column if not exists current_security_portfolio_weight numeric(12,8), + add column if not exists current_lot_portfolio_weight numeric(12,8); + +update signal_engine.sell_decision_context +set current_security_portfolio_weight = coalesce(current_security_portfolio_weight, current_portfolio_weight), + current_lot_portfolio_weight = coalesce(current_lot_portfolio_weight, current_portfolio_weight) +where current_security_portfolio_weight is null + or current_lot_portfolio_weight is null; + +alter table signal_engine.sell_decision_context + alter column current_security_portfolio_weight set not null, + alter column current_lot_portfolio_weight set not null, + drop constraint if exists ck_sell_context_security_weight, + add constraint ck_sell_context_security_weight + check (current_security_portfolio_weight between 0 and 1), + drop constraint if exists ck_sell_context_lot_weight, + add constraint ck_sell_context_lot_weight + check (current_lot_portfolio_weight between 0 and current_security_portfolio_weight), + drop constraint if exists ck_sell_context_published_cutoff, + add constraint ck_sell_context_published_cutoff + check (published_at_cutoff <= as_of); + +comment on column signal_engine.sell_decision_context.current_portfolio_weight is + 'Legacy ambiguous field. Do not use in v12.2+ decisions.'; +comment on column signal_engine.sell_decision_context.current_security_portfolio_weight is + 'Absolute portfolio weight of the security, 0..1.'; +comment on column signal_engine.sell_decision_context.current_lot_portfolio_weight is + 'Absolute portfolio weight represented by the target PositionLot, 0..security weight.'; + +alter table signal_engine.signal_decision + add column if not exists target_security_portfolio_weight_after numeric(12,8), + add column if not exists policy_trace_json jsonb; + +update signal_engine.signal_decision +set target_security_portfolio_weight_after = coalesce( + target_security_portfolio_weight_after, + target_portfolio_weight_after, + 0), + policy_trace_json = coalesce(policy_trace_json, '[]'::jsonb) +where target_security_portfolio_weight_after is null + or policy_trace_json is null; + +alter table signal_engine.signal_decision + alter column target_security_portfolio_weight_after set not null, + alter column policy_trace_json set not null, + drop constraint if exists ck_signal_decision_target_security_weight, + add constraint ck_signal_decision_target_security_weight + check (target_security_portfolio_weight_after between 0 and 1), + drop constraint if exists ck_signal_decision_policy_trace_array, + add constraint ck_signal_decision_policy_trace_array + check (jsonb_typeof(policy_trace_json) = 'array'); + +comment on column signal_engine.signal_decision.target_portfolio_weight_after is + 'Legacy ambiguous target field. v12.2+ uses target_security_portfolio_weight_after.'; + +create index if not exists ix_signal_decision_policy_trace_gin + on signal_engine.signal_decision using gin (policy_trace_json); diff --git a/db/migrations/0015_signal_engine_semantic_versioning.sql b/db/migrations/0015_signal_engine_semantic_versioning.sql new file mode 100644 index 00000000..7f81b7bc --- /dev/null +++ b/db/migrations/0015_signal_engine_semantic_versioning.sql @@ -0,0 +1,149 @@ +-- v12.3 semantic-versioning and contract-governance delta. +-- Prior migrations remain immutable. Legacy ambiguous weight contexts are blocked, not guessed. + +alter table signal_engine.sell_decision_context + add column if not exists weight_semantics_version smallint; + +-- Every row created before this migration is conservatively classified as legacy/ambiguous. +update signal_engine.sell_decision_context +set weight_semantics_version = 1 +where weight_semantics_version is null; + +alter table signal_engine.sell_decision_context + alter column weight_semantics_version set default 2, + alter column weight_semantics_version set not null, + drop constraint if exists ck_sell_context_weight_semantics_version, + add constraint ck_sell_context_weight_semantics_version + check (weight_semantics_version in (1, 2)); + +comment on column signal_engine.sell_decision_context.weight_semantics_version is + '1=legacy ambiguous current_portfolio_weight backfill; 2=explicit security and lot weights from approved source. Decision reads require 2.'; + +alter table signal_engine.signal_decision + add column if not exists decision_contract_version text, + add column if not exists policy_trace_schema_version smallint; + +update signal_engine.signal_decision +set decision_contract_version = coalesce(decision_contract_version, 'sell-decision.v2'), + policy_trace_schema_version = coalesce(policy_trace_schema_version, 2) +where decision_contract_version is null + or policy_trace_schema_version is null; + +alter table signal_engine.signal_decision + alter column decision_contract_version set default 'sell-decision.v2', + alter column decision_contract_version set not null, + alter column policy_trace_schema_version set default 2, + alter column policy_trace_schema_version set not null, + drop constraint if exists ck_signal_decision_contract_version, + add constraint ck_signal_decision_contract_version + check (decision_contract_version = 'sell-decision.v2'), + drop constraint if exists ck_signal_decision_policy_trace_schema_version, + add constraint ck_signal_decision_policy_trace_schema_version + check (policy_trace_schema_version = 2); + +create table if not exists signal_engine.policy_contract_definition ( + contract_version text primary key, + content_hash text not null unique, + policy_json jsonb not null, + status text not null check (status in ('PROPOSED', 'APPROVED', 'RETIRED')), + effective_from timestamptz null, + approved_by text null, + approved_at timestamptz null, + created_at timestamptz not null default now(), + check (jsonb_typeof(policy_json) = 'object') +); + +insert into signal_engine.policy_contract_definition +(contract_version, content_hash, policy_json, status) +values +('sell-policy.v1', 'a269a0331b83c0f6ec108e7587de1d20c798036ff8d0c03d726cd854e73d8480', $policy$ +{ + "changeControl": "MODEL_CHANGE_AND_GOLDEN_OOS_REQUIRED", + "contractVersion": "sell-policy.v1", + "decisionContractVersion": "sell-decision.v2", + "policies": [ + { + "condition": "approved hard impairment", + "documentedRange": [ + 0.8, + 1.0 + ], + "mayCrossStrategicCore": true, + "policyId": "ALG-SELL-001", + "priority": 1000, + "reentryEligible": false, + "requestedSellRatioOfLot": 1.0, + "terminal": true + }, + { + "condition": "capital floor breached", + "decisionRequired": "Whether portfolio survival bypasses same-direction cooldown", + "mayCrossStrategicCore": true, + "policyId": "ALG-SELL-PORT-001", + "priority": 900, + "ratioSource": "server PIT risk context", + "reentryEligible": true, + "terminal": true + }, + { + "condition": { + "gapBelowFloorAtrGte": 1.5 + }, + "documentedRange": [ + 0.3, + 0.5 + ], + "mayCrossStrategicCore": false, + "policyId": "ALG-SELL-002", + "priority": 800, + "reentryEligible": true, + "requestedSellRatioOfLot": 0.4, + "terminal": false + }, + { + "condition": { + "consecutiveCloseBreachesGte": 2 + }, + "documentedRange": [ + 0.15, + 0.25 + ], + "mayCrossStrategicCore": false, + "policyId": "ALG-SELL-003", + "priority": 700, + "reentryEligible": true, + "requestedSellRatioOfLot": 0.2, + "terminal": false + }, + { + "condition": "approved concentration/liquidity excess ratio > 0", + "mayCrossStrategicCore": false, + "policyId": "ALG-SELL-004", + "priority": 600, + "ratioSource": "server PIT portfolio risk context", + "reentryEligible": true, + "terminal": false + }, + { + "condition": "opportunity edge lower bound > 0 and requested ratio > 0", + "mayCrossStrategicCore": false, + "policyId": "ALG-SELL-005", + "priority": 500, + "reentryEligible": true, + "requestedRange": [ + 0.1, + 0.25 + ], + "terminal": false + } + ], + "policyTraceSchemaVersion": 2, + "status": "RESEARCH_CANDIDATE_NOT_PRODUCTION" +} +$policy$::jsonb, 'PROPOSED') +on conflict (contract_version) do nothing; + +drop trigger if exists policy_contract_definition_immutable on signal_engine.policy_contract_definition; +create trigger policy_contract_definition_immutable +before update or delete on signal_engine.policy_contract_definition +for each row execute function signal_engine.prevent_immutable_change(); diff --git a/db/migrations/0016_continuous_model_operations.sql b/db/migrations/0016_continuous_model_operations.sql new file mode 100644 index 00000000..ecb5b1b8 --- /dev/null +++ b/db/migrations/0016_continuous_model_operations.sql @@ -0,0 +1,264 @@ +-- v12.4 continuous model operations delta. +-- Evaluation and proposal automation only. This migration does not enable automatic model promotion, +-- automatic order submission or KIS submission. + +create schema if not exists evaluation; +create schema if not exists governance; + +create table if not exists evaluation.dataset_manifest ( + dataset_id text primary key, + scope_key text not null, + content_hash text not null unique, + source_catalog_version text not null, + lineage_hash text not null, + status text not null check (status in ('PROPOSED', 'APPROVED', 'QUARANTINED', 'RETIRED')), + frozen_at timestamptz not null, + approved_by text null, + approved_at timestamptz null, + created_at timestamptz not null default now() +); + +create index if not exists ix_dataset_manifest_scope_frozen + on evaluation.dataset_manifest (scope_key, frozen_at desc) + where status = 'APPROVED'; + +create table if not exists governance.model_version_registry ( + model_version text not null, + scope_key text not null, + config_version text not null, + code_sha text not null, + contract_version text not null, + lifecycle_state text not null check (lifecycle_state in + ('RESEARCH', 'CHALLENGER', 'SHADOW', 'CANDIDATE', 'APPROVED', 'RETIRED', 'ROLLED_BACK')), + effective_at timestamptz not null, + retired_at timestamptz null, + model_card_hash text not null, + approved_by text null, + approved_at timestamptz null, + created_at timestamptz not null default now(), + primary key (model_version, scope_key, effective_at), + check (lifecycle_state <> 'APPROVED' or (approved_by is not null and approved_at is not null)) +); + +create index if not exists ix_model_version_registry_active + on governance.model_version_registry (scope_key, effective_at desc) + where lifecycle_state in ('RESEARCH', 'CHALLENGER', 'SHADOW', 'CANDIDATE', 'APPROVED'); + +create table if not exists evaluation.model_operation_schedule ( + schedule_id uuid primary key, + operation_code text not null, + operation_name text not null, + scope_key text not null, + cadence text not null check (cadence in ('DAILY', 'WEEKLY', 'MONTHLY', 'QUARTERLY', 'EVENT_DRIVEN')), + automation_mode text not null check (automation_mode in ('EVALUATION_ONLY', 'PROPOSAL_ONLY', 'DRILL_ONLY')), + queue_name text not null, + schedule_version integer not null check (schedule_version > 0), + enabled boolean not null default true, + next_due_at timestamptz not null, + last_dispatched_at timestamptz null, + last_background_job_id text null, + max_lag interval not null, + primary_owner text not null, + secondary_owner text not null, + lease_owner text null, + lease_until timestamptz null, + last_error_code text null, + created_at timestamptz not null default now(), + updated_at timestamptz not null default now(), + unique (operation_code, scope_key, schedule_version) +); + +create index if not exists ix_model_operation_schedule_due + on evaluation.model_operation_schedule (next_due_at, operation_code, scope_key) + where enabled = true; + +create table if not exists evaluation.model_operation_request ( + request_id uuid primary key, + schedule_id uuid not null references evaluation.model_operation_schedule(schedule_id), + operation_code text not null, + scope_key text not null, + automation_mode text not null check (automation_mode in ('EVALUATION_ONLY', 'PROPOSAL_ONLY', 'DRILL_ONLY')), + idempotency_key text not null unique, + dataset_id text not null, + data_hash text not null, + model_version text not null, + config_version text not null, + code_sha text not null, + contract_version text not null, + lifecycle_state text not null, + correlation_id text not null, + status text not null check (status in ('REQUESTED', 'RUNNING', 'SUCCEEDED', 'BUSINESS_HOLD', 'FAILED', 'QUARANTINED')), + output_hash text null, + error_code text null, + requested_at timestamptz not null, + started_at timestamptz null, + finished_at timestamptz null +); + +create index if not exists ix_model_operation_request_scope_time + on evaluation.model_operation_request (scope_key, operation_code, requested_at desc); + +-- Request is a lifecycle aggregate: status/timing fields are mutable under optimistic/transactional control. +-- Every transition is additionally recorded as an immutable status event so operational history is never lost. +create table if not exists evaluation.model_operation_status_event ( + event_id uuid primary key, + request_id uuid not null references evaluation.model_operation_request(request_id), + from_status text null, + to_status text not null check (to_status in + ('REQUESTED', 'RUNNING', 'SUCCEEDED', 'BUSINESS_HOLD', 'FAILED', 'QUARANTINED')), + reason_code text null, + payload_hash text not null, + actor_type text not null check (actor_type in ('SYSTEM', 'OPERATOR', 'REPLAY')), + correlation_id text not null, + occurred_at timestamptz not null, + created_at timestamptz not null default now(), + unique (request_id, to_status, occurred_at, payload_hash) +); + +create index if not exists ix_model_operation_status_event_request_time + on evaluation.model_operation_status_event (request_id, occurred_at); + +create table if not exists evaluation.model_metric_definition ( + metric_code text not null, + definition_version integer not null check (definition_version > 0), + numerator_definition text not null, + denominator_definition text not null, + evaluation_window text not null, + aggregation_method text not null, + threshold_json jsonb not null, + status text not null check (status in ('PROPOSED', 'APPROVED', 'RETIRED')), + content_hash text not null, + effective_from timestamptz null, + approved_by text null, + approved_at timestamptz null, + created_at timestamptz not null default now(), + primary key (metric_code, definition_version), + unique (content_hash) +); + +create table if not exists evaluation.model_metric_observation ( + observation_id uuid primary key, + request_id uuid not null references evaluation.model_operation_request(request_id), + metric_code text not null, + definition_version integer not null, + scope_key text not null, + cohort_key text not null, + value_numeric numeric(30, 12) null, + value_text text null, + sample_size bigint not null check (sample_size >= 0), + dataset_id text not null, + model_version text not null, + as_of timestamptz not null, + content_hash text not null, + created_at timestamptz not null default now(), + foreign key (metric_code, definition_version) + references evaluation.model_metric_definition(metric_code, definition_version), + check ((value_numeric is null) <> (value_text is null)), + unique (request_id, metric_code, definition_version, cohort_key, content_hash) +); + +create table if not exists evaluation.model_evaluation_snapshot ( + snapshot_id uuid primary key, + request_id uuid not null references evaluation.model_operation_request(request_id), + scope_key text not null, + model_version text not null, + dataset_id text not null, + gate_contract_version text not null, + gate_decision text not null check (gate_decision in ('PASS', 'WARN', 'HOLD', 'FAIL')), + blocking_reasons_json jsonb not null, + warnings_json jsonb not null, + evidence_hash text not null, + as_of timestamptz not null, + created_at timestamptz not null default now(), + unique (request_id, evidence_hash) +); + +create table if not exists governance.model_improvement_proposal ( + proposal_id uuid primary key, + source_request_id uuid not null references evaluation.model_operation_request(request_id), + scope_key text not null, + base_model_version text not null, + proposal_type text not null check (proposal_type in + ('DATA_REMEDIATION', 'FEATURE_REVIEW', 'THRESHOLD_REVIEW', 'POLICY_REFACTORING', + 'CALIBRATION_REVIEW', 'RISK_LIMIT_REVIEW', 'TECH_DEBT_REPAYMENT')), + problem_statement text not null, + supporting_evidence_json jsonb not null, + counter_evidence_json jsonb not null, + expected_benefit text not null, + risks text not null, + required_tests_json jsonb not null, + status text not null check (status in + ('DRAFT', 'REVIEW_REQUIRED', 'APPROVED_FOR_RESEARCH', 'REJECTED', 'EXPIRED')), + created_by text not null, + created_at timestamptz not null, + reviewed_by text null, + reviewed_at timestamptz null, + expires_at timestamptz not null, + content_hash text not null unique, + check (status <> 'APPROVED_FOR_RESEARCH' or (reviewed_by is not null and reviewed_at is not null)) +); + +create table if not exists governance.model_promotion_review ( + review_id uuid primary key, + scope_key text not null, + candidate_model_version text not null, + evidence_snapshot_id uuid not null references evaluation.model_evaluation_snapshot(snapshot_id), + independent_validation_hash text not null, + compliance_review_hash text null, + security_review_hash text null, + decision text not null check (decision in ('PENDING', 'APPROVED_FOR_SHADOW', 'APPROVED_FOR_PILOT', 'REJECTED', 'EXPIRED')), + maker_id text not null, + checker_id text null, + created_at timestamptz not null, + decided_at timestamptz null, + check (maker_id <> coalesce(checker_id, '')), + check (decision = 'PENDING' or (checker_id is not null and decided_at is not null)) +); + +create table if not exists governance.model_rollback_drill ( + drill_id uuid primary key, + scope_key text not null, + champion_model_version text not null, + fallback_model_version text not null, + runbook_version text not null, + started_at timestamptz not null, + finished_at timestamptz null, + result text not null check (result in ('RUNNING', 'PASS', 'FAIL', 'BUSINESS_HOLD')), + recovery_time_seconds integer null check (recovery_time_seconds is null or recovery_time_seconds >= 0), + evidence_hash text null, + owner text not null, + secondary_owner text not null +); + +-- Append-only evidence. Request status is mutable, but status_event/observation/snapshot history is immutable. +drop trigger if exists model_operation_status_event_append_only on evaluation.model_operation_status_event; +create trigger model_operation_status_event_append_only +before update or delete on evaluation.model_operation_status_event +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists model_metric_observation_append_only on evaluation.model_metric_observation; +create trigger model_metric_observation_append_only +before update or delete on evaluation.model_metric_observation +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists model_evaluation_snapshot_append_only on evaluation.model_evaluation_snapshot; +create trigger model_evaluation_snapshot_append_only +before update or delete on evaluation.model_evaluation_snapshot +for each row execute function building_blocks.prevent_append_only_change(); + +-- Schedules intentionally automate evidence collection/proposal generation only. +insert into evaluation.model_operation_schedule +(schedule_id, operation_code, operation_name, scope_key, cadence, automation_mode, queue_name, + schedule_version, enabled, next_due_at, max_lag, primary_owner, secondary_owner) +values +('e4100000-0000-4000-8000-000000000010', 'J10', 'OutcomeEvaluationRun', 'GLOBAL', 'DAILY', 'EVALUATION_ONLY', 'q-evaluation', 1, true, now() + interval '1 hour', interval '1 day', 'Quant/Ops', 'Data/QA'), +('e4100000-0000-4000-8000-000000000011', 'J11', 'DailyScorecardBuild', 'GLOBAL', 'DAILY', 'EVALUATION_ONLY', 'q-evaluation', 1, true, now() + interval '2 hours', interval '1 day', 'Quant/Ops', 'Risk/SRE'), +('e4100000-0000-4000-8000-000000000017', 'J17', 'DriftDetectionRun', 'GLOBAL', 'DAILY', 'EVALUATION_ONLY', 'q-evaluation', 1, true, now() + interval '3 hours', interval '1 day', 'Quant/Risk', 'Data/SRE'), +('e4100000-0000-4000-8000-000000000018', 'J18', 'ChampionChallengerEvaluation', 'GLOBAL', 'WEEKLY', 'EVALUATION_ONLY', 'q-evaluation', 1, true, now() + interval '1 day', interval '7 days', 'Quant/Risk', 'QA/InvestmentCommittee'), +('e4100000-0000-4000-8000-000000000019', 'J19', 'FrozenOosBacktest', 'GLOBAL', 'MONTHLY', 'EVALUATION_ONLY', 'q-research', 1, true, now() + interval '7 days', interval '31 days', 'Quant/Data', 'QA/Risk'), +('e4100000-0000-4000-8000-000000000020', 'J20', 'RobustnessPboDsrRun', 'GLOBAL', 'QUARTERLY', 'EVALUATION_ONLY', 'q-research', 1, true, now() + interval '30 days', interval '95 days', 'Quant/Risk', 'IndependentValidation'), +('e4100000-0000-4000-8000-000000000021', 'J21', 'ModelImprovementProposalBuild', 'GLOBAL', 'MONTHLY', 'PROPOSAL_ONLY', 'q-research', 1, true, now() + interval '14 days', interval '31 days', 'Quant Lead', 'Risk/Architect'), +('e4100000-0000-4000-8000-000000000022', 'J22', 'PromotionEvidenceReviewBuild', 'GLOBAL', 'MONTHLY', 'PROPOSAL_ONLY', 'q-control', 1, true, now() + interval '21 days', interval '31 days', 'Risk/InvestmentCommittee', 'Compliance/QA'), +('e4100000-0000-4000-8000-000000000023', 'J23', 'ModelRollbackDrill', 'GLOBAL', 'QUARTERLY', 'DRILL_ONLY', 'q-control', 1, true, now() + interval '45 days', interval '95 days', 'SRE/Risk', 'Module Owner/QA'), +('e4100000-0000-4000-8000-000000000024', 'J24', 'DataRevisionRevalidation', 'GLOBAL', 'WEEKLY', 'EVALUATION_ONLY', 'q-backfill', 1, true, now() + interval '2 days', interval '7 days', 'Data/Quant', 'DBA/QA') +on conflict (operation_code, scope_key, schedule_version) do nothing; diff --git a/db/migrations/0017_execution_assurance.sql b/db/migrations/0017_execution_assurance.sql new file mode 100644 index 00000000..7992b5d2 --- /dev/null +++ b/db/migrations/0017_execution_assurance.sql @@ -0,0 +1,137 @@ +-- v12.5 execution assurance delta. +-- This migration adds evidence and scheduling metadata only. It does not enable automatic model mutation, +-- client publication, broker submission or model promotion. + +-- Fail closed after upgrade. Each schedule must be enabled by an approved operational change. +update evaluation.model_operation_schedule +set enabled = false, + updated_at = now(), + last_error_code = 'V12_5_REAPPROVAL_REQUIRED' +where schedule_version = 1 + and operation_code in ('J10','J11','J17','J18','J19','J20','J21','J22','J23','J24'); + +alter table evaluation.model_operation_schedule + add column if not exists calendar_id text not null default 'GLOBAL_UTC', + add column if not exists due_policy text not null default 'FIXED_CADENCE', + add column if not exists dependency_json jsonb not null default '[]'::jsonb, + add column if not exists catch_up_policy text not null default 'LATEST_ONLY', + add column if not exists max_catch_up integer not null default 1 check (max_catch_up between 0 and 31), + add column if not exists business_hold_code text null; + +create table if not exists evaluation.model_operation_artifact ( + artifact_id uuid primary key, + request_id uuid not null references evaluation.model_operation_request(request_id), + artifact_type text not null, + artifact_uri text not null, + content_hash text not null, + media_type text not null, + evidence_class text not null check (evidence_class in ('SOURCE', 'RUNTIME', 'RESEARCH', 'RELEASE', 'AUDIT')), + produced_by text not null, + produced_at timestamptz not null, + retention_until timestamptz null, + created_at timestamptz not null default now(), + unique (request_id, artifact_type, content_hash) +); + +create table if not exists evaluation.model_operation_dependency_result ( + dependency_result_id uuid primary key, + request_id uuid not null references evaluation.model_operation_request(request_id), + dependency_code text not null, + result text not null check (result in ('PASS', 'WARN', 'HOLD', 'FAIL')), + evidence_hash text not null, + checked_at timestamptz not null, + unique (request_id, dependency_code, evidence_hash) +); + +create table if not exists governance.release_evidence_bundle ( + bundle_id uuid primary key, + release_version text not null, + source_manifest_hash text not null, + build_artifact_hash text null, + test_artifact_hash text null, + migration_artifact_hash text null, + security_artifact_hash text null, + rollback_artifact_hash text null, + decision_log_hash text not null, + status text not null check (status in ('DRAFT', 'REVIEW_REQUIRED', 'APPROVED', 'REJECTED', 'EXPIRED')), + maker_id text not null, + checker_id text null, + created_at timestamptz not null, + decided_at timestamptz null, + content_hash text not null unique, + check (status not in ('APPROVED', 'REJECTED') or (checker_id is not null and checker_id <> maker_id and decided_at is not null)) +); + +create table if not exists governance.source_contract_snapshot ( + snapshot_id uuid primary key, + source_code text not null, + schema_version text not null, + license_version text not null, + sla_version text not null, + timezone_contract text not null, + unit_contract text not null, + content_hash text not null unique, + status text not null check (status in ('PROPOSED', 'APPROVED', 'RETIRED', 'QUARANTINED')), + effective_from timestamptz null, + approved_by text null, + approved_at timestamptz null, + created_at timestamptz not null default now() +); + +create table if not exists governance.execution_assurance_decision ( + decision_id uuid primary key, + decision_code text not null, + scope_key text not null, + decision_version integer not null check (decision_version > 0), + status text not null check (status in ('DECISION_REQUIRED', 'APPROVED', 'REJECTED', 'SUPERSEDED', 'EXPIRED')), + statement text not null, + basis_json jsonb not null, + owner text not null, + approved_by text null, + approved_at timestamptz null, + expires_at timestamptz null, + content_hash text not null, + created_at timestamptz not null default now(), + unique (decision_code, scope_key, decision_version), + unique (content_hash) +); + +-- Append-only operational evidence. +drop trigger if exists model_operation_artifact_append_only on evaluation.model_operation_artifact; +create trigger model_operation_artifact_append_only +before update or delete on evaluation.model_operation_artifact +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists model_operation_dependency_result_append_only on evaluation.model_operation_dependency_result; +create trigger model_operation_dependency_result_append_only +before update or delete on evaluation.model_operation_dependency_result +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists release_evidence_bundle_append_only on governance.release_evidence_bundle; +create trigger release_evidence_bundle_append_only +before update or delete on governance.release_evidence_bundle +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists source_contract_snapshot_append_only on governance.source_contract_snapshot; +create trigger source_contract_snapshot_append_only +before update or delete on governance.source_contract_snapshot +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists execution_assurance_decision_append_only on governance.execution_assurance_decision; +create trigger execution_assurance_decision_append_only +before update or delete on governance.execution_assurance_decision +for each row execute function building_blocks.prevent_append_only_change(); + +-- Additional checks are seeded disabled. They may be enabled only after their source/calendar/SLO contracts are approved. +insert into evaluation.model_operation_schedule +(schedule_id, operation_code, operation_name, scope_key, cadence, automation_mode, queue_name, + schedule_version, enabled, next_due_at, max_lag, primary_owner, secondary_owner, + calendar_id, due_policy, dependency_json, catch_up_policy, max_catch_up) +values +('e4100000-0000-4000-8000-000000000025', 'J25', 'SourceContractDriftCheck', 'GLOBAL', 'DAILY', 'EVALUATION_ONLY', 'q-evaluation', 1, false, now() + interval '1 day', interval '1 day', 'Data Governance', 'Adapter Owner/QA', 'GLOBAL_UTC', 'FIXED_CADENCE', '["SOURCE_CONTRACT_APPROVED"]', 'LATEST_ONLY', 1), +('e4100000-0000-4000-8000-000000000026', 'J26', 'MarketCalendarCompletenessCheck', 'GLOBAL', 'DAILY', 'EVALUATION_ONLY', 'q-market-data', 1, false, now() + interval '1 day', interval '1 day', 'Data/Ops', 'Quant/QA', 'APPROVED_MARKET_CALENDAR', 'TRADING_SESSION', '["MARKET_CALENDAR_APPROVED","SOURCE_COMPLETE"]', 'LATEST_ONLY', 1), +('e4100000-0000-4000-8000-000000000027', 'J27', 'EvidenceChainAudit', 'GLOBAL', 'DAILY', 'EVALUATION_ONLY', 'q-control', 1, false, now() + interval '1 day', interval '1 day', 'Compliance/QA', 'Data/BE', 'GLOBAL_UTC', 'FIXED_CADENCE', '["AUDIT_LEDGER_READY"]', 'LATEST_ONLY', 1), +('e4100000-0000-4000-8000-000000000028', 'J28', 'ProjectionFreshnessCheck', 'GLOBAL', 'DAILY', 'EVALUATION_ONLY', 'q-evaluation', 1, false, now() + interval '1 day', interval '1 day', 'BE/Data', 'SRE/QA', 'GLOBAL_UTC', 'FIXED_CADENCE', '["PROJECTION_CONTRACT_APPROVED"]', 'LATEST_ONLY', 1), +('e4100000-0000-4000-8000-000000000029', 'J29', 'CapacitySlaTrend', 'GLOBAL', 'WEEKLY', 'EVALUATION_ONLY', 'q-control', 1, false, now() + interval '7 days', interval '7 days', 'SRE/PM', 'DBA/Module Owner', 'GLOBAL_UTC', 'FIXED_CADENCE', '["SLO_APPROVED","VOLUME_ASSUMPTION_APPROVED"]', 'LATEST_ONLY', 1), +('e4100000-0000-4000-8000-000000000030', 'J30', 'ReleaseEvidenceAssemble', 'GLOBAL', 'EVENT_DRIVEN', 'PROPOSAL_ONLY', 'q-control', 1, false, now() + interval '365 days', interval '365 days', 'QA/Release Manager', 'Compliance/SRE', 'GLOBAL_UTC', 'EVENT', '["BUILD_GREEN","TEST_GREEN","MIGRATION_GREEN","SECURITY_GREEN","ROLLBACK_READY"]', 'NONE', 0) +on conflict (operation_code, scope_key, schedule_version) do nothing; diff --git a/db/migrations/0018_v13_model_feedback_loop.sql b/db/migrations/0018_v13_model_feedback_loop.sql new file mode 100644 index 00000000..5a8c9332 --- /dev/null +++ b/db/migrations/0018_v13_model_feedback_loop.sql @@ -0,0 +1,73 @@ +-- v13.0 continuous model feedback loop. All schedules are inserted disabled and are evidence/proposal only. +create table if not exists evaluation.prediction_freeze ( + prediction_freeze_id uuid primary key, + portfolio_scope text not null, + market_session date not null, + as_of timestamptz not null, + dataset_id text not null, + model_version text not null, + config_version text not null, + code_sha text not null, + contract_version text not null, + content_hash text not null unique, + frozen_at timestamptz not null default now(), + unique (portfolio_scope, market_session, model_version, content_hash) +); +create table if not exists evaluation.evaluation_window_maturity ( + maturity_id uuid primary key, + decision_id uuid not null, + window_sessions integer not null check (window_sessions in (1,5,20,63,126,252)), + due_session date not null, + maturity_revision integer not null check (maturity_revision > 0), + status text not null check (status in ('PENDING','MATURED','HELD_DATA','EVALUATED','SUPERSEDED')), + dataset_id text not null, + supersedes_maturity_id uuid null references evaluation.evaluation_window_maturity(maturity_id), + content_hash text not null unique, + created_at timestamptz not null default now(), + check (supersedes_maturity_id is null or supersedes_maturity_id <> maturity_id), + unique (decision_id, window_sessions, dataset_id, maturity_revision) +); +create table if not exists governance.model_improvement_hypothesis ( + hypothesis_id uuid primary key, + model_version text not null, + hypothesis_version integer not null check (hypothesis_version > 0), + problem_statement text not null, + evidence_json jsonb not null, + proposed_change text not null, + expected_effect text not null, + falsification_test text not null, + non_goals text not null, + status text not null check (status in ('DRAFT','REVIEW_REQUIRED','APPROVED_FOR_EXPERIMENT','REJECTED','SUPERSEDED','EXPIRED')), + maker_id text not null, + checker_id text null, + supersedes_hypothesis_id uuid null references governance.model_improvement_hypothesis(hypothesis_id), + expires_at timestamptz not null, + content_hash text not null unique, + created_at timestamptz not null default now(), + decided_at timestamptz null, + check (supersedes_hypothesis_id is null or supersedes_hypothesis_id <> hypothesis_id), + check (status not in ('APPROVED_FOR_EXPERIMENT','REJECTED') or (checker_id is not null and checker_id <> maker_id and decided_at is not null)), + unique (model_version, hypothesis_version) +); + +drop trigger if exists prediction_freeze_append_only on evaluation.prediction_freeze; +create trigger prediction_freeze_append_only before update or delete on evaluation.prediction_freeze for each row execute function building_blocks.prevent_append_only_change(); +drop trigger if exists evaluation_window_maturity_append_only on evaluation.evaluation_window_maturity; +create trigger evaluation_window_maturity_append_only before update or delete on evaluation.evaluation_window_maturity for each row execute function building_blocks.prevent_append_only_change(); +drop trigger if exists model_improvement_hypothesis_append_only on governance.model_improvement_hypothesis; +create trigger model_improvement_hypothesis_append_only before update or delete on governance.model_improvement_hypothesis for each row execute function building_blocks.prevent_append_only_change(); + +insert into evaluation.model_operation_schedule +(schedule_id, operation_code, operation_name, scope_key, cadence, automation_mode, queue_name, + schedule_version, enabled, next_due_at, max_lag, primary_owner, secondary_owner, + calendar_id, due_policy, dependency_json, catch_up_policy, max_catch_up) +values +('e4100000-0000-4000-8000-000000000031','J31','PredictionFreezeRun','GLOBAL','DAILY','EVALUATION_ONLY','q-evaluation',2,false,now()+interval '1 day',interval '1 day','Quant/Data','QA/Risk','APPROVED_MARKET_CALENDAR','TRADING_SESSION','["PIT_CONTEXT_APPROVED","MODEL_CONTEXT_APPROVED"]','LATEST_ONLY',1), +('e4100000-0000-4000-8000-000000000032','J32','OutcomeMaturitySweep','GLOBAL','DAILY','EVALUATION_ONLY','q-evaluation',2,false,now()+interval '1 day',interval '1 day','Quant/Ops','Data/QA','APPROVED_MARKET_CALENDAR','TRADING_SESSION','["TOTAL_RETURN_COMPLETE","CALENDAR_APPROVED"]','BOUNDED',7), +('e4100000-0000-4000-8000-000000000033','J33','SellReentryAttributionReview','GLOBAL','WEEKLY','EVALUATION_ONLY','q-evaluation',2,false,now()+interval '7 days',interval '7 days','Quant/Risk','Advisor/QA','GLOBAL_UTC','FIXED_CADENCE','["OUTCOME_MATURED","METRIC_CONTRACT_APPROVED"]','LATEST_ONLY',1), +('e4100000-0000-4000-8000-000000000034','J34','CalibrationRegimeReview','GLOBAL','WEEKLY','EVALUATION_ONLY','q-evaluation',2,false,now()+interval '7 days',interval '7 days','Quant/Risk','Data/IndependentValidation','GLOBAL_UTC','FIXED_CADENCE','["COHORT_VERSION_APPROVED","REGIME_DEFINITION_APPROVED"]','LATEST_ONLY',1), +('e4100000-0000-4000-8000-000000000035','J35','ImprovementHypothesisBuild','GLOBAL','MONTHLY','PROPOSAL_ONLY','q-research',2,false,now()+interval '30 days',interval '30 days','Quant Lead','Risk/Architect','GLOBAL_UTC','FIXED_CADENCE','["SCORECARD_COMPLETE","ATTRIBUTION_COMPLETE","DEBT_REGISTER_CURRENT"]','LATEST_ONLY',1), +('e4100000-0000-4000-8000-000000000036','J36','ChallengerExperimentPlan','GLOBAL','MONTHLY','PROPOSAL_ONLY','q-research',2,false,now()+interval '30 days',interval '30 days','Quant Lead','IndependentValidation/QA','GLOBAL_UTC','FIXED_CADENCE','["HYPOTHESIS_APPROVED_FOR_EXPERIMENT","EXPERIMENT_REGISTRY_READY"]','LATEST_ONLY',1), +('e4100000-0000-4000-8000-000000000037','J37','IndependentValidationPack','GLOBAL','QUARTERLY','PROPOSAL_ONLY','q-control',2,false,now()+interval '90 days',interval '90 days','IndependentValidation','Risk/Compliance','GLOBAL_UTC','FIXED_CADENCE','["OOS_COMPLETE","PBO_DSR_COMPLETE","REPRODUCIBILITY_COMPLETE"]','LATEST_ONLY',1), +('e4100000-0000-4000-8000-000000000038','J38','ModelPolicyDebtReview','GLOBAL','MONTHLY','PROPOSAL_ONLY','q-control',2,false,now()+interval '30 days',interval '30 days','Risk/Architect','Quant/PM','GLOBAL_UTC','FIXED_CADENCE','["DEBT_REGISTER_CURRENT","INCIDENT_REVIEW_COMPLETE"]','LATEST_ONLY',1) +on conflict (operation_code, scope_key, schedule_version) do nothing; diff --git a/db/migrations/0019_v14_governed_feedback_cycle.sql b/db/migrations/0019_v14_governed_feedback_cycle.sql new file mode 100644 index 00000000..78871e99 --- /dev/null +++ b/db/migrations/0019_v14_governed_feedback_cycle.sql @@ -0,0 +1,97 @@ +-- v14.0 governed feedback-cycle delta. +-- This migration formalizes evidence-to-hypothesis-to-independent-validation history. +-- It does not enable automatic model activation, client publication, automatic order submission or KIS submission. + +create table if not exists evaluation.model_feedback_cycle ( + cycle_id uuid primary key, + scope_key text not null, + base_model_version text not null, + state text not null check (state in ( + 'PLANNED','PREDICTION_FROZEN','OUTCOMES_MATURING','EVALUATED','IMPROVEMENT_PROPOSED', + 'CHALLENGER_PLANNED','INDEPENDENTLY_VALIDATED','PROMOTION_REVIEW_PENDING','BUSINESS_HOLD','CLOSED')), + revision integer not null check (revision > 0), + started_at timestamptz not null, + closed_at timestamptz null, + last_evidence_hash text not null, + updated_at timestamptz not null, + check ((state = 'CLOSED') = (closed_at is not null)) +); + +create index if not exists ix_model_feedback_cycle_scope_state + on evaluation.model_feedback_cycle (scope_key, state, updated_at desc); + +create table if not exists evaluation.model_feedback_transition ( + transition_id uuid primary key, + cycle_id uuid not null references evaluation.model_feedback_cycle(cycle_id), + sequence_no integer not null check (sequence_no > 0), + from_state text not null, + to_state text not null, + reason_code text not null, + evidence_hash text not null, + actor_id text not null, + actor_type text not null check (actor_type in ('SYSTEM','OPERATOR','INDEPENDENT_VALIDATOR','INVESTMENT_COMMITTEE')), + correlation_id text not null, + occurred_at timestamptz not null, + content_hash text not null unique, + unique (cycle_id, sequence_no) +); + +create table if not exists governance.model_hypothesis_evidence ( + hypothesis_evidence_id uuid primary key, + hypothesis_id uuid not null references governance.model_improvement_hypothesis(hypothesis_id), + side text not null check (side in ('SUPPORTING','COUNTER')), + classification text not null check (classification in ('SOURCE','ASSUMPTION','UNKNOWN','DECISION_REQUIRED')), + reference_code text not null, + statement text not null, + content_hash text not null, + created_at timestamptz not null default now(), + unique (hypothesis_id, side, reference_code, content_hash) +); + +create table if not exists governance.model_activation_decision ( + activation_decision_id uuid primary key, + scope_key text not null, + candidate_model_version text not null, + promotion_review_id uuid not null references governance.model_promotion_review(review_id), + decision text not null check (decision in ('KEEP_CURRENT_CHAMPION','ACTIVATE_FOR_SHADOW','ACTIVATE_FOR_PILOT','REJECT','EXPIRE')), + effective_at timestamptz null, + rollback_model_version text not null, + maker_id text not null, + checker_id text not null, + actor_type text not null check (actor_type = 'HUMAN_CHANGE_APPROVAL'), + change_ticket text not null, + evidence_bundle_hash text not null, + content_hash text not null unique, + decided_at timestamptz not null, + check (maker_id <> checker_id), + check (decision not in ('ACTIVATE_FOR_SHADOW','ACTIVATE_FOR_PILOT') or effective_at is not null) +); + +-- Immutable evidence. The cycle aggregate itself remains mutable only through optimistic application logic; +-- every transition is captured here and cannot be edited or deleted. +drop trigger if exists model_feedback_transition_append_only on evaluation.model_feedback_transition; +create trigger model_feedback_transition_append_only +before update or delete on evaluation.model_feedback_transition +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists model_hypothesis_evidence_append_only on governance.model_hypothesis_evidence; +create trigger model_hypothesis_evidence_append_only +before update or delete on governance.model_hypothesis_evidence +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists model_activation_decision_append_only on governance.model_activation_decision; +create trigger model_activation_decision_append_only +before update or delete on governance.model_activation_decision +for each row execute function building_blocks.prevent_append_only_change(); + +comment on table governance.model_activation_decision is +'Human-only activation decision. Scheduler, Hangfire worker and proposal jobs must not insert into this table.'; + +-- Integrity audit is disabled until cycle aging, ownership and alert contracts are approved. +insert into evaluation.model_operation_schedule +(schedule_id, operation_code, operation_name, scope_key, cadence, automation_mode, queue_name, + schedule_version, enabled, next_due_at, max_lag, primary_owner, secondary_owner, + calendar_id, due_policy, dependency_json, catch_up_policy, max_catch_up) +values +('e4100000-0000-4000-8000-000000000039','J39','FeedbackCycleIntegrityAudit','GLOBAL','DAILY','EVALUATION_ONLY','q-control',1,false,now()+interval '1 day',interval '1 day','Compliance/QA','Quant/SRE','GLOBAL_UTC','FIXED_CADENCE','["FEEDBACK_CYCLE_CONTRACT_APPROVED","AGING_POLICY_APPROVED"]','LATEST_ONLY',1) +on conflict (operation_code, scope_key, schedule_version) do nothing; diff --git a/db/migrations/0020_v15_execution_and_ui_contract_hardening.sql b/db/migrations/0020_v15_execution_and_ui_contract_hardening.sql new file mode 100644 index 00000000..22468391 --- /dev/null +++ b/db/migrations/0020_v15_execution_and_ui_contract_hardening.sql @@ -0,0 +1,112 @@ +-- v15.0 execution-completeness delta. +-- Evidence evaluation/proposal automation only. Automatic model activation, client publication, +-- automatic order submission and KIS submission remain forbidden. + +alter table evaluation.model_operation_schedule + add column if not exists dispatch_revision integer not null default 0 check (dispatch_revision >= 0), + add column if not exists anchor_at timestamptz null, + add column if not exists timezone_id text not null default 'UTC', + add column if not exists last_completed_at timestamptz null, + add column if not exists last_hold_code text null; + +update evaluation.model_operation_schedule +set anchor_at = coalesce(anchor_at, next_due_at) +where anchor_at is null; + +alter table evaluation.model_operation_request + add column if not exists execution_revision integer not null default 1 check (execution_revision > 0), + add column if not exists last_heartbeat_at timestamptz null, + add column if not exists hold_until timestamptz null, + add column if not exists status_reason_code text null, + add column if not exists scheduled_for timestamptz null; + +create table if not exists evaluation.prediction_evaluation_window ( + window_request_id uuid primary key, + prediction_evidence_id uuid not null, + scope_key text not null, + calendar_id text not null, + prediction_session date not null, + window_trading_days integer not null check (window_trading_days in (1,5,20,63,126,252)), + due_session date not null, + status text not null check (status in ('PLANNED','MATURED','EVALUATED','BUSINESS_HOLD','QUARANTINED')), + dataset_id text not null, + model_version text not null, + metric_definition_set_hash text not null, + content_hash text not null unique, + created_at timestamptz not null, + matured_at timestamptz null, + evaluated_at timestamptz null, + check (due_session >= prediction_session), + unique (prediction_evidence_id, window_trading_days, metric_definition_set_hash) +); + +create index if not exists ix_prediction_evaluation_window_due + on evaluation.prediction_evaluation_window (due_session, status, scope_key) + where status in ('PLANNED','BUSINESS_HOLD'); + +create table if not exists evaluation.metric_cohort_definition ( + cohort_code text not null, + definition_version integer not null check (definition_version > 0), + scope_expression text not null, + inclusion_expression text not null, + exclusion_expression text not null, + minimum_sample_size integer not null check (minimum_sample_size >= 0), + effective_from timestamptz not null, + effective_to timestamptz null, + status text not null check (status in ('PROPOSED','APPROVED','RETIRED')), + content_hash text not null unique, + approved_by text null, + approved_at timestamptz null, + primary key (cohort_code, definition_version), + check (effective_to is null or effective_to > effective_from), + check (status <> 'APPROVED' or (approved_by is not null and approved_at is not null)) +); + +create table if not exists governance.ui_contract_release ( + ui_contract_release_id uuid primary key, + contract_version text not null, + provider_id text not null, + provider_version text not null, + capability_hash text not null, + screen_template_hash text not null, + accessibility_evidence_hash text not null, + visual_regression_hash text null, + performance_evidence_hash text null, + status text not null check (status in ('PROPOSED','APPROVED','RETIRED')), + approved_by text null, + approved_at timestamptz null, + created_at timestamptz not null default now(), + content_hash text not null unique, + unique (contract_version, provider_id, provider_version), + check (status <> 'APPROVED' or (approved_by is not null and approved_at is not null)) +); + +-- Evaluation windows, cohort definitions and UI contract approvals are immutable evidence. +drop trigger if exists prediction_evaluation_window_append_only on evaluation.prediction_evaluation_window; +create trigger prediction_evaluation_window_append_only +before update or delete on evaluation.prediction_evaluation_window +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists metric_cohort_definition_append_only on evaluation.metric_cohort_definition; +create trigger metric_cohort_definition_append_only +before update or delete on evaluation.metric_cohort_definition +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists ui_contract_release_append_only on governance.ui_contract_release; +create trigger ui_contract_release_append_only +before update or delete on governance.ui_contract_release +for each row execute function building_blocks.prevent_append_only_change(); + +comment on table evaluation.prediction_evaluation_window is +'Immutable 1/5/20/63/126/252 trading-session maturity plan. Revisions create new evidence rows.'; +comment on table governance.ui_contract_release is +'Approved normalized UI contract/provider evidence. It does not authorize feature behavior or investment decisions.'; + +-- Integrity audit remains disabled until approved calendar/cohort definitions and alert runbook exist. +insert into evaluation.model_operation_schedule +(schedule_id, operation_code, operation_name, scope_key, cadence, automation_mode, queue_name, + schedule_version, enabled, next_due_at, max_lag, primary_owner, secondary_owner, + calendar_id, due_policy, dependency_json, catch_up_policy, max_catch_up, anchor_at, timezone_id) +values +('e4100000-0000-4000-8000-000000000040','J40','EvaluationWindowIntegrityAudit','GLOBAL','DAILY','EVALUATION_ONLY','q-control',1,false,now()+interval '1 day',interval '1 day','Quant/QA','Data/SRE','GLOBAL_UTC','FIXED_CADENCE','["TRADING_CALENDAR_APPROVED","METRIC_COHORT_APPROVED"]','LATEST_ONLY',1,now()+interval '1 day','UTC') +on conflict (operation_code, scope_key, schedule_version) do nothing; diff --git a/db/migrations/0021_v16_reference_implementation_closure.sql b/db/migrations/0021_v16_reference_implementation_closure.sql new file mode 100644 index 00000000..19b4943b --- /dev/null +++ b/db/migrations/0021_v16_reference_implementation_closure.sql @@ -0,0 +1,87 @@ +-- v16.0 reference implementation closure. +-- Evaluation/proposal/audit only. Automatic model activation, customer publication, +-- automatic order submission and KIS submission remain forbidden. + +create table if not exists evaluation.model_operation_lease ( + operation_code text not null, + scope_key text not null, + fencing_token bigint not null check (fencing_token > 0), + lease_owner text not null, + acquired_at timestamptz not null, + expires_at timestamptz not null, + heartbeat_at timestamptz not null, + dispatch_revision integer not null check (dispatch_revision >= 0), + primary key (operation_code, scope_key), + check (expires_at > acquired_at), + check (heartbeat_at >= acquired_at) +); + +create table if not exists evaluation.model_evaluation_reconciliation ( + reconciliation_id uuid primary key, + prediction_evidence_id uuid not null, + window_trading_days integer not null check (window_trading_days in (1,5,20,63,126,252)), + action text not null check (action in ('NONE','PLAN_MISSING','QUARANTINE_DUPLICATE','BUSINESS_HOLD_LATE','RECALCULATE_REVISION')), + metric_definition_set_hash text not null, + cohort_definition_hash text not null, + dataset_id text not null, + source_revision_hash text not null, + reason_code text not null, + content_hash text not null unique, + created_at timestamptz not null, + unique (prediction_evidence_id, window_trading_days, content_hash) +); + +create table if not exists building_blocks.projection_rebuild_request ( + rebuild_request_id uuid primary key, + projection_name text not null, + requested_version integer not null check (requested_version > 0), + source_watermark text not null, + requested_by text not null, + reason_code text not null, + status text not null check (status in ('REQUESTED','RUNNING','SUCCEEDED','FAILED','QUARANTINED')), + before_hash text null, + after_hash text null, + requested_at timestamptz not null, + completed_at timestamptz null, + content_hash text not null unique, + check (completed_at is null or completed_at >= requested_at) +); + +create table if not exists governance.ui_adapter_compatibility_evidence ( + compatibility_evidence_id uuid primary key, + contract_version text not null, + provider_id text not null, + provider_version text not null, + capability_hash text not null, + contract_test_hash text not null, + accessibility_test_hash text not null, + visual_test_hash text null, + performance_test_hash text null, + rollback_test_hash text null, + status text not null check (status in ('PROPOSED','APPROVED','REJECTED','RETIRED')), + approved_by text null, + approved_at timestamptz null, + created_at timestamptz not null, + content_hash text not null unique, + check (status <> 'APPROVED' or (approved_by is not null and approved_at is not null)) +); + +drop trigger if exists model_evaluation_reconciliation_append_only on evaluation.model_evaluation_reconciliation; +create trigger model_evaluation_reconciliation_append_only before update or delete on evaluation.model_evaluation_reconciliation +for each row execute function building_blocks.prevent_append_only_change(); + +drop trigger if exists ui_adapter_compatibility_evidence_append_only on governance.ui_adapter_compatibility_evidence; +create trigger ui_adapter_compatibility_evidence_append_only before update or delete on governance.ui_adapter_compatibility_evidence +for each row execute function building_blocks.prevent_append_only_change(); + +insert into evaluation.model_operation_schedule +(schedule_id, operation_code, operation_name, scope_key, cadence, automation_mode, queue_name, + schedule_version, enabled, next_due_at, max_lag, primary_owner, secondary_owner, + calendar_id, due_policy, dependency_json, catch_up_policy, max_catch_up, anchor_at, timezone_id) +values +('e4100000-0000-4000-8000-000000000041','J41','SchedulerLeaseIntegrityAudit','GLOBAL','DAILY','EVALUATION_ONLY','q-control',1,false,now()+interval '1 day',interval '1 day','SRE/QA','BE/DBA','GLOBAL_UTC','FIXED_CADENCE','["LEASE_CONTRACT_APPROVED","ALERT_RUNBOOK_APPROVED"]','LATEST_ONLY',1,now()+interval '1 day','UTC'), +('e4100000-0000-4000-8000-000000000042','J42','ModelEvaluationReconciliation','GLOBAL','DAILY','EVALUATION_ONLY','q-evaluation',1,false,now()+interval '1 day',interval '1 day','Quant/QA','Data/Risk','GLOBAL_UTC','FIXED_CADENCE','["TRADING_CALENDAR_APPROVED","METRIC_COHORT_APPROVED","SOURCE_REVISION_INDEX_READY"]','LATEST_ONLY',1,now()+interval '1 day','UTC') +on conflict (operation_code, scope_key, schedule_version) do nothing; + +comment on table evaluation.model_operation_lease is 'Lease fencing prevents stale workers from advancing schedules or duplicating model evaluation side effects.'; +comment on table evaluation.model_evaluation_reconciliation is 'Append-only evaluation repair plan. It never activates a model or submits an order.'; diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..18f272d0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +services: + postgres: + image: postgres:17 + environment: + POSTGRES_DB: kartsell + POSTGRES_USER: kartsell + POSTGRES_PASSWORD: kartsell + ports: + - "5432:5432" + volumes: + - kartsell_postgres:/var/lib/postgresql/data + +volumes: + kartsell_postgres: diff --git a/docs/00_EXECUTIVE_PROPOSAL.md b/docs/00_EXECUTIVE_PROPOSAL.md new file mode 100644 index 00000000..ccdd2d67 --- /dev/null +++ b/docs/00_EXECUTIVE_PROPOSAL.md @@ -0,0 +1,45 @@ +# 00. 경영진·아키텍처 최종 제안 + +## 1. 결론 + +기존 v10.0의 방향은 옳다. 다만 본프로그램 착수 전에 해야 할 일은 기능을 더 추가하는 것이 아니라 **연구 코드와 생산 코드의 경계를 확실히 나누고, 데이터·알고리즘·승인·평가를 하나의 반복 가능한 Vertical Slice로 연결하는 것**이다. + +실행 우선순위는 다음과 같다. + +1. **연구 재현성 복구**: 원시 데이터 manifest, 환경 lock, 실행 인자, artifact hash +2. **알고리즘 상태기계 정공법 전환**: scalar position이 아닌 Lot/Cycle 단위 +3. **데이터 정합성 Gate**: PIT·기업행사·총수익·비용·상폐·FX +4. **BE Walking Skeleton**: Evidence → SellDecision → ReentryWatch → Review → Outcome +5. **FE 업무화면**: Query/Error/Auth/State Matrix를 먼저 표준화 +6. **Shadow 운영**: 일평가와 false-exit·재진입 포착·대사·DR 검증 + +## 2. 과유불급 기준 + +| 영역 | 해야 할 것 | 하지 말아야 할 것 | +|---|---|---| +| 아키텍처 | Modular Monolith, schema ownership, Architecture Test | 초기 Microservice 분리 | +| SOLID | Policy·Adapter·Validator 책임 분리 | Interface·Factory·Repository 남발 | +| 공통화 | 의미·상태·변경축이 2회 이상 반복될 때 승격 | 한 번 쓰는 추상화 | +| 데이터 | 정규화된 Write Model, 재생성 가능한 Read Model | 화면 편의를 위한 Source Table 직접 Join | +| 알고리즘 | 순수 결정함수, 상태기계, Golden test | 복잡한 종합점수 하나로 모든 위험 상쇄 | +| FE | TanStack Query가 서버상태 소유 | Pinia에 API 응답 복제 | +| Batch | Job은 오케스트레이션만 | Hangfire Job에 정책·SQL·HTTP 혼합 | +| AI 코딩 | Source/Assumption/Unknown + 실행 증거 | 대화만 근거로 정책·컬럼·임계값 생성 | + +## 3. 운영사급 Done의 정의 + +기능이 화면에서 보이는 것으로 끝나지 않는다. 아래가 모두 있어야 Done이다. + +- Requirement/Policy/Data/API/DB/Event/Job/UI/Test/Metric/Runbook 추적 +- 같은 입력·Version Set으로 같은 결과 재현 +- 부분실패·중복·재처리·만료·권한·동시성 검증 +- 고객 공개 전 maker-checker와 Evidence hash 보존 +- Secondary 운영자의 rollback/replay 리허설 +- 기술부채 Owner와 만료일 + +## 4. 권고 조직 운영 + +- Sprint capacity의 15%를 데이터·기술부채·재현성 개선에 고정한다. +- 알고리즘 변경 PR과 구조 리팩터링 PR을 분리한다. +- Quant 승인 없는 Golden 변경, DBA 승인 없는 PIT/DDL 변경, 준법 승인 없는 공개 문구 변경을 병합하지 않는다. +- Production 승격과 투자일임형 검토는 적중률이 아니라 장기 비용후 효용과 운영 무결성의 복합 Gate로 결정한다. diff --git a/docs/01_SOURCE_AUDIT.md b/docs/01_SOURCE_AUDIT.md new file mode 100644 index 00000000..f4594cf8 --- /dev/null +++ b/docs/01_SOURCE_AUDIT.md @@ -0,0 +1,53 @@ +# 01. 첨부 연구 소스 정량·구조 감사 + +## A. 즉시 조치 P0 + +| ID | 소스 관찰 | 영향 | 조치 | +|---|---|---|---| +| SRC-P0-01 | 원시 가격데이터와 실행환경 lock이 번들에 없음 | 제3자가 결과를 완전 재현할 수 없음 | Data Manifest, checksum, Python lock, container image digest를 Evidence Pack에 포함 | +| SRC-P0-02 | `v12_positions()`가 전체 보유를 하나의 `entry/peak/floor`로 관리하고 재진입 시 모두 reset | 기존 Core lot과 신규 tactical lot의 사이클이 다시 혼합됨 | `PositionLot`·`CycleState`별 보호선과 재진입 생성 | +| SRC-P0-03 | KR corporate action을 근사 정수비율로 과거 전체에 소급 조정 | 공식 기업행사와 다를 경우 수익·ATR·보호선 왜곡 | 공식 CA master 우선, 추정값은 QUARANTINED evidence로만 사용 | +| SRC-P0-04 | 총수익·PIT 재무·상폐·세금·FX가 없음 | 생산 매도·기대효용 판단 불가 | 가격정책 연구로 한정, 생산 승격 차단 | +| SRC-P0-05 | `portfolio_backtest()`의 overlay 비용이 전역 US 7bps로 고정 | KR 자본바닥 결과의 비용 라벨과 실제 계산 불일치 | 비용을 함수 인자로 강제하고 FeeSchedule PIT로 전환 | + +## B. P1 리팩터링 + +| ID | 관찰 | 개선 | +|---|---|---| +| SRC-P1-01 | `v11_positions`, `v12_positions`, `positions_fast`에 정책 로직 중복 | 단일 Policy Core와 vectorized adapter 분리 | +| SRC-P1-02 | `giveback_cap_v12()`가 정의돼 있으나 실제 v12 계산은 `giveback_cap_v11()` 사용 | dead code 제거 또는 정책 ID와 Golden으로 의도 명시 | +| SRC-P1-03 | `core_floor()`와 별도 `min_pos` literal map이 중복 | YAML→typed config→single resolver | +| SRC-P1-04 | `ROOT=/mnt/data`, FILES global, import 시 output directory 생성 | CLI/config 주입, library와 runner 분리 | +| SRC-P1-05 | Data quality 함수가 global file을 재읽음 | raw input과 canonical input을 명시적으로 전달 | +| SRC-P1-06 | 거래일 결측을 calendar gap으로만 판단 | MarketCalendar 기반 expected session 검증 | +| SRC-P1-07 | backtest cost는 신호일, exposure는 다음날 lag로 반영 | OrderIntent/Fill 시점으로 비용·수량·현금 정렬 | +| SRC-P1-08 | 동적 동일가중에서 종목 시작/종료에 따른 비중 변화 비용이 명시되지 않음 | UniverseEvent와 rebalance trade를 별도 모델링 | +| SRC-P1-09 | `false_exit_rate_63d`가 단순 63일 +10% 여부 | 매도비중·benchmark·비용·재진입을 반영한 FalseExitCost 정의 | +| SRC-P1-10 | 9개 local parameter grid만으로 robustness 판단 | CSCV/PBO, Deflated Sharpe, block bootstrap, walk-forward 확대 | + +## C. 유지할 요소 + +- 수익구간 이후 활성화되는 단조 보호선 +- 갭 이탈과 2종가 이탈의 부분매도 구분 +- 다음 거래가능 세션 execution lag +- 최소 10세션 재진입 대기와 50일선 상승·20일 고점 조건 +- 자본바닥 개념과 비용 스트레스 + +## D. 연구 코드 목표 구조 + +```text +research/ + pyproject.toml + lock + src/kartsell_research/ + data/ # loader, PIT calendar, CA adjustment + domain/ # pure policy contract shared with golden vectors + simulation/ # order/fill/cost/cash/universe + evaluation/ # metrics, false-exit, PBO/DSR + cli/ # no import-time side effects + manifests/ + fixtures/ + tests/ + artifacts//manifest.json +``` + +연구 Python과 .NET 생산 정책은 서로 호출하지 않는다. 대신 동일한 Golden input/output vector와 Policy ID를 공유해 의미 회귀를 검증한다. diff --git a/docs/02_ALGORITHM_REFACTORING.md b/docs/02_ALGORITHM_REFACTORING.md new file mode 100644 index 00000000..dcb00e70 --- /dev/null +++ b/docs/02_ALGORITHM_REFACTORING.md @@ -0,0 +1,96 @@ +# 02. 알고리즘 리팩터링·고도화 기준 + +## 1. 생산 모델 경계 + +생산 엔진은 수익률 최대화 함수가 아니라 다음의 순서가 보존된 **결정 상태기계**다. + +```text +HARD_IMPAIRMENT + → PORTFOLIO_SURVIVAL + → DYNAMIC_PROFIT_FLOOR + → CONCENTRATION_LIQUIDITY + → OPPORTUNITY_COST + → REENTRY_OPTION +``` + +상위 정책이 행동을 결정하면 하위 점수는 이를 상쇄하지 못한다. 모든 정책은 `PolicyId`, 입력 `EvidenceId`, `ModelVersion`, `ConfigVersion`, 허용오차와 반대증거를 남긴다. + +## 2. Scalar Position 제거 + +기존 `position: float` 하나로는 Core와 Tactical, 기존 lot과 재진입 lot을 분리할 수 없다. 다음 모델로 전환한다. + +```text +Portfolio + └─ PositionLot (원가·수량·개설/종료·세금 lot) + └─ CycleState (Entry, Peak, Floor, BreachCount, LastSell, LastBuy) + └─ ProtectionState / ReentryWatch +``` + +- 부분매도는 특정 Lot/Cycle에 귀속된다. +- 재진입은 새 `CycleId`와 새 Lot을 만든다. +- Strategic Core는 정책상 보호 대상 비중과 Tactical 비중을 분리한다. +- Hard Impairment는 자동 재진입을 금지한다. + +## 3. Functional Core / Imperative Shell + +**Pure Core** + +- `SellPolicyChain.Evaluate(input)` +- `ReentryPolicy.Evaluate(input)` +- `PortfolioConstraintPolicy.Evaluate(input)` +- `ExpectedUtilityCalculator.Calculate(input)` + +**Imperative Shell** + +- PIT data query +- transaction, Dapper SQL +- EvidenceSnapshot 저장 +- Outbox 발행 +- Hangfire schedule/retry +- SignalR/Telegram 통지 + +## 4. 기대효용 계산 분해 + +한 개의 opaque score 대신 구성요소를 별도로 저장한다. + +- Hold expected return distribution P10/P50/P90 +- ES95와 영구가치훼손 확률×LGD +- marginal portfolio risk +- liquidity/slippage/tax/FX +- replacement lower confidence edge +- reentry option loss + +Opportunity sell은 순우위의 신뢰하단이 0을 넘고 IPS·유동성·세금 제약을 통과할 때만 허용한다. + +## 5. 실행 시뮬레이션 + +- 결정: 시장 종가 후 +- 주문의도: 다음 거래가능 세션 +- Fill: open/VWAP/limit 모델 중 승인된 시나리오 +- 부분체결, gap, ADV participation, spread, FX, 세금, 수수료를 별도 이벤트로 기록 +- SignalDecision과 Fill은 분리해 추천 성과·실행 성과·고객 행동을 attribution한다. + +## 6. 일평가 + +일평가는 단타 적중률이 아니다. + +| 영역 | 핵심 | +|---|---| +| 운영 무결성 | duplicate, lookahead, DQ hold, 미승인 공개, reconciliation | +| 예측 | coverage, calibration, Brier/log loss | +| 매도 | ES/MDD 감소, permanent loss 회피, gain capture, false-exit cost | +| 재진입 | capture, delay cost, duplicate stage, expiry | +| 비용후 효용 | 20/63/126/252 거래일 | +| 모델리스크 | PBO, DSR, parameter stability, regime drift | + +## 7. 변경 규칙 + +임계값·수식·우선순위를 바꾸는 PR은 반드시 다음을 포함한다. + +1. Policy ID와 변경 사유 +2. Characterization/Golden diff +3. Frozen OOS와 cost×2 결과 +4. market/asset/regime별 영향 +5. false-exit·reentry·ES 영향 +6. ModelCard와 rollback 기준 +7. Quant/Risk 승인 diff --git a/docs/03_ARCHITECTURE_BE_FE.md b/docs/03_ARCHITECTURE_BE_FE.md new file mode 100644 index 00000000..c7b6bc6e --- /dev/null +++ b/docs/03_ARCHITECTURE_BE_FE.md @@ -0,0 +1,72 @@ +# 03. BE/FE 아키텍처 개선안 + +## 1. Modular Monolith 경계 + +- 단일 배포로 시작하되 module·PostgreSQL schema·namespace·API contract를 분리한다. +- 모듈은 다른 모듈의 Source Table을 직접 조회하지 않는다. +- 동기 의존은 좁은 Read Port, 비동기 결합은 Outbox/Inbox Event를 사용한다. +- Microservice 분리는 독립 SLO·배포·용량·소유팀이 실제로 필요할 때만 검토한다. + +## 2. Vertical Slice 표준 + +```text +Features// + Endpoint.cs + Request.cs / Response.cs + Validator.cs + Handler.cs + Policy.cs + Sql.cs / Mapper.cs + Jobs/ + Contracts/ + Tests/ + README.md # traceability +``` + +Endpoint는 HTTP, Handler는 use case/transaction, Policy는 순수 결정, Adapter는 외부 I/O만 담당한다. + +## 3. Dapper·DB 원칙 + +- Generic Repository 금지 +- schema-qualified SQL, 명시적 column, cancellation token +- Write는 3NF/append/revision, Read는 projection +- Evidence·Audit는 update/delete 차단 +- DbUp migration은 module별 순번·checksum·fresh/upgrade test +- SELECT `*` 금지, PIT query는 `published_at <= cutoff`와 revision resolver 필수 + +## 4. Hangfire + +Hangfire는 비즈니스 결정자가 아니라 승인된 Application Command의 반복 실행기다. + +- JobRunId, Scope, IdempotencyKey, Watermark, Version Set, Input/Output Hash +- transient/permanent/DQ/business-hold retry class 분리 +- q-research/q-backfill은 고객 SLA queue와 격리 +- Job이 다른 Job을 직접 호출하지 않고 Event 또는 readiness gate로 연결 +- 재처리는 overwrite가 아니라 새 Dataset/Revision 생성 + +## 5. FE 상태 소유권 + +| 상태 | 소유자 | +|---|---| +| API 서버상태·cache·stale·retry | TanStack Query | +| session·role·UI preference | Pinia | +| form | vee-validate + Zod | +| URL filter/selection | vue-router query/params | +| 대량 업무표 | AG Grid server row model | + +Pinia에 API 응답을 복제하거나, 화면마다 401/409/422/429/503 처리를 다시 만들지 않는다. + +## 6. FE 컴포넌트 승격 기준 + +공용 컴포넌트는 시각적 유사성이 아니라 동일한 업무 의미·상태·권한·접근성·테스트가 반복될 때만 만든다. + +필수 공통: `QueryStateBoundary`, `PermissionGuard`, `DataGridShell`, `CrudForm`, `VersionConflictDialog`, `DataFreshnessBadge`. + +도메인 공통: `EvidencePanel`, `ProtectionFloorPanel`, `ReentryTimeline`, `ApprovalPanel`, `VersionSetPanel`, `GateChecklist`. + +## 7. 관측성 + +- HTTP/Job/SQL/Outbox를 correlationId·JobRunId·EvidenceId로 연결 +- Serilog structured logging, OpenTelemetry trace/metric +- PII·token·API key는 log/tag 금지 +- 운영 dashboard는 batch SLA, DQ quarantine, duplicate, recon break, model drift를 우선 표시 diff --git a/docs/04_WBS_V11.csv b/docs/04_WBS_V11.csv new file mode 100644 index 00000000..2597b4f7 --- /dev/null +++ b/docs/04_WBS_V11.csv @@ -0,0 +1,51 @@ +WBS_ID,Sprint,Workstream,Task,Deliverable,Done_Gate,Owner,PD,Dependency +R0.01,S0,Governance,Source/Assumption/Unknown registry 동결,docs/source_registry.csv,미확정 기본값 0,PM/Architect,3,- +R0.02,S0,Research,Python 환경·raw manifest·checksum 계약,research/pyproject.lock; manifests,동일 run artifact hash,Quant/Data,6,R0.01 +R0.03,S0,Research,현재 결과 characterization,golden/current/*.csv,기존 CSV metric diff 0,Quant/QA,6,R0.02 +R0.04,S0,Architecture,Solution/Module/Schema ownership 확정,ADR-001; module matrix,Architecture review,Architect/DBA,4,R0.01 +R0.05,S0,DevEx,.NET/FE skeleton·CI·lockfile,"solution, package lock, workflow",restore/build/test green,PL/DevOps,8,R0.04 +R0.06,S0,Observability,Correlation/OTel/Serilog walking skeleton,trace/log/metric smoke,HTTP→DB→Outbox trace,SRE/BE,5,R0.05 +ALG.01,S1,Algorithm,Policy input/output contract와 PolicyId registry,SignalPolicyContracts,Quant/Risk 승인,Quant/BE,6,R0.03 +ALG.02,S1,Algorithm,Lot/Cycle/Protection state model,"Domain/PositionLot,CycleState",invariant/property tests,BE/Quant,10,ALG.01 +ALG.03,S1,Algorithm,Hard impairment policy,HardImpairmentPolicy,하위정책 상쇄 0,BE/Quant/QA,6,ALG.01 +ALG.04,S1,Algorithm,Profit floor gap/two-close policy,ProfitFloorPolicies,boundary/monotonic tests,BE/Quant/QA,9,ALG.02 +ALG.05,S2,Algorithm,Reentry watch state machine,ReentryStateMachine,new Cycle/duplicate0/expiry,BE/Quant/QA,10,ALG.02 +ALG.06,S2,Algorithm,Expected utility components,ExpectedUtilityCalculator,decimal/CI/cost2x,Quant/BE,10,ALG.01 +ALG.07,S2,Algorithm,Portfolio survival/concentration overlay,PortfolioConstraintPolicies,caps/property tests,Quant/BE,10,ALG.02 +DATA.01,S1,Data,Source manifest/raw immutable schema,"raw_record,dataset_manifest",hash/revision/overwrite0,Data/DBA,8,R0.04 +DATA.02,S1,Data,MarketCalendar/PIT temporal conventions,published/effective/tradable_session,lookahead0,Data/Quant/QA,8,DATA.01 +DATA.03,S2,Data,Corporate Action/Total Return canonical model,CA/TR migrations+golden,official master reconcile,Data/DBA/Quant,12,DATA.01 +DATA.04,S2,Data,Fee/Tax/FX temporal model,"fee_schedule,tax,fx",valid range overlap0,DBA/Quant,8,DATA.02 +DATA.05,S2,Data,DQ rule engine/quarantine,DQ-01~12 pipeline,critical rule release block,Data/QA,12,DATA.01~04 +DATA.06,S3,Data,Immutable ledger/lot/cycle,"ledger_entry,position_lot",debit-credit/reversal,BE/DBA/QA,12,"ALG.02,DATA.03~04" +DATA.07,S3,Data,Evidence/Decision/Watch schemas,"evidence,decision,watch",append/hash/state checks,DBA/BE,10,ALG.03~05 +BE.01,S0,Backend,BuildingBlocks Result/Clock/Data/Outbox,src/KArtSell.BuildingBlocks,unit/architecture,BE,8,R0.05 +BE.02,S0,Backend,FastEndpoints/ProblemDetails/Auth conventions,Host + Endpoint base,OpenAPI/error mapping,BE/Security,7,BE.01 +BE.03,S0,Backend,Dapper transaction/DbUp runner,"DbSession, Migrator",fresh/upgrade/re-run,BE/DBA,8,BE.01 +BE.04,S1,Backend,JobRun/Watermark/Hangfire queues,"job_run, job_watermark",duplicate0/resume,BE/SRE/DBA,10,BE.03 +BE.05,S2,Backend,Evidence→SellDecision slice,VS-09/10,Golden/E2E/metric,BE/Quant/QA,14,"ALG.03~04,DATA.07" +BE.06,S2,Backend,Sell→ReentryWatch slice,VS-11,state/calendar/E2E,BE/Quant/QA,12,"ALG.05,BE.05" +BE.07,S3,Backend,Recommendation→Review→Publish slice,VS-14~16,maker-checker/hash/expiry,BE/FE/Compliance,18,BE.05~06 +BE.08,S4,Backend,Outcome/Evaluation windows,VS-18,1/5/20/63/126/252,BE/Quant/Data,14,"BE.07,DATA.03~04" +BE.09,S4,Backend,Frozen backtest runner,VS-19,manifest/repro/cost2x,BE/Quant/QA,14,"R0.02,ALG.01~07" +BE.10,S5,Backend,Risk/Rebalance/Replacement,VS-13/21/22,constraints/NO_ACTION,BE/Quant/QA,18,"ALG.06~07,DATA.06" +FE.01,S0,Frontend,AppShell/router/query/api/error,app/shared,lint/type/test/build,FE,10,R0.05 +FE.02,S1,Frontend,QueryState/Permission/Freshness,C-003~005,11-state/a11y,FE/QA,8,FE.01 +FE.03,S1,Frontend,DataGrid/Form/Conflict primitives,C-006~010,paging/409/422,FE/QA,12,FE.01 +FE.04,S2,Frontend,Evidence/Protection/Cost/Reentry components,C-016~019,boundary/table alternative,FE/Quant/UX,12,FE.02 +FE.05,S3,Frontend,Recommendation review workbench,SCR-009/T05,RBAC/concurrency/E2E,FE/QA/Security,14,"BE.07,FE.03~04" +FE.06,S4,Frontend,Advice/Outcome/Scorecard pages,SCR-002/010,as-of/version/partial,FE/QA/Quant,14,"BE.08,FE.04" +FE.07,S5,Frontend,Portfolio/Rebalance/Product pages,SCR-004~006,10k grid/perf/a11y,FE/QA/Quant,16,"BE.10,FE.03" +QA.01,All,Quality,Architecture/import/schema tests,ArchitectureTests,금지 의존0,Architect/QA,8,R0.04 +QA.02,All,Quality,PostgreSQL integration/Data tests,IntegrationTests/DataTests,fresh DB/PIT/replay,QA/DBA,14,"BE.03,DATA.01" +QA.03,S1~,Quality,Algorithm Golden/property/boundary,SignalEngine.Tests,same input same result,QA/Quant,14,ALG.01 +QA.04,S2~,Quality,Job fault/retry/replay/concurrency,JobTests,duplicate0/resume,QA/SRE,12,BE.04 +QA.05,S3~,Quality,Playwright role/state journeys,frontend/e2e,review/publish/expired,QA/FE,14,FE.05 +OPS.01,S4,Operations,Metrics/alerts/runbooks,runbooks + dashboards,P1/P2 drill,SRE/Ops,10,BE.05~08 +OPS.02,S5,Operations,Backfill/rebuild/reconcile,maintenance jobs,checkpoint/hash/reconcile,SRE/Data/DBA,12,DATA.01~07 +OPS.03,S6,Operations,Shadow daily scorecard,J10/J11 dashboard,252일 누적 시작,Quant/Risk/Ops,12,"BE.08,OPS.01" +OPS.04,S6,Operations,Kill-switch/DR/Secondary rehearsal,Runbook evidence,RPO/RTO/rollback,SRE/Security/Ops,12,OPS.01~02 +GATE.01,S0,Gate,G0 implementation-ready,Release Evidence,RG-01~10,Steering,2,R0.* +GATE.02,S2,Gate,G2 Algorithm/Data baseline,Model/Data evidence,Golden+PIT+replay,Quant/Risk/Data,3,"ALG.*,DATA.01~05" +GATE.03,S4,Gate,G3 Advisory E2E,E2E evidence,approval/publication/outcome,Compliance/QA,3,"BE.07~09,FE.05~06" +GATE.04,S6,Gate,G4 Shadow start,Ops evidence,DQ/recon/DR/kill-switch,Steering,3,OPS.01~04 diff --git a/docs/05_TECH_DEBT_REGISTER.csv b/docs/05_TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..228a871a --- /dev/null +++ b/docs/05_TECH_DEBT_REGISTER.csv @@ -0,0 +1,8 @@ +DebtId,Title,RiskClass,Evidence,Impact,Owner,Secondary,Created,Due,Remediation,ExitTest,Priority,Decision +TD-001,Python 원시데이터·환경 lock 부재,Data/Model,source manifest warning,재현성 상실,Quant Lead,Data Lead,2026-08-01,S0,manifest+lock+container,clean-room replay hash,P1,Fix +TD-002,Scalar position과 lot cycle 혼합,Model,source v12_positions,보호선·재진입 왜곡,BE Lead,Quant Lead,2026-08-01,S2,Lot/Cycle state model,property+golden,P1,Fix +TD-003,KR capital-floor overlay 비용 상수,Model/Data,portfolio_backtest global cost,KR 결과 왜곡,Quant Lead,QA Lead,2026-08-01,S0,cost parameter/FeeSchedule,cost sensitivity diff,P1,Fix +TD-004,기업행사 추정 소급조정,Data,load_kr inferred integer rescale,가격·ATR 왜곡,Data Lead,DBA,2026-08-01,S2,official CA master,CA golden reconcile,P1,Fix +TD-005,정책 코드 중복,Engineering,v11/v12/fast,의미 drift,BE Lead,Quant Lead,2026-08-01,S2,single policy core,contract/golden,P2,Fix +TD-006,FE lockfile 미생성,Engineering,template baseline,빌드 비결정성,FE Lead,DevOps,2026-08-01,G0,pnpm-lock commit,CI frozen install,P2,Fix +TD-007,Read Model rebuild 미구현,Operations,initial template,화면 stale/recovery,Data Lead,SRE,2026-08-01,S6,projection version+rebuild,disaster rebuild test,P2,Defer diff --git a/docs/06_VIBE_CODING_GUARDRAILS.md b/docs/06_VIBE_CODING_GUARDRAILS.md new file mode 100644 index 00000000..0b2bfa23 --- /dev/null +++ b/docs/06_VIBE_CODING_GUARDRAILS.md @@ -0,0 +1,35 @@ +# 06. 바이브코딩·홀루시네이션 통제 + +## AI 작업 입력 패킷 + +AI에게 코드를 요청하기 전에 아래 8개가 있어야 한다. + +1. Source: 근거 문단/Policy ID/ADR/Data Contract +2. Slice Spec: 사용자 결과·비목표·상태·권한 +3. Screen Spec: component/state/a11y +4. Contract: Endpoint/Event/Job/ProblemDetails/Idempotency/ETag +5. Data: schema/column/PIT/unit/migration/index/lineage +6. Tests: unit/integration/data/E2E/Golden/failure/replay +7. Ops: metric/alert/runbook/rollback/owner +8. Output Rule: 변경파일·명령·결과·가정·잔여위험 + +## 차단 규칙 + +- 근거 없는 Policy ID·임계값·DB 컬럼·API는 생성하지 않는다. +- 미확정은 `DECISION_REQUIRED` 또는 `DESIGN_PROPOSAL`로 표시한다. +- 한 PR은 한 Slice 또는 한 리팩터링 목적만 가진다. +- 기능 변경과 동작불변 리팩터링을 한 PR에 섞지 않는다. +- 실패·skip·실행하지 못한 테스트를 숨기지 않는다. +- AI가 생성한 SQL은 schema owner, PIT 조건, index, execution plan 검토를 받는다. +- AI가 생성한 알고리즘은 Golden/Frozen OOS diff 없이 병합하지 않는다. +- 실고객 데이터·token·API key를 프롬프트/fixture/log에 넣지 않는다. + +## 리팩터링 정공법 + +1. Characterize: 현재 동작을 test/Golden/perf로 동결 +2. Isolate: I/O와 순수 정책 seam 분리 +3. Small Transform: rename/extract/move 한 종류씩 +4. Verify: unit/integration/data/E2E/backtest/perf diff +5. Simplify: dead abstraction/flag/branch 삭제 +6. Observe: release 후 SLO/DQ/model/recon 확인 +7. Close Debt: Debt ID/ADR/Secondary 지식 이전 diff --git a/docs/07_VALIDATION_GATES.md b/docs/07_VALIDATION_GATES.md new file mode 100644 index 00000000..f0b0f16a --- /dev/null +++ b/docs/07_VALIDATION_GATES.md @@ -0,0 +1,31 @@ +# 07. 검증·Release Gate + +## RG-01~10 + +| Gate | 조건 | +|---|---| +| RG-01 | REQ/SCR/VS/Policy ID와 사용자 결과·비목표 승인 | +| RG-02 | PIT 필드·단위·published_at·revision·DQ·source/license 정의 | +| RG-03 | 화면 template/component/state/권한 정의 | +| RG-04 | Endpoint/Event/Job/Read Model/DbUp/오류·멱등·동시성 정의 | +| RG-05 | queue/schedule/watermark/retry/replay/kill-switch 정의 | +| RG-06 | Unit/Integration/Data/E2E/Golden/Failure/Replay 연결 | +| RG-07 | Metric/Alert/Runbook/Rollback/Owner/Secondary 정의 | +| RG-08 | AI Source/Unknown/Design Proposal 구분 | +| RG-09 | 정규화/Read Model lineage/rebuild/staleness 승인 | +| RG-10 | PR 한 목적, 선행 의존 충족 | + +## Release 차단 기준 + +- lookahead > 0 +- Evidence hash 재현 < 100% +- duplicate command/job/order > 0 +- 미승인 공개 > 0 +- ledger/reconciliation 미승인 break > 0 +- Critical secret/PII 노출 +- Model/Config/Data SHA 누락 +- 자동주문 Capability ON + +## 생산 승격 제외 + +이 템플릿은 자동주문과 투자일임형 승격을 구현하지 않는다. 최소 252거래일 Shadow와 복수 국면, 비용후 효용, calibration, ES/영구손실, false-exit·재진입, PBO/DSR, 대사·DR·준법 Gate 후 별도 승인 대상이다. diff --git a/docs/hardening/00_STRATEGIC_HARDENING_REPORT.md b/docs/hardening/00_STRATEGIC_HARDENING_REPORT.md new file mode 100644 index 00000000..03427614 --- /dev/null +++ b/docs/hardening/00_STRATEGIC_HARDENING_REPORT.md @@ -0,0 +1,298 @@ +# K-ArtSell Aegis v11.1 전략적 하드닝 제안 + +상태: `IMPLEMENTATION_DELTA / STATIC_REVIEWED_NOT_BUILD_VERIFIED` +기준선: SI 누적 통합 실행기준서 v10.0 + K-ArtSell 12.2 연구 번들 + v11 구현 가속 패키지 +운영 경계: 투자자문형 우선 · 자동주문 OFF · `RESEARCH_CANDIDATE_NOT_PRODUCTION` + +## 1. 결론 + +v10.0과 v11 패키지를 다시 쓰지 않는다. `Baseline Preservation + Delta + Supersession + Traceability` 원칙으로 v11.1 하드닝 Delta를 추가한다. + +우선순위는 다음과 같다. + +1. 연구 결과 재현성 복구: 원시 데이터 manifest, checksum, Python lock, 실행 이미지 digest. +2. PIT·기업행사·총수익·비용·상폐·FX 데이터 정합성. +3. Scalar position 제거와 Lot/Cycle 기반 매도·재진입 상태기계. +4. EvidenceSnapshot → SellDecision → Recommendation → Review → Publish → Outcome의 불변 추적. +5. BE/FE/Job/DB를 Slice 단위로 끝내는 Vertical Slice. +6. Shadow 일평가와 운영 무결성. 자동주문은 별도 승인 전까지 구현·활성화 금지. + +## 2. 첨부 소스에서 확인한 핵심 결함 + +### P0 + +- 연구 번들에 원시 데이터와 환경 lock이 없어 제3자 clean-room 재현이 불가능하다. +- Python `v12_positions()`가 기존 Core와 신규 Tactical lot을 하나의 entry/peak/floor로 혼합한다. +- 한국 기업행사를 정수비율 추정으로 과거 전체에 소급 적용한다. +- 총수익·PIT 재무/컨센서스·상폐수익·세금·FX가 불완전하다. +- 자본바닥 비용이 함수 계약이 아니라 전역 상수에 묶여 결과 라벨과 실제 계산이 달라질 수 있다. +- v11 템플릿의 연구 평가 Endpoint가 `AllowAnonymous()`이고, Handler·Evidence 검증·DB 저장·Outbox가 없다. +- FE CI는 `pnpm-lock.yaml`을 요구하지만 패키지에 lockfile이 없다. + +### P1 + +- 매도 정책이 Hard impairment, gap, two-close 3개만 구현되어 survival·집중/유동성·기회비용이 누락됐다. +- 매도비중의 단위가 “현재 lot 대비 비율”인지 “포트폴리오 절대비중”인지 계약이 모호하다. +- Reentry 상태기계가 `REENTERED → WATCH/OPEN` 다단계 전이를 표현하지 못한다. +- Evidence 불변 trigger는 있으나 SignalDecision 불변 trigger가 빠져 있다. +- Architecture Test가 Generic Repository 문자열 탐지만 수행한다. +- FE가 API contract를 수동 중복 정의하고, retry 시 Idempotency-Key를 새로 만들어 동일 명령의 재시도 의미를 깨뜨린다. + +## 3. SOLID의 현장 적용 + +| 원칙 | 적용 | 과유불급 차단 | +|---|---|---| +| S | Endpoint=HTTP, Handler=유스케이스/트랜잭션, Policy=순수 결정, Adapter=외부 I/O | God Service, Job 내 정책 로직 금지 | +| O | Policy/DQ/Adapter는 명시적 registry로 추가하되 우선순위와 계약은 고정 | 임의 plugin framework, reflection 기반 자동 발견 금지 | +| L | KRX/DART/KIS Adapter 대체 시 동일 시간·단위·오류 contract test | mock 통과만으로 공급원 대체 금지 | +| I | `IMarketDataSource`, `IFilingSource`, `IEvidenceReader`, `IClock` 등 좁은 Port | 범용 Repository/IServiceProvider 노출 금지 | +| D | Domain은 Npgsql/Hangfire/HTTP를 모른다 | Infrastructure type이 Domain으로 침투하는 것 금지 | + +추상화는 두 번째 실제 구현과 동일한 변경축이 확인된 뒤 승격한다. 한 번 쓰는 interface, generic repository, 범용 mediator wrapper는 만들지 않는다. + +## 4. 알고리즘 고도화 + +### 4.1 생산 경계 + +생산 엔진은 점수 합산기가 아니라 순서가 고정된 결정 상태기계다. + +`HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION_LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION` + +상위 사유는 하위 기대수익으로 상쇄하지 않는다. 모든 결정은 다음 Version Set을 남긴다. + +- `PolicyId`, `PolicyVersion` +- `EvidenceId`, `DatasetId`, `DataHash` +- `ModelVersion`, `ConfigVersion`, `CodeSha` +- `AsOf`, `PublishedAtCutoff`, `TradableSession` +- 입력 단위, rounding, 허용오차, 반대증거 + +### 4.2 Lot/Cycle 모델 + +- `PositionLot`: 수량·원가·세금 lot·개설/종료. +- `CycleState`: entry, peak, floor, breach count, last sell/buy. +- `ProtectionState`: 보호 활성화와 단조 floor. +- `ReentryWatch`: 매도 원인, 대기, 조건, 단계, 만료. +- 재진입은 새 `CycleId`와 새 Lot을 생성한다. +- Hard impairment는 자동 재진입을 금지한다. + +### 4.3 매도 수량 계약 + +`SellRatioOfLot`와 `TargetPortfolioWeightAfter`를 분리한다. API/DB/UI에서 단순 `sell_fraction` 하나를 사용하지 않는다. + +- `SellRatioOfLot`: 현재 lot 수량 중 매도 비율, 0~1. +- `SellQuantity`: 주문 단위 반영 후 실제 제안 수량. +- `TargetPortfolioWeightAfter`: 매도 후 목표 포트폴리오 비중. +- `StrategicCoreFloorWeight`: 포트폴리오 절대비중. + +이 구분이 없으면 Core floor와 부분매도 비율을 잘못 비교하게 된다. + +### 4.4 기대효용 + +opaque score를 금지하고 구성요소를 저장한다. + +- P10/P50/P90 기대수익 +- ES95 +- 영구가치훼손 확률 × LGD +- marginal portfolio risk +- liquidity/slippage/tax/FX +- replacement lower-confidence edge +- reentry option loss + +Opportunity sell은 순우위 신뢰하단이 0을 초과하고 IPS·유동성·세금 제약을 통과한 경우만 허용한다. + +### 4.5 연구와 생산의 분리 + +Python 연구 코드는 생산 엔진에서 호출하지 않는다. Python과 .NET은 동일 Golden Vector와 Policy ID만 공유한다. + +- Python: 대규모 탐색, walk-forward, CSCV/PBO, DSR, bootstrap. +- .NET: 승인된 순수 정책, Evidence/Decision/Audit, Shadow 운영. +- 결과 비교: manifest + deterministic seed + tolerance. + +## 5. 데이터 정합성·정규화·역정규화 + +### 5.1 계층 + +1. L0 Source Manifest: 권리·schema/version·SLA·timezone·단위. +2. L1 Raw Immutable: payload/hash/event/published/ingested. +3. L2 Canonical PIT: 가격·기업행사·재무·컨센서스·비용 revision. +4. L3 Quality/Lineage: DQ·quarantine·watermark·dataset manifest. +5. L4 Feature/Evidence: feature/forecast/risk/evidence hash. +6. L5 Transaction/Audit: ledger/decision/review/publication/fill/outcome. +7. L6 Read Model: 화면·리포트 projection. +8. L7 Artifact: backtest/model card/release evidence. + +### 5.2 정규화 원칙 + +- 원장·현금·lot: 3NF + append/reversal. +- PIT 가격/재무/공시: source + published_at + revision + hash. +- 추천/승인/공개: 현재상태와 이력 분리. +- 설정/수수료: `valid_from/to`; current flag 단독 사용 금지. +- Evidence: JSONB 원문 + 검색/제약에 필요한 핵심 컬럼 승격. + +### 5.3 역정규화 허용 조건 + +Read Model에만 허용하며 반드시 다음을 가진다. + +- Owner +- ProjectionVersion +- SourceWatermark +- RefreshedAt/StaleAt +- Rebuild command +- Lineage +- 권한 scope + +Source table을 화면에서 임의 join하거나 current value를 복제하지 않는다. + +### 5.4 DB 강제 규칙 + +- schema-qualified SQL, 명시적 column, `SELECT *` 금지. +- Evidence/Decision/Audit update/delete 차단 trigger. +- 시간 범위 overlap exclusion 또는 사전 검증. +- Idempotency unique key. +- Outbox pending index와 lease/attempt/dead-letter. +- DbUp fresh/upgrade/re-run/failure rehearsal. + +## 6. BE 고도화 + +### 6.1 Slice 표준 + +```text +Features// + Endpoint.cs + Request.cs + Response.cs + Validator.cs + Handler.cs + Policy.cs + Sql.cs + Mapper.cs + Contracts/ + Jobs/ + Tests/ + README.md +``` + +Endpoint는 `EvidenceId`, 모델버전, 정책 임계값을 클라이언트에서 그대로 신뢰하지 않는다. 요청은 업무 식별자와 as-of만 받고 Handler가 승인된 Evidence와 Version Set을 조회한다. + +### 6.2 트랜잭션 + +동일 PostgreSQL transaction에서 다음을 처리한다. + +1. Idempotency claim. +2. Evidence/lot/cycle as-of 조회. +3. 순수 Policy 평가. +4. Decision append. +5. Outbox append. +6. commit. + +외부 API 호출은 transaction 밖에서 수행하고 raw result를 먼저 저장한다. + +### 6.3 Outbox/Inbox + +- Event payload는 최소키와 schema version만 포함. +- consumer별 Inbox unique key. +- 재처리는 동일 결과 또는 no-op. +- poison event는 dead-letter와 운영 승인 후 replay. +- 이벤트가 Job을 직접 호출하지 않고 readiness/command를 만든다. + +### 6.4 Hangfire + +Queue를 다음처럼 분리한다. + +- `q-control` +- `q-market-data` +- `q-fundamentals` +- `q-feature-risk` +- `q-recommendation` +- `q-evaluation` +- `q-reconciliation` +- `q-research` +- `q-backfill` + +모든 Job은 `JobRunId`, `ScopeKey`, `IdempotencyKey`, `Watermark`, Version Set, input/output hash를 가진다. DQ/business-hold는 transient retry와 분리한다. + +### 6.5 보안 + +- `/internal/*` 익명 접근 금지. +- 자동주문 Capability는 코드와 설정 모두 기본 OFF. +- Swagger는 dev 또는 승인된 운영자만. +- maker-checker와 SoD를 endpoint/DB/audit에서 동시에 검증. +- secret/PII/token은 log, trace tag, fixture, prompt에 금지. + +## 7. FE 고도화 + +### 7.1 상태 소유권 + +- 서버 상태: TanStack Query. +- 세션/role/UI preference: Pinia. +- form: vee-validate + Zod. +- filter/selection: router query/params. +- 대량 표: AG Grid server-side row model. + +Pinia에 API 응답을 복제하지 않는다. + +### 7.2 공통 상태 계약 + +`LOADING, EMPTY, PARTIAL, STALE, WARN, ERROR, UNAUTHORIZED, FORBIDDEN, CONFLICT, EXPIRED, READONLY`를 공통 컴포넌트로 처리한다. + +### 7.3 계약과 멱등 + +- OpenAPI에서 DTO를 생성하거나 versioned contract를 단일 관리한다. +- submit 시 한 번 생성한 Idempotency-Key를 동일 retry에 재사용한다. +- 409는 `VersionConflictDialog`, 422는 field/summary mapping, 429/503은 retry-after를 표시한다. +- 고객 화면은 연구용 내부 evaluate endpoint를 호출하지 않는다. + +### 7.4 컴포넌트화 + +공용 승격은 동일 업무 의미·상태·권한·접근성·테스트가 반복될 때만 한다. + +공통: `QueryStateBoundary`, `PermissionGuard`, `DataGridShell`, `CrudForm`, `VersionConflictDialog`, `DataFreshnessBadge`. + +도메인: `EvidencePanel`, `ProtectionFloorPanel`, `ReentryTimeline`, `ApprovalPanel`, `VersionSetPanel`, `GateChecklist`. + +## 8. 바이브코딩·홀루시네이션 통제 + +- 채팅은 Source of Truth가 아니다. +- AI는 Policy ID, DB column, API, threshold를 발명하지 않는다. +- 모든 PR에 `Source / Assumption / Unknown / Decision Required`를 기록한다. +- 실행하지 않은 build/test/migration을 통과했다고 기록하지 않는다. +- 리팩터링 전 characterization test를 먼저 고정한다. +- 한 PR은 한 Slice 또는 한 리팩터링 목적만 가진다. +- AI 생성 migration은 fresh/upgrade/re-run과 DBA review 없이는 병합하지 않는다. +- 알고리즘 변경은 Golden/OOS/cost×2/false-exit/reentry/ES/ModelCard를 동시에 갱신한다. + +## 9. 기술부채 운영 + +- P0는 기능 개발보다 먼저 처리한다. +- 각 Sprint 용량의 15~20%를 승인된 기술부채에 배정한다. +- Debt는 Risk, Interest, Owner, Due, Remediation, Exit Test를 가진다. +- “나중에 정리”가 아니라 해당 Slice의 Definition of Done에 포함한다. +- 무기한 예외는 금지하고 expiry와 재승인을 둔다. + +## 10. 16 Sprint 개선 로드맵 + +기존 32주 기준은 유지하되 Release Train으로 묶는다. + +| Train | Sprint | 목표 | 핵심 Gate | +|---|---|---|---| +| R0 Foundation | S0~S3 | 재현성, CI, PIT/CA/비용, ledger | build/lock/replay/lookahead 0 | +| R1 Sell/Reentry | S4~S5 | Evidence, Lot/Cycle, 매도/재진입 | Golden/state/invariant | +| R2 Advisory MVP | S6~S8 | IPS, 추천, 검토, 공개, 결과 | maker-checker/E2E/audit | +| R3 Portfolio Intelligence | S9~S11 | risk, rebalance, buy/replacement, scorecard | constraint/NO_ACTION/Shadow | +| R4 Pilot Hardening | S12~S15 | KIS capability OFF, recon, security, DR, cutover | duplicate 0/recon/DR/rollback | + +Critical Path를 벗어난 대시보드·상품탐색 선행 구현은 제한한다. + +## 11. 템플릿 적용 판정 + +첨부 v11 템플릿은 교육용 walking skeleton으로는 유효하지만 Implementation-ready 기준에는 미달한다. 다음 조건을 만족한 뒤 기준 템플릿으로 승격한다. + +- 실제 .NET SDK/pnpm에서 restore/build/test green. +- lockfile과 dependency audit. +- 익명 internal endpoint 제거. +- Handler/Validator/DB/Outbox/Idempotency 구현. +- SignalDecision 불변 DB trigger. +- Architecture/Data/Integration/Replay/E2E test 추가. +- FE 11-state, auth, conflict, stable idempotency. +- Release Evidence Pack 자동 생성. + diff --git a/docs/hardening/01_ARCHITECTURE_FITNESS_FUNCTIONS.md b/docs/hardening/01_ARCHITECTURE_FITNESS_FUNCTIONS.md new file mode 100644 index 00000000..f465bea3 --- /dev/null +++ b/docs/hardening/01_ARCHITECTURE_FITNESS_FUNCTIONS.md @@ -0,0 +1,24 @@ +# Architecture Fitness Functions + +| ID | 자동 검사 | 차단 기준 | +|---|---|---| +| AF-01 | Module project reference graph | 승인되지 않은 역방향 의존 1건 | +| AF-02 | 다른 모듈 schema 직접 SQL 참조 | 1건 | +| AF-03 | Domain project의 Npgsql/Hangfire/HTTP 참조 | 1건 | +| AF-04 | `DateTime.Now/UtcNow` 직접 사용 | 승인 예외 외 1건 | +| AF-05 | `SELECT *` | 1건 | +| AF-06 | Generic Repository/God Service 명명·크기 | 1건 또는 기준 초과 | +| AF-07 | Modules 내부 `AllowAnonymous` | 1건 | +| AF-08 | Evidence/Decision/Audit immutable trigger | 누락 1건 | +| AF-09 | DbUp fresh/upgrade/re-run | 실패 | +| AF-10 | PIT `published_at <= cutoff` contract test | 실패 | +| AF-11 | Dataset+Code+Config 동일 replay hash | 100% 미만 | +| AF-12 | command/job/order duplicate | 0 초과 | +| AF-13 | Outbox/Inbox retry and poison replay | 실패 | +| AF-14 | Algorithm Golden/boundary/property | 실패 | +| AF-15 | Reentry calendar/stage/expiry/new cycle | 실패 | +| AF-16 | FE server state duplicated in Pinia | 탐지 1건 | +| AF-17 | FE ProblemDetails/409/422/429/503 common handling | 누락 | +| AF-18 | Role/state Playwright journeys | 실패 | +| AF-19 | Secret/PII scan | Critical 1건 | +| AF-20 | Release Evidence Pack completeness | 누락 1건 | diff --git a/docs/hardening/02_ALGORITHM_CONTRACT.md b/docs/hardening/02_ALGORITHM_CONTRACT.md new file mode 100644 index 00000000..356c0602 --- /dev/null +++ b/docs/hardening/02_ALGORITHM_CONTRACT.md @@ -0,0 +1,36 @@ +# Sell/Reentry Algorithm Contract + +## Decision Context + +- PortfolioId, AccountId, LotId, CycleId +- AssetPolicyId, IPSVersion +- AsOf, PublishedAtCutoff, TradableSession +- EvidenceId, DatasetId, ModelVersion, ConfigVersion, CodeSha +- CurrentLotQuantity, CurrentPortfolioWeight, StrategicCoreFloorWeight +- Peak/Floor/Breach/Cooldown +- Hard impairment evidence grade and approval +- Risk reduction requirement, concentration excess, liquidity capacity +- Expected utility component distribution and confidence lower bound + +## Decision Output + +- Action: HOLD/PARTIAL_SELL/FULL_SELL +- PolicyId/Priority/ReasonCode +- SellRatioOfLot +- ProposedQuantity +- TargetPortfolioWeightAfter +- ReentryEligibility +- CounterEvidence +- ValidUntil/NextReviewSession +- DecisionHash + +## Invariants + +1. Hard impairment cannot be overridden. +2. Proposed quantity cannot exceed lot quantity. +3. Strategic core floor cannot be breached unless an approved higher-priority policy allows it. +4. Same input and Version Set produce the same decision hash. +5. A decision without immutable Evidence cannot be stored. +6. A reentry stage executes at most once. +7. Reentry creates a new CycleId. +8. Hard impairment cannot create an automatic ReentryWatch. diff --git a/docs/hardening/03_WBS_DELTA_V11_1.csv b/docs/hardening/03_WBS_DELTA_V11_1.csv new file mode 100644 index 00000000..dae97a0a --- /dev/null +++ b/docs/hardening/03_WBS_DELTA_V11_1.csv @@ -0,0 +1,77 @@ +WBS_ID,Sprint,Slice,Workstream,Task,Deliverable,Acceptance,Owner,Secondary,PD,Dependency,Release_Blocker,Basis +AEG-S0-01,S0,VS-00,Governance,Baseline/Delta/Supersession matrix 확정,docs/version_coverage.csv,유효 기준 불명확 0,PM/Architect,Compliance,3,-,Y,Source +AEG-S0-02,S0,VS-00,Governance,REQ/ALG/DATA/API/DB/JOB/SCR/TEST ID Registry 동결,docs/id_registry.csv,중복/재사용 ID 0,PM,Architect,3,AEG-S0-01,Y,Source +AEG-S0-03,S0,VS-00,Research,원시 데이터 Manifest/checksum/license 계약,research/manifests,clean-room 입력 식별 100%,Data Lead,Quant,6,AEG-S0-01,Y,Source +AEG-S0-04,S0,VS-00,Research,Python pyproject/lock/container digest,research/pyproject.toml; lock; image digest,동일 환경 재실행 가능,Quant,DevOps,6,AEG-S0-03,Y,Design +AEG-S0-05,S0,VS-00,DevEx,.NET/pnpm restore lock 및 패키지 검증,global.json; packages; pnpm-lock,restore/build/test green,PL,DevOps,8,AEG-S0-01,Y,Source +AEG-S0-06,S0,VS-00,Security,Internal endpoint 익명 접근 제거,auth policy; access tests,/internal anonymous 0,Security,BE,5,AEG-S0-05,Y,Source +AEG-S0-07,S0,VS-00,Architecture,Fitness Function 20종 CI 연결,ArchitectureTests; scripts,AF-01~20 green,Architect,QA,8,AEG-S0-05,Y,Design +AEG-S0-08,S0,VS-00,Observability,HTTP→DB→Outbox correlation walking skeleton,OTel/Serilog smoke,trace link 100%,SRE,BE,5,AEG-S0-05,N,Source +AEG-S1-01,S1,VS-02,Data,SecurityMaster/listing/trading calendar canonical,migrations/security_master,상장기간·세션 invariant,Data,DBA,8,AEG-S0-03,Y,Source +AEG-S1-02,S1,VS-03,Data,Raw immutable/dataset manifest,raw_record; dataset_manifest,overwrite 0/hash 100%,Data,DBA,8,AEG-S0-03,Y,Source +AEG-S1-03,S1,VS-03,Data,PIT temporal resolver,PublishedAtPolicy; MarketCalendar,lookahead 0,Data,Quant,8,"AEG-S1-01,AEG-S1-02",Y,Source +AEG-S1-04,S1,VS-03,Data,DQ engine/quarantine/watermark,DQ-01~12 pipeline,Critical DQ release block,Data,QA,10,"AEG-S1-02,AEG-S1-03",Y,Source +AEG-S1-05,S1,VS-03,BE,Hangfire JobRun/Watermark/Retry class,job_run; job_watermark,duplicate 0/resume,BE,SRE,10,AEG-S0-05,Y,Source +AEG-S1-06,S1,VS-03,FE,Data run operational page baseline,SCR-013,processing/partial/warn/error,FE,Data,7,"AEG-S1-04,AEG-S1-05",N,Source +AEG-S2-01,S2,VS-04,Data,공식 Corporate Action master/조정,CA canonical + golden,수량·원가·수익 대사,Data,Quant/DBA,12,"AEG-S1-01,AEG-S1-02",Y,Source +AEG-S2-02,S2,VS-03,Data,Total return/FX/rate canonical,TR/FX/rate migrations,price vs total return 구분,Data,Quant,10,AEG-S1-03,Y,Source +AEG-S2-03,S2,VS-06,Data,Fee/Tax/FX PIT schedule,fee_schedule/tax/fx,기간 overlap 0,DBA,Quant,8,AEG-S1-03,Y,Source +AEG-S2-04,S2,VS-04,QA,상폐·분할·배당·증자 Golden,DataTests fixtures,공식 master diff 허용치,QA,Data,8,"AEG-S2-01,AEG-S2-02",Y,Source +AEG-S2-05,S2,VS-19,Research,기존 Python 결과 Characterization,golden/current,기존 artifact metric diff 0,Quant,QA,8,AEG-S0-04,Y,Source +AEG-S2-06,S2,VS-19,Research,비용 전역상수 제거/함수 계약화,research simulation cost contract,market/account cost 라벨 일치,Quant,QA,6,"AEG-S2-03,AEG-S2-05",Y,Source +AEG-S3-01,S3,VS-08,Data,Append ledger/cash/lot/cycle,ledger_entry; position_lot; cycle_state,debit-credit/reversal,BE/DBA,QA,14,"AEG-S2-01,AEG-S2-03",Y,Source +AEG-S3-02,S3,VS-08,Algorithm,Scalar position→Lot/Cycle migration contract,domain model + migration plan,core/tactical 혼합 0,BE,Quant,12,AEG-S3-01,Y,Source +AEG-S3-03,S3,VS-09,Data,EvidenceSnapshot Version Set,evidence schema/hash,동일 입력 hash 동일,BE/DBA,Quant,10,"AEG-S1-04,AEG-S2-02,AEG-S2-03",Y,Source +AEG-S3-04,S3,VS-08,QA,Ledger property/reconciliation tests,Unit/Data/Integration,수량·현금 invariant,QA,BE/DBA,10,AEG-S3-01,Y,Source +AEG-S3-05,S3,VS-08,FE,Portfolio lot/cycle read model,rm_portfolio_overview,stale/lineage/rebuild 표시,FE,Data,8,AEG-S3-01,N,Source +AEG-S4-01,S4,VS-10,Algorithm,Policy contract/priority registry,Policy registry,우선순위 변경 승인 강제,Quant,Risk/BE,6,AEG-S2-05,Y,Source +AEG-S4-02,S4,VS-10,Algorithm,Hard impairment policy/evidence grade,ALG-SELL-001,하위정책 상쇄 0,BE/Quant,QA,7,"AEG-S4-01,AEG-S3-03",Y,Source +AEG-S4-03,S4,VS-10,Algorithm,Portfolio survival/capital floor policy,ALG-PORT-001,risk cap property,Quant/BE,QA,9,"AEG-S3-02,AEG-S4-01",Y,Source +AEG-S4-04,S4,VS-10,Algorithm,Gap/two-close/protection floor,ALG-SELL-002/003,monotonic/boundary/cooldown,BE/Quant,QA,12,"AEG-S3-02,AEG-S4-01",Y,Source +AEG-S4-05,S4,VS-10,Algorithm,Concentration/liquidity policy,ALG-SELL-004,caps/ADV constraint,Quant/BE,QA,8,AEG-S4-01,Y,Source +AEG-S4-06,S4,VS-10,Algorithm,Expected utility/opportunity policy,ALG-SELL-005,lower CI > 0/cost×2,Quant/BE,Risk/QA,12,"AEG-S2-03,AEG-S4-01",Y,Source +AEG-S4-07,S4,VS-10,BE,Endpoint→Handler→Policy→DB→Outbox slice,VS-10 code packet,auth/idempotency/transaction,BE,SRE/QA,14,"AEG-S3-03,AEG-S4-02~06",Y,Source +AEG-S4-08,S4,VS-10,DB,Decision immutability/indexes,0011_signal_hardening.sql,update/delete 0,DBA,BE,5,AEG-S4-07,Y,Design +AEG-S5-01,S5,VS-11,Algorithm,Reentry staged state machine,ALG-REENTRY-001,wait/spacing/expiry/new cycle,BE/Quant,QA,12,"AEG-S3-02,AEG-S4-07",Y,Source +AEG-S5-02,S5,VS-11,BE,Reentry watch scan/idempotent stage,VS-11 handler/job,stage duplicate 0,BE,SRE,10,"AEG-S5-01,AEG-S1-05",Y,Source +AEG-S5-03,S5,VS-19,Research,Python/.NET Golden vector comparison,BacktestRegression,허용오차 내 의미 동일,Quant/QA,BE,10,"AEG-S4-02~06,AEG-S2-05",Y,Source +AEG-S5-04,S5,VS-19,Research,Walk-forward/PBO/DSR/bootstrap hooks,research evaluation,승격 지표 산출 가능,Quant,Risk/QA,12,"AEG-S0-04,AEG-S2-06",N,Source +AEG-S5-05,S5,VS-11,FE,Reentry timeline/state matrix,SCR-003,expired/readonly/warn/conflict,FE,UX/QA,9,AEG-S5-02,N,Source +AEG-S6-01,S6,VS-07,BE,Client/IPS versioned contract,VS-07,과거 IPS 수정 0,BE,Compliance,10,AEG-S0-06,Y,Source +AEG-S6-02,S6,VS-08,BE,Portfolio performance/risk baseline,VS-08/13,TWR/MWR/ES golden,BE/Quant,QA,12,AEG-S3-01,Y,Source +AEG-S6-03,S6,VS-07,FE,IPS wizard/conflict/validation,SCR-008,409/422/RBAC/a11y,FE,UX/QA,10,AEG-S6-01,N,Source +AEG-S6-04,S6,ReadModels,Data,Read model version/rebuild framework,projection registry,rebuild hash/staleness,Data/BE,SRE,10,AEG-S3-05,Y,Source +AEG-S7-01,S7,VS-14,BE,Recommendation aggregation,VS-14,DQ/IPS/capability hold,BE,Quant,14,"AEG-S4-07,AEG-S6-01,AEG-S6-02",Y,Source +AEG-S7-02,S7,VS-15,BE,Maker-checker review/concurrency,VS-15,self approval 0,BE,Compliance/QA,10,AEG-S7-01,Y,Source +AEG-S7-03,S7,VS-15,FE,Recommendation workbench,SCR-009,11-state/RBAC/E2E,FE,QA/UX,14,"AEG-S7-02,AEG-S6-04",N,Source +AEG-S7-04,S7,Cross,FE,Stable idempotency/ProblemDetails/ETag common,shared/api,retry same key/409/422/429/503,FE,BE/QA,8,AEG-S0-05,Y,Design +AEG-S8-01,S8,VS-16,BE,Approved advice publish/version hash,VS-16,unapproved publish 0,BE,Compliance,10,AEG-S7-02,Y,Source +AEG-S8-02,S8,VS-17,BE,Client decision attribution,VS-17,advice/execution/action 분리,BE,Quant,7,AEG-S8-01,N,Source +AEG-S8-03,S8,VS-18,BE,Outcome windows 1/5/20/63/126/252,VS-18/J10,calendar/revision/no-fill,BE/Quant,Data/QA,14,"AEG-S8-01,AEG-S2-02",Y,Source +AEG-S8-04,S8,VS-16,FE,Advice detail/evidence/counterevidence,SCR-002,approved version only,FE,UX/Compliance,10,"AEG-S8-01,AEG-S6-04",N,Source +AEG-S8-05,S8,Audit,Governance,E2E audit trace,rm_audit_trace,input→outcome trace 100%,BE,Audit/SRE,10,AEG-S8-01~03,Y,Source +AEG-S9-01,S9,VS-13,Algorithm,Portfolio ES/concentration/correlation,VS-13,numeric/property/perf,Quant/BE,QA,12,AEG-S6-02,Y,Source +AEG-S9-02,S9,VS-21,Algorithm,Rebalance deterministic baseline,VS-21,constraint 0/NO_ACTION,Quant/BE,QA,14,"AEG-S9-01,AEG-S2-03",Y,Source +AEG-S9-03,S9,VS-21,FE,Before/after risk and constraints,SCR-005,override audit/a11y,FE,QA/UX,10,AEG-S9-02,N,Source +AEG-S10-01,S10,VS-12,Algorithm,Buy candidate calibrated outputs,VS-12,P10/P50/P90 calibration,Quant,Risk/QA,14,AEG-S5-04,N,Source +AEG-S10-02,S10,VS-22,Algorithm,Replacement net-edge/ranking,VS-22,after-cost/IPS ranking,Quant/BE,QA,10,"AEG-S4-06,AEG-S10-01",N,Source +AEG-S10-03,S10,VS-12,FE,Candidate AG Grid server model,SCR-006,10k row/perf/filter/auth,FE,QA,12,"AEG-S10-01,AEG-S6-04",N,Source +AEG-S11-01,S11,VS-18,Evaluation,False-exit cost/reentry capture definition,sell_evaluation,benchmark/cost/weight 일치,Quant,Risk/QA,10,"AEG-S8-03,AEG-S5-01",Y,Source +AEG-S11-02,S11,VS-24,Evaluation,Daily scorecard/cohort/drift,J11/SCR-010,표본/창/as-of/version,Quant/BE,Data,12,AEG-S11-01,Y,Source +AEG-S11-03,S11,Shadow,Operations,Shadow next-session execution,shadow_execution,decision/fill/action 분리,Quant/BE,QA,12,"AEG-S8-03,AEG-S2-03",Y,Source +AEG-S11-04,S11,VS-24,FE,Scorecard/gate/drift dashboard,SCR-010,적중률 보조지표,FE,Quant/QA,10,AEG-S11-02,N,Source +AEG-S12-01,S12,VS-23,BE,KIS adapter capability OFF baseline,adapter/capability,prod order path disabled,BE,Security/Compliance,10,AEG-S0-06,Y,Source +AEG-S12-02,S12,VS-23,BE,OrderIntent/Fill dedupe,VS-23,duplicate fill/order 0,BE,DBA/QA,12,"AEG-S12-01,AEG-S3-01",Y,Source +AEG-S12-03,S12,VS-23,Operations,Position/cash/fee/tax/FX reconciliation,J12,unapproved break 0,BE/Ops,DBA/QA,12,AEG-S12-02,Y,Source +AEG-S12-04,S12,VS-23,FE,Reconciliation workbench,SCR-014,maker-checker/SLA,FE,Ops/QA,9,AEG-S12-03,N,Source +AEG-S13-01,S13,VS-25,Security,RBAC/MFA/SoD/access matrix,security tests,cross-client access 0,Security,BE/QA,12,"AEG-S6-01,AEG-S7-02",Y,Source +AEG-S13-02,S13,VS-25,Operations,Kill-switch/capability control,VS-25,scope block/recovery,SRE,Risk/BE,10,AEG-S12-01,Y,Source +AEG-S13-03,S13,DR,Operations,Backup/PITR/read-model rebuild drill,runbooks/dr,RPO/RTO/reconcile,SRE/DBA,Ops,12,"AEG-S6-04,AEG-S12-03",Y,Source +AEG-S13-04,S13,QA,Quality,Playwright role/state/a11y UAT,e2e evidence,critical journey green,QA,FE/Compliance,12,"AEG-S8-04,AEG-S11-04,AEG-S12-04",Y,Source +AEG-S14-01,S14,Performance,DBA,Plan/index/bloat/partition evidence,performance report,P95/lock 기준,DBA,BE,10,AEG-S11-02,N,Design +AEG-S14-02,S14,Backfill,Operations,Chunk/checkpoint/resume/replay,maintenance jobs,restart/reconcile 100%,Data/SRE,DBA,12,AEG-S13-03,Y,Source +AEG-S14-03,S14,Release,DevOps,Release Evidence Pack 자동화,CI artifacts,문서/DDL/OpenAPI/Test hash,DevOps,QA/PM,10,AEG-S0-07,Y,Source +AEG-S14-04,S14,Cutover,Operations,Cutover/rollback rehearsal,runbooks/cutover,rollback RTO 내,SRE,All,10,"AEG-S14-02,AEG-S14-03",Y,Source +AEG-S15-01,S15,GoLive,Governance,Advisory Go/No-Go,release decision,RG/AF/DQ/DR 모두 통과,Steering,All,4,AEG-S14-04,Y,Source +AEG-S15-02,S15,Hypercare,Operations,P1/P2 monitoring/on-call,dashboards/runbooks,Owner/Secondary 응답,SRE/Ops,BE/Data,10,AEG-S15-01,Y,Source +AEG-S15-03,S15,Shadow,Governance,252거래일 Shadow 누적 시작,model/evaluation manifest,자동주문 OFF 확인,Quant/Risk,Compliance,6,AEG-S15-01,Y,Source diff --git a/docs/hardening/04_TECH_DEBT_REGISTER_V11_1.csv b/docs/hardening/04_TECH_DEBT_REGISTER_V11_1.csv new file mode 100644 index 00000000..908e7d49 --- /dev/null +++ b/docs/hardening/04_TECH_DEBT_REGISTER_V11_1.csv @@ -0,0 +1,19 @@ +DebtId,Title,RiskClass,Priority,Impact,Owner,Secondary,DueSprint,Remediation,ExitTest,Decision +TD-H-001,Raw data/환경 lock 부재,Data/Model,P0,재현 불가,Quant Lead,Data Lead,S0,manifest+checksum+lock+image digest,clean-room replay hash,Fix +TD-H-002,Scalar position이 Core/Tactical lot 혼합,Model,P0,보호선·재진입 왜곡,BE Lead,Quant Lead,S3,Lot/Cycle/Protection/Reentry model,property+golden,Fix +TD-H-003,KR 기업행사 추정 소급조정,Data,P0,가격·ATR·수익 왜곡,Data Lead,DBA,S2,공식 CA master+quarantine,CA reconciliation,Fix +TD-H-004,총수익/PIT/상폐/세금/FX 불완전,Data/Model,P0,생산 판단 불가,Data Lead,Risk,S2,canonical PIT sources,DQ/replay,Fix +TD-H-005,비용 전역상수/라벨 불일치,Model,P0,성과 왜곡,Quant Lead,QA,S2,FeeSchedule PIT contract,cost scenario diff,Fix +TD-H-006,Internal research endpoint AllowAnonymous,Security,P0,무권한 정책 실행,Security,BE Lead,S0,auth policy+access test,anonymous 0,Fix +TD-H-007,FE pnpm-lock 누락,Engineering,P0,CI 비결정/현재 CI 실패,FE Lead,DevOps,S0,lockfile commit,frozen install,Fix +TD-H-008,Handler/Validator/DB/Outbox 없는 endpoint,Architecture,P1,Vertical Slice 미완성,BE Lead,Architect,S4,full slice packet,integration/trace,Fix +TD-H-009,Survival/집중/기회비용 정책 미구현,Model,P1,정책 우선순위 불완전,Quant Lead,BE Lead,S4,ALG-PORT/SELL-004/005,golden/property,Fix +TD-H-010,sell_fraction 단위 모호,Contract,P1,core floor 계산 오류 위험,Quant Lead,Architect,S4,ratio/quantity/target weight 분리,contract tests,Fix +TD-H-011,Reentry multi-stage 상태 전이 불완전,Model,P1,단계 재진입/새 cycle 오류,BE Lead,Quant Lead,S5,explicit transition table,calendar/stage tests,Fix +TD-H-012,SignalDecision immutable trigger 누락,Data/Audit,P1,감사·재현 훼손,DBA,BE Lead,S4,DB trigger+privilege,update/delete test,Fix +TD-H-013,Architecture test가 문자열 1종만 검사,Quality,P1,경계 회귀 탐지 불가,Architect,QA,S0,AF-01~20,CI gate,Fix +TD-H-014,FE DTO 수동 중복/Idempotency retry key 변경,Frontend,P1,계약 drift/중복 명령,FE Lead,BE Lead,S7,generated/versioned contract+stable key,Vitest/E2E,Fix +TD-H-015,Outbox publisher/Inbox consumer/dead-letter 미구현,Reliability,P1,이벤트 미전달/중복,BE Lead,SRE,S4,dispatcher/inbox/replay,fault tests,Fix +TD-H-016,Read Model rebuild/staleness 미구현,Operations,P2,복구·오래된 화면,Data Lead,SRE,S6,projection registry/rebuild,DR rebuild,Fix +TD-H-017,Swagger 상시 노출,Security,P2,공격표면 증가,Security,BE Lead,S0,environment/role gate,security test,Fix +TD-H-018,No dependency vulnerability/license evidence,SupplyChain,P2,공급망 위험,DevOps,Security,S0,audit/SBOM/license report,release evidence,Fix diff --git a/docs/templates/ADR.md b/docs/templates/ADR.md new file mode 100644 index 00000000..342a9433 --- /dev/null +++ b/docs/templates/ADR.md @@ -0,0 +1,13 @@ +# ADR-XXX Title + +- Status: Proposed / Accepted / Superseded / Deprecated +- Date: +- Owners: +- Source: +- Context: +- Decision: +- Alternatives: +- Consequences: +- Fitness Functions: +- Migration/Rollback: +- Supersedes: diff --git a/docs/templates/AI_CHANGE_CHECKLIST.md b/docs/templates/AI_CHANGE_CHECKLIST.md new file mode 100644 index 00000000..0d7998fc --- /dev/null +++ b/docs/templates/AI_CHANGE_CHECKLIST.md @@ -0,0 +1,12 @@ +# AI Change Checklist + +- [ ] Source와 문서 위치가 있다. +- [ ] Assumption/Unknown/Design Proposal을 구분했다. +- [ ] 새 정책·임계값·컬럼·API를 임의 생성하지 않았다. +- [ ] 변경 범위는 한 Slice/목적이다. +- [ ] 실행한 명령과 exit code를 기록했다. +- [ ] 실패/skip/미실행 테스트를 기록했다. +- [ ] Golden/Data/Architecture/E2E 영향이 있다. +- [ ] 민감정보가 없다. +- [ ] rollback과 잔여위험이 있다. +- [ ] 사람 승인자가 명시됐다. diff --git a/docs/templates/DATA_CONTRACT.md b/docs/templates/DATA_CONTRACT.md new file mode 100644 index 00000000..5e34448a --- /dev/null +++ b/docs/templates/DATA_CONTRACT.md @@ -0,0 +1,11 @@ +# Data Contract + +- Source/license/SLA/schema version: +- Timezone/unit/currency: +- source_event_time / published_at / ingested_at: +- effective_from/to / revision_no: +- source_id / content_hash / dataset_id: +- DQ PASS/WARN/QUARANTINED rules: +- tradable_session rule: +- lineage / watermark / replay: +- Owner / steward / retention: diff --git a/docs/templates/FEATURE_PACKET.md b/docs/templates/FEATURE_PACKET.md new file mode 100644 index 00000000..9543a5ff --- /dev/null +++ b/docs/templates/FEATURE_PACKET.md @@ -0,0 +1,15 @@ +# Feature Packet + +- Requirement ID: +- Slice ID: +- User outcome: +- Non-goals: +- Source / Assumption / Unknown / Decision Required: +- Policy/Data/API/DB/Job/UI/Test IDs: +- PIT cutoff and units: +- State transitions / invariants: +- Failure paths / ProblemDetails: +- Idempotency / concurrency / transaction: +- Metrics / alerts / runbook / rollback: +- Commands actually executed and artifacts: +- Owner / reviewer / approver: diff --git a/docs/templates/IMPROVEMENT_PROPOSAL.md b/docs/templates/IMPROVEMENT_PROPOSAL.md new file mode 100644 index 00000000..00bc7b3e --- /dev/null +++ b/docs/templates/IMPROVEMENT_PROPOSAL.md @@ -0,0 +1,18 @@ +# Model Improvement Proposal + +- Proposal ID / Expiry: +- Base Model Version: +- Proposal Type: +- Problem statement: +- Evidence IDs and hashes: +- Counter-evidence: +- Root-cause hypothesis: +- Expected benefit: +- Customer/operational/regulatory risks: +- Data and license impact: +- Algorithm/policy/metric contract impact: +- Required Golden/OOS/PBO/DSR/cost tests: +- Rollback plan: +- Owner / Secondary: +- Status: DRAFT / REVIEW_REQUIRED / APPROVED_FOR_RESEARCH / REJECTED / EXPIRED +- Explicit boundary: no automatic code/config/model activation diff --git a/docs/templates/MODEL_CHANGE.md b/docs/templates/MODEL_CHANGE.md new file mode 100644 index 00000000..8ed7a0cd --- /dev/null +++ b/docs/templates/MODEL_CHANGE.md @@ -0,0 +1,18 @@ +# Model/Policy Change + +- Change ID: +- Policy ID: +- Source: +- Assumption: +- Unknown / Decision Required: +- Old Version Set: +- New Version Set: +- Formula / threshold diff: +- Characterization diff: +- Golden diff: +- Frozen OOS result: +- Cost x2 result: +- Market/asset/regime impact: +- False-exit/Reentry/ES impact: +- Rollback trigger: +- Quant/Risk approvers: diff --git a/docs/templates/MODEL_EVALUATION_EVIDENCE.md b/docs/templates/MODEL_EVALUATION_EVIDENCE.md new file mode 100644 index 00000000..92e24d93 --- /dev/null +++ b/docs/templates/MODEL_EVALUATION_EVIDENCE.md @@ -0,0 +1,20 @@ +# Model Evaluation Evidence + +- Evaluation ID: +- Operation Code / Schedule Version: +- Scope / Cohort / Window: +- Dataset ID / Hash: +- Model / Config / Code / Contract Version: +- Metric Definition Version: +- PIT cutoff / Published-at rule: +- Sample size / Missing / Quarantine: +- Results and confidence intervals: +- Baseline / Champion / Challenger: +- Costs / Tax / FX / Slippage scenario: +- Counter-evidence: +- Operational integrity errors: +- Gate result and blocking reasons: +- Source / Assumption / Unknown / Decision Required: +- Commands / Artifact hashes: +- Independent validator: +- Maker / Checker: diff --git a/docs/templates/MODEL_OPERATIONS_RUNBOOK.md b/docs/templates/MODEL_OPERATIONS_RUNBOOK.md new file mode 100644 index 00000000..241a7f6b --- /dev/null +++ b/docs/templates/MODEL_OPERATIONS_RUNBOOK.md @@ -0,0 +1,17 @@ +# Model Operations Runbook + +- Operation Code / Queue / Scope: +- Owner / Secondary: +- Due SLA / Max lag: +- Inputs and frozen VersionSet: +- Expected output: +- Metrics and alerts: +- TRANSIENT retry policy: +- BUSINESS_HOLD resolution: +- QUARANTINE resolution: +- Dead-letter replay procedure: +- Duplicate/idempotency check: +- Data revision/correction procedure: +- Rollback/disable scheduler procedure: +- PII/secret handling: +- Last rehearsal / Evidence hash: diff --git a/docs/templates/RELEASE_EVIDENCE.md b/docs/templates/RELEASE_EVIDENCE.md new file mode 100644 index 00000000..9a89eaba --- /dev/null +++ b/docs/templates/RELEASE_EVIDENCE.md @@ -0,0 +1,11 @@ +# Release Evidence + +- Release/commit/container digest: +- Source coverage and supersession diff: +- OpenAPI/DDL/Event/Job/UI contract diff: +- Build/test/migration commands and results: +- Golden/OOS/data/replay evidence: +- Security/PII/license/SBOM evidence: +- Metrics/alerts/runbooks/rollback rehearsal: +- Capability flags and kill-switch state: +- Approvals: diff --git a/docs/templates/RUNBOOK.md b/docs/templates/RUNBOOK.md new file mode 100644 index 00000000..0a571a59 --- /dev/null +++ b/docs/templates/RUNBOOK.md @@ -0,0 +1,14 @@ +# Runbook + +- Service/Job/Slice: +- Owner / Secondary: +- SLO/SLA: +- Metrics/Alerts: +- Detection: +- Triage: +- Kill-switch scope: +- Safe retry/replay: +- Reconciliation: +- Rollback: +- Evidence to retain: +- Escalation: diff --git a/docs/templates/SLICE_SPEC.md b/docs/templates/SLICE_SPEC.md new file mode 100644 index 00000000..b88eca47 --- /dev/null +++ b/docs/templates/SLICE_SPEC.md @@ -0,0 +1,20 @@ +# Slice Spec: + +- Requirement ID: +- Policy/Data/Screen ID: +- 사용자 결과: +- 비목표: +- 권한/Capability: +- 선행 데이터와 PIT cutoff: +- 상태전이: +- Endpoint/Event/Job: +- DB Migration/Read Model: +- Idempotency/Concurrency: +- Given/When/Then: +- Tests: +- Metrics/Alerts: +- Runbook/Rollback: +- Owner/Secondary: +- Source: +- Assumption: +- Unknown/Decision Required: diff --git a/docs/templates/TECH_DEBT_ITEM.md b/docs/templates/TECH_DEBT_ITEM.md new file mode 100644 index 00000000..d79f14c1 --- /dev/null +++ b/docs/templates/TECH_DEBT_ITEM.md @@ -0,0 +1,10 @@ +# Technical Debt Item + +- ID / priority: +- Risk and interest: +- Root cause: +- Owner / secondary: +- Remediation: +- Trigger / due / gate: +- Exit test: +- Temporary control and expiry: diff --git a/docs/templates/TRACEABILITY.md b/docs/templates/TRACEABILITY.md new file mode 100644 index 00000000..1018a543 --- /dev/null +++ b/docs/templates/TRACEABILITY.md @@ -0,0 +1,5 @@ +# Traceability + +| REQ | POLICY/DATA | SLICE | ENDPOINT/JOB | DB/EVENT | SCREEN/COMPONENT | TEST | METRIC/RUNBOOK | PR | +|---|---|---|---|---|---|---|---|---| +| | | | | | | | | | diff --git a/docs/v12/00_EXECUTIVE_INTEGRATED_PROPOSAL.md b/docs/v12/00_EXECUTIVE_INTEGRATED_PROPOSAL.md new file mode 100644 index 00000000..6b7e69ca --- /dev/null +++ b/docs/v12/00_EXECUTIVE_INTEGRATED_PROPOSAL.md @@ -0,0 +1,54 @@ +# K-ArtSell Aegis v12.0 누적 통합 고도화 제안 + +상태: `IMPLEMENTATION_TEMPLATE / STATIC_VALIDATED / NOT_DOTNET_BUILD_VERIFIED` +제품 경계: `투자자문형 우선 · 자동주문 OFF · RESEARCH_CANDIDATE_NOT_PRODUCTION` + +## 1. 경영진 결론 + +이번 패키지는 v10.0 기준서, K-ArtSell 12.2 연구 번들, v11 구현 가속본, v11.1 하드닝본을 폐기하거나 요약본으로 대체하지 않는다. 기존 첨부파일을 원본 그대로 포함하고, 그 위에 다음 Delta를 누적한다. + +1. **정책·데이터·코드 단위의 의미 분리**: `SellRatioOfLot`, `TargetPortfolioWeightAfter`, `StrategicCoreFloorWeight`를 분리하여 단위 혼동을 제거한다. +2. **서버 주도 Evidence 계약**: 생산형 Endpoint는 Evidence/Model/Config 값을 클라이언트에서 받지 않고 승인된 PIT Read Model에서 조회한다. +3. **불변 이력과 재현성**: Evidence, Decision, Audit는 update/delete가 아닌 append/correction event로 보존하고 SHA를 기록한다. +4. **Fail-closed 보안**: 개발 전용 Header 인증은 Development에서만 허용하고 그 외 환경은 인증 공급자 미구성 시 401로 닫힌다. +5. **Vertical Slice 완결성**: Endpoint→Application→Pure Policy→Dapper→Outbox→DB→FE→Tests→Observability를 하나의 Done 단위로 묶는다. +6. **과유불급 통제**: Generic Repository, 범용 Mediator wrapper, 자동 plugin discovery, 조기 microservice 분리는 금지한다. +7. **상세 WBS 재정렬**: 화면 선행이 아니라 `PIT Data → Evidence → Sell/Reentry → Recommendation → Evaluation → Reconciliation/DR` Critical Path를 고정한다. + +## 2. 이번 버전의 실질 개선 + +| 영역 | 기존 위험 | v12.0 개선 | +|---|---|---| +| 알고리즘 | Lot 비율과 포트폴리오 비중 혼동 | 명시적 단위 계약과 정책별 우선순위 고정 | +| 데이터 | 원시/PIT/Projection 혼재 | L0~L7 계층, immutable raw, revision, lineage, rebuildable read model | +| BE | 연구 Endpoint가 생산형 계약처럼 보임 | 연구 전용 Endpoint와 생산형 Command 분리 | +| DB | Decision의 Version Set 부족 | Dataset/Model/Config/Code SHA, idempotency, correlation, hash 추가 | +| FE | DTO 수동 중복과 응답 무검증 | Zod를 계약 기준으로 사용하고 응답까지 runtime validation | +| 보안 | 인증 미구성 상태의 모호성 | DevelopmentHeader 또는 FailClosed 두 상태만 허용 | +| 운영 | Queue와 재처리 의미 불명확 | 9개 Queue 분리, JobRun/Watermark/Idempotency 계약 유지 | +| 바이브코딩 | AI 생성 코드가 근거 없이 확장될 가능성 | Source/Assumption/Unknown/Decision Required와 PR 증거 강제 | +| 기술부채 | 목록은 있으나 상환 순서가 약함 | Safety/Integrity/Delivery/Convenience 4등급과 WBS 연계 | + +## 3. 착수 우선순위 + +- **P0**: 원본 데이터 권리·manifest·PIT·기업행사·상폐·총수익·비용·FX. +- **P1**: EvidenceSnapshot, Lot/Cycle, Sell/Reentry Policy Chain, Golden Vector. +- **P2**: 추천 검토·승인·공개·사후평가와 감사추적. +- **P3**: 포트폴리오 위험·리밸런싱·대체상품. +- **P4**: KIS Capability, 대사, Pilot. 주문 Capability는 계속 OFF. + +## 4. Go/No-Go + +다음 중 하나라도 미충족이면 해당 Slice는 코딩 또는 승격하지 않는다. + +- Requirement/Policy/Data/API/DB/Test/PR Trace가 연결되지 않음. +- PIT `published_at` 또는 revision 계약이 없음. +- Evidence/Decision/Outbox가 같은 트랜잭션 또는 명시적 보상계약으로 묶이지 않음. +- 미승인 데이터가 Recommendation에 유입될 수 있음. +- Golden/OOS/비용 2배/룩어헤드/상폐/기업행사 테스트가 없음. +- Owner, Alert, Runbook, Rollback이 없음. +- 자동주문 또는 KIS 제출 Capability가 활성화됨. + +## 5. 검증 상태 + +Python 연구 계약 테스트는 실행해 통과했다. JSON/XML/CSV/Python 정적 검증과 금지 패턴 검사를 수행한다. 현재 작업 환경에는 .NET SDK와 pnpm이 없으므로 `dotnet restore/build/test`, PostgreSQL migration rehearsal, `pnpm install/test/build`는 실행하지 못했다. 이 항목은 G0의 차단 조건으로 남긴다. diff --git a/docs/v12/01_SOURCE_AND_GAP_AUDIT.md b/docs/v12/01_SOURCE_AND_GAP_AUDIT.md new file mode 100644 index 00000000..1d2453a2 --- /dev/null +++ b/docs/v12/01_SOURCE_AND_GAP_AUDIT.md @@ -0,0 +1,53 @@ +# 첨부 소스 감사와 비회귀 Delta + +## 1. 감사 대상 + +| Source | 역할 | 처리 | +|---|---|---| +| K-ArtSell 12.2 complete package | 연구 코드, 결과 CSV, 정량 검토, 구성안 | 원본 보존 + 연구 계약 하드닝 | +| SI 누적 통합 실행기준서 v10.0 | 47개 장 상세, 26 Slice, 16 Sprint, Gate | 최상위 기준선으로 보존 | +| v11 implementation acceleration | 최초 .NET/Vue 실행 골격 | 코드 Delta의 시작점 | +| v11.1 hardening | 보안·불변성·리팩터링 보강 | v12.0에 누적, testfile 제거 | + +원본 4개 첨부파일은 `attachments/original`에 그대로 포함한다. 압축 해제본은 `attachments/extracted`에 별도 보관한다. + +## 2. 연구 번들에서 유지해야 할 결론 + +- 알고리즘 상태는 생산 모델이 아니라 연구후보다. +- 매도 우선순위는 `Hard impairment → Portfolio survival → Profit floor → Concentration/Liquidity → Opportunity cost → Reentry`다. +- 일평가는 단타 적중률이 아니라 비용후 기대효용, calibration, ES/MDD, false-exit, 재진입 포착, 운영 무결성을 누적하는 품질관리다. +- 최소 252 거래일 Shadow, 복수 시장국면, PBO/DSR, 비용 2배 스트레스, 운영·준법 Gate가 필요하다. +- 원시 데이터, PIT 재무/컨센서스, 총수익, 상폐수익, 기업행사, Fee/Tax/FX가 완전하지 않다. + +## 3. 코드 감사에서 확인한 개선 필요점 + +### P0 + +1. v11/v11.1에는 실제 .NET 빌드 증거가 없고 현재 환경에서도 SDK가 없다. +2. FE lockfile이 없어 reproducible install이 불가능하다. +3. 기존 연구 Endpoint는 Evidence/Model/Config를 클라이언트가 전달했다. +4. Decision 테이블의 `sell_fraction`은 Lot 비율인지 포트폴리오 비중인지 모호했다. +5. 데이터 Read Model의 owner/version/watermark/rebuild 계약이 코드에 없었다. + +### P1 + +1. 정책 구현이 Hard/Gap/Two-close에 치우쳐 Portfolio survival, Concentration, Opportunity cost가 누락됐다. +2. Context 조회, Decision append, Outbox append의 생산형 트랜잭션 예제가 없었다. +3. Fail-closed 인증은 있었으나 개발용 안전한 실행 경로가 분리되지 않았다. +4. FE 응답 계약은 TypeScript interface만 있고 runtime 검증이 없었다. +5. Architecture Test가 문자열 검색 위주라 프로젝트 의존과 SQL schema contract를 충분히 확인하지 못했다. + +## 4. v12.0 Delta 상태 + +| 항목 | 상태 | 증거 | +|---|---|---| +| 6개 Sell Policy 순서 | 구현 | Domain/Policies + Unit Test | +| Lot ratio/portfolio weight 분리 | 구현 | Domain contract + DB migration + FE schema | +| 생산형 Endpoint 서버 Evidence 조회 | 구현 템플릿 | GenerateSellDecision Slice | +| Research Endpoint 명시적 분리 | 구현 | EvaluateResearchSellPolicy Slice | +| Decision/Context/Audit 불변성 | 구현 | 0012 migration trigger | +| Auth fail-closed/dev-only 분리 | 구현 | Host/Security | +| Python Golden Contract | 실행 검증 | research/hardening/TEST_RESULTS.txt | +| .NET build/test | 미검증 | G0 Decision Required | +| pnpm frozen install/build | 미검증 | lockfile 생성·승인 필요 | +| PostgreSQL fresh/upgrade/re-run | 미검증 | G0 DBA rehearsal 필요 | diff --git a/docs/v12/02_ARCHITECTURE_STANDARD.md b/docs/v12/02_ARCHITECTURE_STANDARD.md new file mode 100644 index 00000000..7256daee --- /dev/null +++ b/docs/v12/02_ARCHITECTURE_STANDARD.md @@ -0,0 +1,77 @@ +# 아키텍처 표준: Modular Monolith + Vertical Slice + +## 1. 구조적 선택 + +단일 배포를 유지하되 모듈과 PostgreSQL schema의 소유권을 분리한다. Microservice 분리는 조직·배포·데이터 소유권·SLO가 실제로 독립될 때만 ADR로 검토한다. + +```text +Host + ├─ BuildingBlocks + ├─ IdentityAccess + ├─ SecurityMaster / MarketData / FundamentalsPIT + ├─ ResearchFactors / ValuationForecast + ├─ SignalEngine + ├─ PortfolioRisk / ClientAdvisory + ├─ BacktestingEvaluation + ├─ ExecutionReconciliation + ├─ ReportingNotifications + └─ GovernanceAudit +``` + +## 2. 의존 방향 + +- Domain은 FastEndpoints, Dapper, Npgsql, Hangfire, HTTP를 참조하지 않는다. +- Application은 Domain과 좁은 Port를 사용한다. +- Infrastructure는 Dapper/Npgsql/Adapter를 구현한다. +- Host는 composition root다. +- 모듈 간 Source Table 직접 조회를 금지하고 Contract 또는 승인된 Read Model을 사용한다. + +## 3. SOLID의 적용 범위 + +| 원칙 | 실무 적용 | 금지 | +|---|---|---| +| SRP | Endpoint=HTTP, Handler=use case, Policy=decision, Adapter=I/O | God Service, Job 내 정책 | +| OCP | Policy/DQ/Adapter는 명시적 registry로 추가 | Reflection plugin framework | +| LSP | Adapter 교체 시 시간·단위·오류 contract test | Mock 성공만으로 교체 승인 | +| ISP | 작은 Port (`IClock`, `ISellDecisionContextReader`) | 범용 Repository | +| DIP | Domain은 외부 기술을 모름 | Npgsql type의 Domain 침투 | + +추상화는 두 번째 실제 구현과 동일한 변경축이 확인된 후 승격한다. + +## 4. Vertical Slice 표준 + +```text +Features// + Endpoint.cs + Request.cs + Response.cs + Validator.cs + Handler/Service.cs + Sql.cs + Mapper.cs + Contracts/ + Tests/ + README.md +``` + +한 Slice는 Endpoint, DB migration, Event/Job, FE route/component, unit/integration/E2E, metric/alert/runbook까지 완결되어야 Done이다. + +## 5. 트랜잭션 경계 + +생산형 Decision 생성은 같은 PostgreSQL 트랜잭션에서 다음을 수행한다. + +1. Idempotency 기존 결과 확인. +2. 승인된 immutable Context 조회. +3. 순수 Policy 평가. +4. Decision append와 hash 저장. +5. Outbox append. +6. Commit. + +외부 API 호출은 트랜잭션 밖에서 수행하고 Raw immutable store에 먼저 적재한다. + +## 6. 정규화와 역정규화 + +- Write Model: 3NF, append/reversal, valid_from/to, revision. +- Evidence: 원본 JSONB + 제약/검색에 필요한 핵심 컬럼. +- Read Model: Owner, ProjectionVersion, SourceWatermark, ContentHash, Rebuild 명령을 가져야 한다. +- 화면 성능을 이유로 Source Table을 직접 join하는 것을 금지한다. diff --git a/docs/v12/03_ALGORITHM_AND_DATA_CONTRACT.md b/docs/v12/03_ALGORITHM_AND_DATA_CONTRACT.md new file mode 100644 index 00000000..2e471d43 --- /dev/null +++ b/docs/v12/03_ALGORITHM_AND_DATA_CONTRACT.md @@ -0,0 +1,75 @@ +# 알고리즘·데이터 계약 + +## 1. 매도 정책 체인 + +고정 순서: + +1. `ALG-SELL-001` Hard impairment. +2. `ALG-SELL-PORT-001` Portfolio survival/capital floor. +3. `ALG-SELL-002` Gap floor breach. +4. `ALG-SELL-003` Two-close breach. +5. `ALG-SELL-004` Concentration/liquidity. +6. `ALG-SELL-005` Opportunity replacement. +7. `ALG-HOLD-001` Hold. + +상위 정책이 결정을 생성하면 하위 정책은 평가 결과를 상쇄하지 않는다. + +## 2. 단위 계약 + +| 필드 | 의미 | 단위 | +|---|---|---| +| `SellRatioOfLot` | 현재 Lot 수량 중 매도 비율 | 0~1 | +| `CurrentPortfolioWeight` | 해당 보유의 현재 포트폴리오 비중 | 0~1 | +| `StrategicCoreFloorWeight` | 매도 후 보존할 절대 포트폴리오 비중 | 0~1 | +| `TargetPortfolioWeightAfter` | 정책 실행 후 예상 포트폴리오 비중 | 0~1 | +| `OpportunityEdgeLowerBound` | 비용후 교체우위 신뢰구간 하단 | 수익률 | + +Profit floor, concentration, opportunity 정책은 strategic core를 보존한다. Portfolio survival은 생존 우선순위 때문에 core 아래 축소가 가능하다. Hard impairment는 전량매도와 자동 재진입 금지가 기본이다. + +## 3. Evidence Version Set + +Decision은 다음 값 없이는 저장하지 않는다. + +- PositionLotId, CycleId. +- EvidenceId, DatasetId. +- ModelVersion, ConfigVersion, CodeSha. +- AsOf, PublishedAtCutoff. +- PolicyId, Priority, ReasonCode. +- DecisionHash, IdempotencyKey, CorrelationId. + +## 4. Reentry 상태기계 + +`WATCHING → READY → REENTERED → WATCHING/OPEN`이며 Hard impairment는 `CLOSED`, 126 거래일 만료는 `EXPIRED`다. + +Ready 조건: + +- 매도 후 최소 10 거래일. +- 직전 단계 후 최소 10 거래일. +- 상승 중인 50일선 회복. +- 직전 20 거래일 고점 돌파. +- 자산유형별 추가 확인조건. + +재진입은 새 CycleId와 새 Lot을 생성한다. + +## 5. 데이터 계층 + +| Layer | 내용 | 불변조건 | +|---|---|---| +| L0 | Source Catalog/License/SLA | 승인 없는 소스 사용 금지 | +| L1 | Raw payload/hash | overwrite 금지 | +| L2 | Canonical PIT/revision | published_at 이후 사용 | +| L3 | DQ/lineage/dataset manifest | quarantine 사용 금지 | +| L4 | Feature/Forecast/Risk/Evidence | code/config/data hash | +| L5 | Decision/Review/Publish/Outcome | append-only audit | +| L6 | Read Model | version/watermark/rebuild | +| L7 | Backtest/ModelCard/Release | artifact hash | + +## 6. 검증 + +- Lookahead 0. +- 당시 유니버스와 상폐수익 포함. +- 기업행사·총수익·Fee/Tax/FX PIT. +- deterministic seed와 frozen manifest. +- 비용 2배에서도 기대효용 양수. +- PBO ≤20%, DSR ≥95%는 승격 Gate이며 현재 달성 주장 아님. +- 재진입 포착률 ≥65%, false-exit 연 2% 이하도 Shadow 검증 목표다. diff --git a/docs/v12/04_BE_FE_COMPONENT_STANDARD.md b/docs/v12/04_BE_FE_COMPONENT_STANDARD.md new file mode 100644 index 00000000..a0466b01 --- /dev/null +++ b/docs/v12/04_BE_FE_COMPONENT_STANDARD.md @@ -0,0 +1,63 @@ +# BE/FE 컴포넌트 표준 + +## 1. Backend + +### 1.1 Endpoint + +- HTTP parsing, auth, idempotency header, ProblemDetails 변환만 수행한다. +- 생산형 Command는 `PositionLotId`, `AsOf` 등 업무 식별자만 받는다. +- 모델버전·임계값·Evidence를 클라이언트가 지정하지 못한다. + +### 1.2 Application + +- 트랜잭션과 유스케이스 오케스트레이션을 담당한다. +- 재시도 가능한 Command는 IdempotencyKey를 필수로 한다. +- 외부 호출과 DB transaction을 혼합하지 않는다. + +### 1.3 Domain Policy + +- 순수 함수다. +- 시간, DB, 네트워크, 랜덤을 직접 사용하지 않는다. +- 순서·단위·경계값을 Unit/Golden test로 고정한다. + +### 1.4 Dapper/SQL + +- schema-qualified table과 명시적 column만 사용한다. +- `SELECT *` 금지. +- SQL은 Slice 가까이에 두되 공통 query abstraction을 과도하게 만들지 않는다. +- immutable table은 trigger와 권한으로 update/delete를 차단한다. + +## 2. Frontend + +### 2.1 상태 소유권 + +- Server state: TanStack Query. +- User/session/role/UI preference: Pinia. +- Form: vee-validate + Zod. +- URL shareable state: vue-router query/params. +- 대량 표: AG Grid server-side model. + +### 2.2 계약 + +- Zod schema를 request/response runtime validation에 사용한다. +- TypeScript type은 `z.infer`로 파생한다. +- 같은 명령의 retry는 동일 Idempotency-Key를 재사용한다. +- 409/422/429/503을 서로 다른 UX로 처리한다. + +### 2.3 공통 컴포넌트 + +- `QueryStateBoundary`: loading/empty/partial/stale/warn/error/401/403/409/expired/readonly. +- `PermissionGuard`: 역할 기반 표시경계. 서버 권한검사를 대체하지 않는다. +- `DataFreshnessBadge`: as-of와 stale 상태. +- `VersionConflictDialog`: If-Match/409 처리. +- `DataGridShell`, `CrudForm`은 실제 반복이 확인된 후 추가한다. + +### 2.4 도메인 컴포넌트 + +- EvidencePanel. +- ProtectionFloorPanel. +- ReentryTimeline. +- ApprovalPanel. +- OutcomeAttributionPanel. + +업무 의미가 다른 화면을 props가 많은 범용 컴포넌트 하나로 합치지 않는다. diff --git a/docs/v12/05_VIBE_CODING_AND_HALLUCINATION_CONTROL.md b/docs/v12/05_VIBE_CODING_AND_HALLUCINATION_CONTROL.md new file mode 100644 index 00000000..273a445c --- /dev/null +++ b/docs/v12/05_VIBE_CODING_AND_HALLUCINATION_CONTROL.md @@ -0,0 +1,44 @@ +# 바이브코딩·홀루시네이션 통제 + +## 1. 기본 원칙 + +AI는 구현 초안을 만든다. 정책·증거·리스크·승격은 사람이 승인한다. 채팅, 자동완성, 생성 코드 자체는 Source of Truth가 아니다. + +## 2. 모든 변경의 4분류 + +- `SOURCE`: 첨부 기준서, 승인 ADR, 계약, 데이터 증거에 직접 근거. +- `ASSUMPTION`: 착수 편의를 위한 가정. 만료일과 승인자가 필요. +- `UNKNOWN`: 자료로 판단할 수 없음. +- `DECISION_REQUIRED`: 코딩 전 결정이 필요한 차단 항목. + +## 3. AI 작업 패킷 + +AI에 전달하는 작업은 최소 다음을 포함한다. + +1. Requirement ID / Slice ID. +2. 사용자 결과와 비목표. +3. Policy ID와 단위·우선순위. +4. Data source/PIT/revision/quality. +5. API/DB/Event/Job/UI 계약. +6. Given/When/Then과 실패상태. +7. 금지 패턴. +8. 검증 명령과 완료 증거. + +## 4. PR 차단 규칙 + +- Source/Assumption/Unknown 표기가 없음. +- 새 library/pattern/table/threshold에 ADR이 없음. +- Migration fresh/upgrade/re-run evidence가 없음. +- Golden/OOS/Architecture/Data/E2E test가 없음. +- 실행하지 않은 test를 통과로 기록함. +- 실고객 데이터·계좌·token·secret가 prompt/log/fixture에 포함됨. +- 자동주문 Capability를 우회하거나 기본 ON으로 변경함. + +## 5. 리팩터링 원칙 + +- 동작 보존 refactoring과 정책 변경을 한 PR에 섞지 않는다. +- 먼저 Characterization/Golden test를 만든다. +- God Service를 Endpoint/Application/Policy/Adapter로 분리한다. +- Generic Repository로 Dapper SQL 의미를 숨기지 않는다. +- 중복은 의미와 변경축이 같을 때만 추상화한다. +- 기술부채는 등록, owner, impact, repayment trigger, deadline을 가진다. diff --git a/docs/v12/06_DELIVERY_GATES.md b/docs/v12/06_DELIVERY_GATES.md new file mode 100644 index 00000000..89a06db9 --- /dev/null +++ b/docs/v12/06_DELIVERY_GATES.md @@ -0,0 +1,49 @@ +# Delivery Gate + +## G0 Toolchain/Repository + +- .NET 10 SDK, Node 22, pnpm 10 설치. +- `pnpm-lock.yaml` 생성·검토·커밋. +- `dotnet restore/build/test`와 `pnpm install --frozen-lockfile/typecheck/test/build` 통과. +- PostgreSQL 17 fresh/upgrade/re-run migration. + +## G1 Data Minimum + +- SecurityMaster, MarketCalendar, Raw immutable, PIT timestamp, revision, DQ. +- 기업행사·총수익·상폐·FX·Fee/Tax contract. +- Replay same manifest/hash. + +## G2 Algorithm Contract + +- 6개 Sell Policy와 Reentry state machine Golden. +- Lot/Cycle reset. +- Evidence Version Set 100%. +- 비용 2배, boundary ±epsilon, lookahead tests. + +## G3 Advisory MVP + +- Recommendation→Review→Publish→ClientDecision→Outcome E2E. +- maker-checker, approval expiry, unapproved publication 0. +- 고객 화면에 근거·반대증거·불확실성·비용·재진입 표시. + +## G4 Shadow + +- 최소 252 거래일, 복수 국면. +- 운영 무결성 오류 0. +- 매도/재진입/예측 calibration/위험감소 KPI 누적. + +## G5 Pilot Readiness + +- AuthN/AuthZ, PII, audit, reconciliation, kill-switch, DR. +- SLO/RPO/RTO와 Runbook. +- 법무·준법·정보보호 승인. + +## G6 Advisory Go-Live + +- 자동주문 OFF. +- backfill/reconciliation/cutover/rollback rehearsal. +- Release Evidence와 residual risk 승인. + +## 일임형 별도 검토 Gate + +Shadow 기간·OOS·PBO/DSR·비용후 효용·운영/준법/고객보호를 모두 통과한 뒤 별도 프로젝트로 검토한다. 적중률 하나로 전환하지 않는다. diff --git a/docs/v12/07_WBS_MASTER.csv b/docs/v12/07_WBS_MASTER.csv new file mode 100644 index 00000000..724a0def --- /dev/null +++ b/docs/v12/07_WBS_MASTER.csv @@ -0,0 +1,103 @@ +WBS_ID,Sprint,Weeks,Vertical_Slice,Domain,Workstream,Sprint_Goal,Task,Artifact,Acceptance_Criteria,Owner,Reviewer,PD,Dependencies,Source_Status,Gate,Priority,Status +AEG-S0-01,S0,W1-2,VS-00,Foundation,GOV,착수·통제·Walking Skeleton,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,,SOURCE+DESIGN_PROPOSAL,G0,P0,PLANNED +AEG-S0-02,S0,W1-2,VS-00,Foundation,DATA,착수·통제·Walking Skeleton,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,,SOURCE+DESIGN_PROPOSAL,G0,P0,PLANNED +AEG-S0-03,S0,W1-2,VS-00,Foundation,BE,착수·통제·Walking Skeleton,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,,SOURCE+DESIGN_PROPOSAL,G0,P0,PLANNED +AEG-S0-04,S0,W1-2,VS-00,Foundation,FE,착수·통제·Walking Skeleton,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,,SOURCE+DESIGN_PROPOSAL,G0,P1,PLANNED +AEG-S0-05,S0,W1-2,VS-00,Foundation,TEST,착수·통제·Walking Skeleton,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,,SOURCE+DESIGN_PROPOSAL,G0,P0,PLANNED +AEG-S0-06,S0,W1-2,VS-00,Foundation,OPS,착수·통제·Walking Skeleton,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,,SOURCE+DESIGN_PROPOSAL,G0,P1,PLANNED +AEG-S0-07,S0,W1-2,VS-00,Foundation,TOOLCHAIN,,SDK/lockfile/CI 재현성 확보,"global.json, pnpm-lock.yaml, CI logs",dotnet/pnpm frozen build green,DevOps,Architect,8,,SOURCE+DESIGN_PROPOSAL,G0,P0,PLANNED +AEG-S1-01,S1,W3-4,VS-01/02,Identity/SecurityMaster,GOV,인증·권한·상품기준·시장캘린더,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S0-DONE,SOURCE+DESIGN_PROPOSAL,G1-A,P0,PLANNED +AEG-S1-02,S1,W3-4,VS-01/02,Identity/SecurityMaster,DATA,인증·권한·상품기준·시장캘린더,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S0-DONE,SOURCE+DESIGN_PROPOSAL,G1-A,P0,PLANNED +AEG-S1-03,S1,W3-4,VS-01/02,Identity/SecurityMaster,BE,인증·권한·상품기준·시장캘린더,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S0-DONE,SOURCE+DESIGN_PROPOSAL,G1-A,P0,PLANNED +AEG-S1-04,S1,W3-4,VS-01/02,Identity/SecurityMaster,FE,인증·권한·상품기준·시장캘린더,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S0-DONE,SOURCE+DESIGN_PROPOSAL,G1-A,P1,PLANNED +AEG-S1-05,S1,W3-4,VS-01/02,Identity/SecurityMaster,TEST,인증·권한·상품기준·시장캘린더,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S0-DONE,SOURCE+DESIGN_PROPOSAL,G1-A,P0,PLANNED +AEG-S1-06,S1,W3-4,VS-01/02,Identity/SecurityMaster,OPS,인증·권한·상품기준·시장캘린더,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S0-DONE,SOURCE+DESIGN_PROPOSAL,G1-A,P1,PLANNED +AEG-S10-01,S10,W21-22,VS-12/22,Buy/Replacement,GOV,매수후보·대체상품·상품탐색,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S9-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio Gate,P0,PLANNED +AEG-S10-02,S10,W21-22,VS-12/22,Buy/Replacement,DATA,매수후보·대체상품·상품탐색,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S9-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio Gate,P0,PLANNED +AEG-S10-03,S10,W21-22,VS-12/22,Buy/Replacement,BE,매수후보·대체상품·상품탐색,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S9-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio Gate,P0,PLANNED +AEG-S10-04,S10,W21-22,VS-12/22,Buy/Replacement,FE,매수후보·대체상품·상품탐색,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S9-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio Gate,P1,PLANNED +AEG-S10-05,S10,W21-22,VS-12/22,Buy/Replacement,TEST,매수후보·대체상품·상품탐색,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S9-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio Gate,P0,PLANNED +AEG-S10-06,S10,W21-22,VS-12/22,Buy/Replacement,OPS,매수후보·대체상품·상품탐색,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S9-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio Gate,P1,PLANNED +AEG-S11-01,S11,W23-24,VS-18/24,Shadow/Scorecard,GOV,가상체결·일평가·drift,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S10-DONE,SOURCE+DESIGN_PROPOSAL,G4-A,P0,PLANNED +AEG-S11-02,S11,W23-24,VS-18/24,Shadow/Scorecard,DATA,가상체결·일평가·drift,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S10-DONE,SOURCE+DESIGN_PROPOSAL,G4-A,P0,PLANNED +AEG-S11-03,S11,W23-24,VS-18/24,Shadow/Scorecard,BE,가상체결·일평가·drift,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S10-DONE,SOURCE+DESIGN_PROPOSAL,G4-A,P0,PLANNED +AEG-S11-04,S11,W23-24,VS-18/24,Shadow/Scorecard,FE,가상체결·일평가·drift,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S10-DONE,SOURCE+DESIGN_PROPOSAL,G4-A,P1,PLANNED +AEG-S11-05,S11,W23-24,VS-18/24,Shadow/Scorecard,TEST,가상체결·일평가·drift,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S10-DONE,SOURCE+DESIGN_PROPOSAL,G4-A,P0,PLANNED +AEG-S11-06,S11,W23-24,VS-18/24,Shadow/Scorecard,OPS,가상체결·일평가·drift,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S10-DONE,SOURCE+DESIGN_PROPOSAL,G4-A,P1,PLANNED +AEG-S12-01,S12,W25-26,VS-23,KIS/Reconciliation,GOV,Capability OFF Adapter·대사,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S11-DONE,SOURCE+DESIGN_PROPOSAL,Pilot-A,P0,PLANNED +AEG-S12-02,S12,W25-26,VS-23,KIS/Reconciliation,DATA,Capability OFF Adapter·대사,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S11-DONE,SOURCE+DESIGN_PROPOSAL,Pilot-A,P0,PLANNED +AEG-S12-03,S12,W25-26,VS-23,KIS/Reconciliation,BE,Capability OFF Adapter·대사,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S11-DONE,SOURCE+DESIGN_PROPOSAL,Pilot-A,P0,PLANNED +AEG-S12-04,S12,W25-26,VS-23,KIS/Reconciliation,FE,Capability OFF Adapter·대사,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S11-DONE,SOURCE+DESIGN_PROPOSAL,Pilot-A,P1,PLANNED +AEG-S12-05,S12,W25-26,VS-23,KIS/Reconciliation,TEST,Capability OFF Adapter·대사,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S11-DONE,SOURCE+DESIGN_PROPOSAL,Pilot-A,P0,PLANNED +AEG-S12-06,S12,W25-26,VS-23,KIS/Reconciliation,OPS,Capability OFF Adapter·대사,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S11-DONE,SOURCE+DESIGN_PROPOSAL,Pilot-A,P1,PLANNED +AEG-S12-07,S12,W25-26,VS-23,Execution,CAPABILITY,,KIS Capability OFF 및 대사,"adapter stub, capability tests","외부 주문 호출 0, partial/duplicate/out-of-order fill break 생성",BE/Ops,Security/Compliance,10,AEG-S11-06,SOURCE+DESIGN_PROPOSAL,Pilot-A,P0,PLANNED +AEG-S13-01,S13,W27-28,VS-25,Security/DR/UAT,GOV,보안·kill-switch·DR·UAT,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S12-DONE,SOURCE+DESIGN_PROPOSAL,G5,P0,PLANNED +AEG-S13-02,S13,W27-28,VS-25,Security/DR/UAT,DATA,보안·kill-switch·DR·UAT,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S12-DONE,SOURCE+DESIGN_PROPOSAL,G5,P0,PLANNED +AEG-S13-03,S13,W27-28,VS-25,Security/DR/UAT,BE,보안·kill-switch·DR·UAT,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S12-DONE,SOURCE+DESIGN_PROPOSAL,G5,P0,PLANNED +AEG-S13-04,S13,W27-28,VS-25,Security/DR/UAT,FE,보안·kill-switch·DR·UAT,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S12-DONE,SOURCE+DESIGN_PROPOSAL,G5,P1,PLANNED +AEG-S13-05,S13,W27-28,VS-25,Security/DR/UAT,TEST,보안·kill-switch·DR·UAT,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S12-DONE,SOURCE+DESIGN_PROPOSAL,G5,P0,PLANNED +AEG-S13-06,S13,W27-28,VS-25,Security/DR/UAT,OPS,보안·kill-switch·DR·UAT,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S12-DONE,SOURCE+DESIGN_PROPOSAL,G5,P1,PLANNED +AEG-S14-01,S14,W29-30,Cross,Performance/Cutover,GOV,SLA·backfill·전환리허설,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S13-DONE,SOURCE+DESIGN_PROPOSAL,G6-A,P0,PLANNED +AEG-S14-02,S14,W29-30,Cross,Performance/Cutover,DATA,SLA·backfill·전환리허설,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S13-DONE,SOURCE+DESIGN_PROPOSAL,G6-A,P0,PLANNED +AEG-S14-03,S14,W29-30,Cross,Performance/Cutover,BE,SLA·backfill·전환리허설,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S13-DONE,SOURCE+DESIGN_PROPOSAL,G6-A,P0,PLANNED +AEG-S14-04,S14,W29-30,Cross,Performance/Cutover,FE,SLA·backfill·전환리허설,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S13-DONE,SOURCE+DESIGN_PROPOSAL,G6-A,P1,PLANNED +AEG-S14-05,S14,W29-30,Cross,Performance/Cutover,TEST,SLA·backfill·전환리허설,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S13-DONE,SOURCE+DESIGN_PROPOSAL,G6-A,P0,PLANNED +AEG-S14-06,S14,W29-30,Cross,Performance/Cutover,OPS,SLA·backfill·전환리허설,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S13-DONE,SOURCE+DESIGN_PROPOSAL,G6-A,P1,PLANNED +AEG-S15-01,S15,W31-32,Cross,Go-Live/Hypercare,GOV,자문형 전환·초기안정화,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S14-DONE,SOURCE+DESIGN_PROPOSAL,G6,P0,PLANNED +AEG-S15-02,S15,W31-32,Cross,Go-Live/Hypercare,DATA,자문형 전환·초기안정화,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S14-DONE,SOURCE+DESIGN_PROPOSAL,G6,P0,PLANNED +AEG-S15-03,S15,W31-32,Cross,Go-Live/Hypercare,BE,자문형 전환·초기안정화,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S14-DONE,SOURCE+DESIGN_PROPOSAL,G6,P0,PLANNED +AEG-S15-04,S15,W31-32,Cross,Go-Live/Hypercare,FE,자문형 전환·초기안정화,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S14-DONE,SOURCE+DESIGN_PROPOSAL,G6,P1,PLANNED +AEG-S15-05,S15,W31-32,Cross,Go-Live/Hypercare,TEST,자문형 전환·초기안정화,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S14-DONE,SOURCE+DESIGN_PROPOSAL,G6,P0,PLANNED +AEG-S15-06,S15,W31-32,Cross,Go-Live/Hypercare,OPS,자문형 전환·초기안정화,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S14-DONE,SOURCE+DESIGN_PROPOSAL,G6,P1,PLANNED +AEG-S2-01,S2,W5-6,VS-03/04,MarketData,GOV,PIT 시세·기업행사·총수익·DQ,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S1-DONE,SOURCE+DESIGN_PROPOSAL,G1-B,P0,PLANNED +AEG-S2-02,S2,W5-6,VS-03/04,MarketData,DATA,PIT 시세·기업행사·총수익·DQ,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S1-DONE,SOURCE+DESIGN_PROPOSAL,G1-B,P0,PLANNED +AEG-S2-03,S2,W5-6,VS-03/04,MarketData,BE,PIT 시세·기업행사·총수익·DQ,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S1-DONE,SOURCE+DESIGN_PROPOSAL,G1-B,P0,PLANNED +AEG-S2-04,S2,W5-6,VS-03/04,MarketData,FE,PIT 시세·기업행사·총수익·DQ,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S1-DONE,SOURCE+DESIGN_PROPOSAL,G1-B,P1,PLANNED +AEG-S2-05,S2,W5-6,VS-03/04,MarketData,TEST,PIT 시세·기업행사·총수익·DQ,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S1-DONE,SOURCE+DESIGN_PROPOSAL,G1-B,P0,PLANNED +AEG-S2-06,S2,W5-6,VS-03/04,MarketData,OPS,PIT 시세·기업행사·총수익·DQ,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S1-DONE,SOURCE+DESIGN_PROPOSAL,G1-B,P1,PLANNED +AEG-S2-07,S2,W5-6,VS-03/04,MarketData,GOLDEN,,기업행사·상폐·총수익 Golden,"Golden fixtures, replay report",삼성전자/하이닉스/JYP/AAMRQ 포함 회귀 통과,Data/Quant,QA,8,AEG-S1-02,SOURCE+DESIGN_PROPOSAL,G1-B,P0,PLANNED +AEG-S3-01,S3,W7-8,VS-05/06/08,Fundamentals/Cost/Ledger,GOV,OPENDART·비용·원장,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S2-DONE,SOURCE+DESIGN_PROPOSAL,G1,P0,PLANNED +AEG-S3-02,S3,W7-8,VS-05/06/08,Fundamentals/Cost/Ledger,DATA,OPENDART·비용·원장,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S2-DONE,SOURCE+DESIGN_PROPOSAL,G1,P0,PLANNED +AEG-S3-03,S3,W7-8,VS-05/06/08,Fundamentals/Cost/Ledger,BE,OPENDART·비용·원장,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S2-DONE,SOURCE+DESIGN_PROPOSAL,G1,P0,PLANNED +AEG-S3-04,S3,W7-8,VS-05/06/08,Fundamentals/Cost/Ledger,FE,OPENDART·비용·원장,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S2-DONE,SOURCE+DESIGN_PROPOSAL,G1,P1,PLANNED +AEG-S3-05,S3,W7-8,VS-05/06/08,Fundamentals/Cost/Ledger,TEST,OPENDART·비용·원장,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S2-DONE,SOURCE+DESIGN_PROPOSAL,G1,P0,PLANNED +AEG-S3-06,S3,W7-8,VS-05/06/08,Fundamentals/Cost/Ledger,OPS,OPENDART·비용·원장,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S2-DONE,SOURCE+DESIGN_PROPOSAL,G1,P1,PLANNED +AEG-S4-01,S4,W9-10,VS-09/10,Evidence/Sell,GOV,EvidenceSnapshot·Sell Policy Chain,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S3-DONE,SOURCE+DESIGN_PROPOSAL,G2-A,P0,PLANNED +AEG-S4-02,S4,W9-10,VS-09/10,Evidence/Sell,DATA,EvidenceSnapshot·Sell Policy Chain,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S3-DONE,SOURCE+DESIGN_PROPOSAL,G2-A,P0,PLANNED +AEG-S4-03,S4,W9-10,VS-09/10,Evidence/Sell,BE,EvidenceSnapshot·Sell Policy Chain,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S3-DONE,SOURCE+DESIGN_PROPOSAL,G2-A,P0,PLANNED +AEG-S4-04,S4,W9-10,VS-09/10,Evidence/Sell,FE,EvidenceSnapshot·Sell Policy Chain,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S3-DONE,SOURCE+DESIGN_PROPOSAL,G2-A,P1,PLANNED +AEG-S4-05,S4,W9-10,VS-09/10,Evidence/Sell,TEST,EvidenceSnapshot·Sell Policy Chain,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S3-DONE,SOURCE+DESIGN_PROPOSAL,G2-A,P0,PLANNED +AEG-S4-06,S4,W9-10,VS-09/10,Evidence/Sell,OPS,EvidenceSnapshot·Sell Policy Chain,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S3-DONE,SOURCE+DESIGN_PROPOSAL,G2-A,P1,PLANNED +AEG-S4-07,S4,W9-10,VS-10,SignalEngine,POLICY,,6개 Sell Policy와 단위계약,"Policy IDs, Golden vectors",우선순위·core floor·lot ratio/weight 불변조건 통과,Quant/BE,Risk/QA,10,AEG-S3-02,SOURCE+DESIGN_PROPOSAL,G2-A,P0,PLANNED +AEG-S5-01,S5,W11-12,VS-11/19,Reentry/Backtest,GOV,재진입·동결 OOS·Golden,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S4-DONE,SOURCE+DESIGN_PROPOSAL,G2,P0,PLANNED +AEG-S5-02,S5,W11-12,VS-11/19,Reentry/Backtest,DATA,재진입·동결 OOS·Golden,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S4-DONE,SOURCE+DESIGN_PROPOSAL,G2,P0,PLANNED +AEG-S5-03,S5,W11-12,VS-11/19,Reentry/Backtest,BE,재진입·동결 OOS·Golden,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S4-DONE,SOURCE+DESIGN_PROPOSAL,G2,P0,PLANNED +AEG-S5-04,S5,W11-12,VS-11/19,Reentry/Backtest,FE,재진입·동결 OOS·Golden,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S4-DONE,SOURCE+DESIGN_PROPOSAL,G2,P1,PLANNED +AEG-S5-05,S5,W11-12,VS-11/19,Reentry/Backtest,TEST,재진입·동결 OOS·Golden,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S4-DONE,SOURCE+DESIGN_PROPOSAL,G2,P0,PLANNED +AEG-S5-06,S5,W11-12,VS-11/19,Reentry/Backtest,OPS,재진입·동결 OOS·Golden,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S4-DONE,SOURCE+DESIGN_PROPOSAL,G2,P1,PLANNED +AEG-S5-07,S5,W11-12,VS-11,SignalEngine,REENTRY,,ReentryWatch 다단계 상태기계,state transition tests,10세션/20고점/50일선/추가조건/126일 만료 통과,Quant/BE,QA,8,AEG-S4-07,SOURCE+DESIGN_PROPOSAL,G2,P0,PLANNED +AEG-S6-01,S6,W13-14,VS-07/08,Client/Portfolio,GOV,고객·IPS·계좌·보유·수익률,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S5-DONE,SOURCE+DESIGN_PROPOSAL,MVP-A,P0,PLANNED +AEG-S6-02,S6,W13-14,VS-07/08,Client/Portfolio,DATA,고객·IPS·계좌·보유·수익률,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S5-DONE,SOURCE+DESIGN_PROPOSAL,MVP-A,P0,PLANNED +AEG-S6-03,S6,W13-14,VS-07/08,Client/Portfolio,BE,고객·IPS·계좌·보유·수익률,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S5-DONE,SOURCE+DESIGN_PROPOSAL,MVP-A,P0,PLANNED +AEG-S6-04,S6,W13-14,VS-07/08,Client/Portfolio,FE,고객·IPS·계좌·보유·수익률,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S5-DONE,SOURCE+DESIGN_PROPOSAL,MVP-A,P1,PLANNED +AEG-S6-05,S6,W13-14,VS-07/08,Client/Portfolio,TEST,고객·IPS·계좌·보유·수익률,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S5-DONE,SOURCE+DESIGN_PROPOSAL,MVP-A,P0,PLANNED +AEG-S6-06,S6,W13-14,VS-07/08,Client/Portfolio,OPS,고객·IPS·계좌·보유·수익률,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S5-DONE,SOURCE+DESIGN_PROPOSAL,MVP-A,P1,PLANNED +AEG-S7-01,S7,W15-16,VS-14/15,Recommendation/Review,GOV,추천 생성·maker-checker,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S6-DONE,SOURCE+DESIGN_PROPOSAL,MVP-B,P0,PLANNED +AEG-S7-02,S7,W15-16,VS-14/15,Recommendation/Review,DATA,추천 생성·maker-checker,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S6-DONE,SOURCE+DESIGN_PROPOSAL,MVP-B,P0,PLANNED +AEG-S7-03,S7,W15-16,VS-14/15,Recommendation/Review,BE,추천 생성·maker-checker,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S6-DONE,SOURCE+DESIGN_PROPOSAL,MVP-B,P0,PLANNED +AEG-S7-04,S7,W15-16,VS-14/15,Recommendation/Review,FE,추천 생성·maker-checker,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S6-DONE,SOURCE+DESIGN_PROPOSAL,MVP-B,P1,PLANNED +AEG-S7-05,S7,W15-16,VS-14/15,Recommendation/Review,TEST,추천 생성·maker-checker,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S6-DONE,SOURCE+DESIGN_PROPOSAL,MVP-B,P0,PLANNED +AEG-S7-06,S7,W15-16,VS-14/15,Recommendation/Review,OPS,추천 생성·maker-checker,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S6-DONE,SOURCE+DESIGN_PROPOSAL,MVP-B,P1,PLANNED +AEG-S8-01,S8,W17-18,VS-16/17/18,Publish/Outcome,GOV,고객공개·행동·사후평가·감사,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S7-DONE,SOURCE+DESIGN_PROPOSAL,G3,P0,PLANNED +AEG-S8-02,S8,W17-18,VS-16/17/18,Publish/Outcome,DATA,고객공개·행동·사후평가·감사,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S7-DONE,SOURCE+DESIGN_PROPOSAL,G3,P0,PLANNED +AEG-S8-03,S8,W17-18,VS-16/17/18,Publish/Outcome,BE,고객공개·행동·사후평가·감사,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S7-DONE,SOURCE+DESIGN_PROPOSAL,G3,P0,PLANNED +AEG-S8-04,S8,W17-18,VS-16/17/18,Publish/Outcome,FE,고객공개·행동·사후평가·감사,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S7-DONE,SOURCE+DESIGN_PROPOSAL,G3,P1,PLANNED +AEG-S8-05,S8,W17-18,VS-16/17/18,Publish/Outcome,TEST,고객공개·행동·사후평가·감사,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S7-DONE,SOURCE+DESIGN_PROPOSAL,G3,P0,PLANNED +AEG-S8-06,S8,W17-18,VS-16/17/18,Publish/Outcome,OPS,고객공개·행동·사후평가·감사,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S7-DONE,SOURCE+DESIGN_PROPOSAL,G3,P1,PLANNED +AEG-S8-07,S8,W17-18,VS-16/18,Advisory/Evaluation,AUDIT,,Evidence→Decision→Review→Publish→Outcome 추적,audit trace endpoint/test,publicationId 기준 100% E2E trace,BE/QA,Compliance/Audit,8,AEG-S7-03,SOURCE+DESIGN_PROPOSAL,G3,P0,PLANNED +AEG-S9-01,S9,W19-20,VS-13/21,Risk/Rebalance,GOV,ES·집중·상관·리밸런싱,요구사항·정책·Decision Log 확정,"docs/SLICE_SPEC, TRACEABILITY, ADR",승인자·비목표·실패상태·Source 상태가 명시됨,PM/Architect,Compliance/Quant,3,S8-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio-A,P0,PLANNED +AEG-S9-02,S9,W19-20,VS-13/21,Risk/Rebalance,DATA,ES·집중·상관·리밸런싱,데이터 계약·PIT·DQ·lineage 구현,"DB migration, source contract, DQ rules",published_at/revision/hash/watermark와 quarantine 경로 통과,Data/DBA,Quant/QA,6,S8-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio-A,P0,PLANNED +AEG-S9-03,S9,W19-20,VS-13/21,Risk/Rebalance,BE,ES·집중·상관·리밸런싱,Vertical Slice Backend 구현,"Endpoint, Validator, Application, Policy, Dapper SQL, Outbox",멱등·트랜잭션·불변조건·ProblemDetails·trace 통과,BE Lead,Architect/QA,8,S8-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio-A,P0,PLANNED +AEG-S9-04,S9,W19-20,VS-13/21,Risk/Rebalance,FE,ES·집중·상관·리밸런싱,화면·컴포넌트·상태 계약 구현,"Vue route, Zod, Query, components",loading/empty/warn/error/401/403/409/expired와 접근성 통과,FE Lead,UX/QA,6,S8-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio-A,P1,PLANNED +AEG-S9-05,S9,W19-20,VS-13/21,Risk/Rebalance,TEST,ES·집중·상관·리밸런싱,자동화 테스트와 Golden/Regression,"xUnit, Vitest, Playwright, Data/Architecture tests","Given/When/Then, boundary, replay, failure path 자동화",QA Lead,Quant/BE/FE,6,S8-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio-A,P0,PLANNED +AEG-S9-06,S9,W19-20,VS-13/21,Risk/Rebalance,OPS,ES·집중·상관·리밸런싱,관제·Job·Runbook·Rollback,"OTel metric/alert, Hangfire job, runbook","Owner/Secondary, SLA, retry/reprocess, rollback rehearsal",SRE/Ops,Security/PM,4,S8-DONE,SOURCE+DESIGN_PROPOSAL,Portfolio-A,P1,PLANNED diff --git a/docs/v12/08_TECH_DEBT_REGISTER.csv b/docs/v12/08_TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..bd2643b7 --- /dev/null +++ b/docs/v12/08_TECH_DEBT_REGISTER.csv @@ -0,0 +1,21 @@ +ID,Category,Priority,Debt,Impact,Repayment_Action,Owner,Trigger/Gate,Status +TD-001,Safety,P0,FE lockfile 없음,재현 불가능,G0 전 pnpm-lock 생성·review·commit,DevOps,G0,OPEN +TD-002,Safety,P0,.NET build 미검증,컴파일 결함 가능,승인 환경에서 restore/build/test,BE Lead,G0,OPEN +TD-003,Integrity,P0,PostgreSQL migration rehearsal 미실행,fresh/upgrade 실패 가능,fresh/upgrade/re-run/failure 복구,DBA,G0,OPEN +TD-004,Integrity,P0,원시 연구 데이터 미포함/권리 미확정,clean-room 재현 불가,Source catalog·license·checksum 확보,Data Owner,G1,OPEN +TD-005,Integrity,P0,KR 검증 종료 2021-04-16,최근 국면 검증 공백,PIT 데이터 보충 후 frozen OOS,Quant/Data,G4,OPEN +TD-006,Safety,P0,실제 Auth provider 미결정,생산 접근통제 불가,OIDC/JWT ADR와 E2E,Security,G5,OPEN +TD-007,Integrity,P0,총수익·상폐수익 공급원 미확정,생존편향/성과왜곡,상용/공식 source 계약,Data Owner,G1,OPEN +TD-008,Integrity,P0,Fee/Tax/FX PIT 표 미확정,비용후 효용 오류,valid_from/to schedule 승인,Quant/Compliance,G1,OPEN +TD-009,Delivery,P1,Outbox publisher/Inbox consumer 미완성,비동기 side effect 누락/중복,lease/dead-letter/replay 구현,BE/SRE,G3,OPEN +TD-010,Delivery,P1,Hangfire JobRun 표준 미완성,재처리·감사 취약,JobRunId/Scope/Watermark/hash 공통화,BE/SRE,G1,OPEN +TD-011,Integrity,P1,Architecture test가 일부 문자열 기반,의존 위반 누락,csproj/namespace/schema 검사 확대,Architect,G0,IN_PROGRESS +TD-012,Delivery,P1,OpenAPI DTO generation 미도입,BE/FE 계약 drift,OpenAPI artifact와 CI diff,BE/FE,G3,OPEN +TD-013,Safety,P1,PII masking test 미완성,로그/Telegram 노출,redaction policy+security tests,Security/SRE,G5,OPEN +TD-014,Integrity,P1,Model promotion workflow 미구현,무단 모델 활성화,maker-checker/model card/rollback,Governance,G4,OPEN +TD-015,Integrity,P1,Read Model rebuild 도구 미구현,stale projection 복구 불가,projection version/watermark/rebuild command,BE/Data,G3,OPEN +TD-016,Delivery,P1,SLO/RPO/RTO 미확정,운영 준비도 판단 불가,용량시험·DR ADR,SRE/Ops,G5,OPEN +TD-017,Convenience,P2,공통 DataGridShell 미구현,화면 중복,3회 이상 반복 확인 후 승격,FE Lead,S10,OPEN +TD-018,Integrity,P1,PBO/DSR 전체 탐색 미완료,과최적화 위험,모든 시도 원장+CSCV/DSR,Quant,G4,OPEN +TD-019,Integrity,P1,Reentry asset confirmation provider 미구현,재진입 품질 저하,자산유형 contract와 PIT source,Quant/Data,G2,OPEN +TD-020,Safety,P0,자동주문 기능은 금지 상태,오활성화 위험,Options ValidateOnStart+CI config scan 유지,Security/Compliance,ALL,MITIGATED diff --git a/docs/v12/09_TRACEABILITY_MATRIX.csv b/docs/v12/09_TRACEABILITY_MATRIX.csv new file mode 100644 index 00000000..fb0f7ba4 --- /dev/null +++ b/docs/v12/09_TRACEABILITY_MATRIX.csv @@ -0,0 +1,19 @@ +Requirement_ID,Requirement,Evidence_Status,Policy_or_Contract,Code,DB_or_Artifact,Test_ID,Gate +REQ-001,투자자문형 우선·자동주문 OFF,SOURCE,CAP-ORDER-OFF,Capabilities options,Host startup validation,TC-CAP-001,G0 +REQ-002,Hard impairment 최우선,SOURCE,ALG-SELL-001,HardImpairmentPolicy,signal_decision,TC-SELL-001,G2 +REQ-003,Portfolio survival 2순위,SOURCE,ALG-SELL-PORT-001,PortfolioSurvivalPolicy,signal_decision,TC-SELL-002,G2 +REQ-004,Gap 1.5 ATR 부분매도,SOURCE,ALG-SELL-002,GapFloorBreachPolicy,signal_decision,TC-SELL-003,G2 +REQ-005,2종가 보호선 이탈,SOURCE,ALG-SELL-003,TwoCloseFloorBreachPolicy,signal_decision,TC-SELL-004,G2 +REQ-006,집중/유동성 축소,SOURCE,ALG-SELL-004,ConcentrationLiquidityPolicy,signal_decision,TC-SELL-005,G2 +REQ-007,기회비용 신뢰하단>0,SOURCE,ALG-SELL-005,OpportunityCostPolicy,signal_decision,TC-SELL-006,G2 +REQ-008,Lot 비율과 포트폴리오 비중 분리,DESIGN_PROPOSAL,DATA-UNIT-001,SellDecisionInput/Decision,0012 migration,TC-UNIT-001,G2 +REQ-009,PIT published_at,SOURCE,DQ-01,ContextReader,sell_decision_context,TC-PIT-001,G1 +REQ-010,Evidence Version Set,SOURCE,EVID-001,SellDecisionService,signal_decision,TC-EVID-001,G2 +REQ-011,Idempotency+Outbox,SOURCE,REL-001,SellDecisionService,outbox_message,TC-OUT-001,G2 +REQ-012,Reentry 최소 10세션,SOURCE,ALG-REENTRY-001,ReentryStateMachine,reentry_watch/stage,TC-RE-001,G2 +REQ-013,Research/production endpoint 분리,DESIGN_PROPOSAL,API-BOUNDARY-001,EvaluateResearch/GenerateSell,N/A,TC-API-001,G0 +REQ-014,Fail-closed 인증,SOURCE,SEC-001,Host Security,N/A,TC-AUTH-001,G0 +REQ-015,FE runtime contract,DESIGN_PROPOSAL,FE-CONTRACT-001,Zod schema/api,N/A,TC-FE-001,G3 +REQ-016,Immutable Decision/Audit,SOURCE,AUD-001,DB trigger,0011/0012,TC-AUD-001,G2 +REQ-017,252일 Shadow 복수국면,SOURCE,GATE-SHADOW-001,Evaluation module,outcome/scorecard,TC-SHD-001,G4 +REQ-018,PBO/DSR/비용2배,SOURCE,GATE-MODEL-001,Backtesting,backtest artifact,TC-BKT-001,G4 diff --git a/docs/v12/10_DECISION_LOG.csv b/docs/v12/10_DECISION_LOG.csv new file mode 100644 index 00000000..dab37f8f --- /dev/null +++ b/docs/v12/10_DECISION_LOG.csv @@ -0,0 +1,8 @@ +Decision_ID,Decision_Required,Status,Owner,Due_Gate,Blocked_Action +DEC-001,상용 총수익·상폐·컨센서스 공급계약,OPEN,Data Owner/Compliance,G1,생산 성과 주장 금지 +DEC-002,OIDC/JWT 인증 공급자와 role mapping,OPEN,Security/Architect,G5,외부 Pilot 금지 +DEC-003,Fee/Tax/FX valid-time schedule,OPEN,Quant/Compliance,G1,현재 단일 비용값 금지 +DEC-004,고객군별 IPS·적합성 문구,OPEN,Product/Compliance,G3,고객 공개 금지 +DEC-005,SLO/RPO/RTO/DR topology,OPEN,SRE/Ops,G5,Go-Live 금지 +DEC-006,KIS 시장·계좌·부분체결 Capability,OPEN,Execution/Compliance,Pilot-A,KIS submit 금지 +DEC-007,pnpm lockfile 최종 dependency set,OPEN,FE/DevOps,G0,frozen CI 금지 diff --git a/docs/v12/11_20_DAY_RESTART_PLAN.md b/docs/v12/11_20_DAY_RESTART_PLAN.md new file mode 100644 index 00000000..20c3706e --- /dev/null +++ b/docs/v12/11_20_DAY_RESTART_PLAN.md @@ -0,0 +1,12 @@ +# 20영업일 재착수 계획 + +| 기간 | 작업 | 완료 증거 | +|---|---|---| +| D1~D3 | 첨부 기준선 승인, Coverage Matrix, Decision Log, 자동주문 OFF | Steering sign-off | +| D4~D6 | SDK/pnpm/lockfile, secret/env, Gitea CI, static validation | CI bootstrap green | +| D7~D10 | DbUp fresh/upgrade/re-run, Outbox/Inbox, Auth fail-closed, Architecture tests | G0 통과 | +| D11~D14 | SecurityMaster/MarketData/PIT/CorporateAction/DQ Critical Path | replay hash 동일, lookahead 0 | +| D15~D17 | Evidence/Decision/Policy/Reentry Golden과 DB invariant | G2-A 통과 | +| D18~D20 | 연구 콘솔과 생산형 Decision Slice contract/E2E, OTel trace | 첫 Vertical Slice Done | + +20일 안에 전체 제품을 만들지 않는다. 첫 Slice를 완전하게 통과시켜 이후 반복 가능한 패턴을 만드는 것이 목표다. diff --git a/docs/v12/12_TEMPLATE_USAGE.md b/docs/v12/12_TEMPLATE_USAGE.md new file mode 100644 index 00000000..63d45886 --- /dev/null +++ b/docs/v12/12_TEMPLATE_USAGE.md @@ -0,0 +1,46 @@ +# 기본 템플릿 사용법 + +## 1. 사전 준비 + +- .NET SDK 10.0.100 이상. +- Node.js 22. +- pnpm 10. +- PostgreSQL 17. + +현재 패키지에는 registry 접근이 불가능한 환경에서 생성되었으므로 `pnpm-lock.yaml`이 없다. 네트워크가 가능한 승인 환경에서 한 번 생성하고 dependency review 후 커밋한다. + +## 2. 실행 순서 + +```bash +cp frontend/.env.example frontend/.env.local +docker compose up -d postgres + +dotnet restore KArtSell.sln +dotnet run --project src/KArtSell.DbMigrator +dotnet test KArtSell.sln +dotnet run --project src/KArtSell.Host + +cd frontend +pnpm install +pnpm typecheck +pnpm test +pnpm build +pnpm dev +``` + +Development 연구 Endpoint 호출 시 `X-KArtSell-User`, `X-KArtSell-Role=Quant`가 필요하다. Frontend는 `.env.local` 값이 있을 때 개발 환경에서만 해당 Header를 추가한다. + +## 3. 생산 전 필수 교체 + +- DevelopmentHeader 인증을 승인된 OIDC/JWT 공급자로 교체. +- Connection string과 secret를 vault/secret store로 이동. +- OTLP endpoint, Telegram alert, SLO/Runbook 설정. +- Source adapter 계약과 라이선스 승인. +- pnpm lockfile과 Software Bill of Materials. + +## 4. 금지 + +- `Capabilities:AutomaticOrder=true`. +- `Capabilities:KisOrderAdapter=true`. +- 실계좌/실주문 credential 저장. +- Research Endpoint를 고객 화면에서 호출. diff --git a/docs/v12/K-ArtSell_Aegis_v12_φå╡φò⌐Ω│áδÅäφÖö_∞ïñφûë∞á£∞òê∞ä£.docx b/docs/v12/K-ArtSell_Aegis_v12_φå╡φò⌐Ω│áδÅäφÖö_∞ïñφûë∞á£∞òê∞ä£.docx new file mode 100644 index 00000000..cf293411 Binary files /dev/null and b/docs/v12/K-ArtSell_Aegis_v12_φå╡φò⌐Ω│áδÅäφÖö_∞ïñφûë∞á£∞òê∞ä£.docx differ diff --git a/docs/v12/SOURCE_COVERAGE_MATRIX.csv b/docs/v12/SOURCE_COVERAGE_MATRIX.csv new file mode 100644 index 00000000..1f132dca --- /dev/null +++ b/docs/v12/SOURCE_COVERAGE_MATRIX.csv @@ -0,0 +1,6 @@ +Version/Source,Role,Coverage,Evidence,Status +v10.0,Baseline,"47개 장, 26 Slice, 16 Sprint, Gate",원본 DOCX 포함,RETAINED +12.2 Research,Research Evidence,정량결과·코드·CSV·구성안,원본 ZIP/압축해제 포함,RETAINED +v11,Implementation Skeleton,.NET/Vue 최초 템플릿,원본 ZIP/압축해제 포함,RETAINED +v11.1,Hardening Delta,보안·불변·WBS·기술부채,원본 ZIP/압축해제 포함,RETAINED +v12.0,Integrated Delta,정책단위·서버 Evidence·FailClosed·WBS,본 패키지,IMPROVED diff --git a/docs/v12_1/00_EXECUTIVE_EXECUTION_PROPOSAL.md b/docs/v12_1/00_EXECUTIVE_EXECUTION_PROPOSAL.md new file mode 100644 index 00000000..359127d3 --- /dev/null +++ b/docs/v12_1/00_EXECUTIVE_EXECUTION_PROPOSAL.md @@ -0,0 +1,43 @@ +# K-ArtSell Aegis v12.1 실행준비 고도화 제안 + +상태: `IMPLEMENTATION_TEMPLATE / STATIC_VALIDATED / BUILD_AND_DB_REHEARSAL_REQUIRED` +운영 경계: **투자자문형 우선 · RESEARCH_CANDIDATE_NOT_PRODUCTION · 자동주문/KIS 제출 OFF** + +## 1. 경영진 결론 + +v12.1은 기존 문서를 다시 쓰는 요약본이 아니다. v10.0의 `Baseline Preservation + Delta + Supersession + Traceability`를 유지하고, K-ArtSell 12.2 연구근거, v11 구현 골격, v11.1 하드닝, v12.0 통합 패키지 위에 **실행준비도 Delta**를 추가한다. + +핵심은 기능 수가 아니라 다음 Critical Path의 완결성이다. + +`Source/License → PIT/Revision/DQ → Evidence/Version Set → Sell/Reentry Policy → Recommendation → Maker-Checker → Publish → Outcome → Reconciliation/DR` + +대시보드나 상품탐색을 앞당겨도 이 경로가 끊기면 생산준비도는 올라가지 않는다. + +## 2. v12.1에서 보강한 것 + +- 현재 세션 첨부파일 **8개를 원본 그대로 보존**하고 SHA-256·중복그룹을 기록했다. +- 26개 Vertical Slice를 Requirement/API/DB/Job/UI/Test/Gate에 연결했다. +- 상세 WBS를 **202개 실행 작업**으로 재구성했다. 각 행은 산출물·수용증거·Owner·의존성·Gate·PD를 가진다. +- Generic Repository/God Service/조기 microservice/현재값 overwrite/무승인 자동 추상화를 금지한다. +- Outbox/Inbox, JobRun, Projection checkpoint, PIT/DQ, immutable audit의 기본 템플릿을 보강한다. +- FE는 TanStack Query=서버상태, Pinia=세션/권한/UI 선호, vee-validate+Zod=폼, vue-router=공유상태로 책임을 고정한다. +- 바이브코딩은 `SOURCE / ASSUMPTION / UNKNOWN / DECISION_REQUIRED`를 강제하고 실행하지 않은 검증은 통과로 기록하지 않는다. + +## 3. 즉시 Go/No-Go + +현재는 **코딩 착수용 템플릿은 Go, 생산/Shadow 승격은 No-Go**다. + +Go 전 필수: +1. 승인 runner의 `.NET 10 restore/build/test`. +2. `pnpm-lock.yaml` 생성·검토 후 frozen install/typecheck/test/build. +3. PostgreSQL fresh/upgrade/re-run/failure migration rehearsal. +4. OIDC/JWT, 데이터 라이선스, Fee/Tax/FX, SLO/RPO/RTO 결정. +5. 252거래일·복수 국면 Shadow와 PBO/DSR/비용 2배 검증. + +## 4. 과유불급 원칙 + +- 초기 배포는 Modular Monolith다. 실제 독립 배포·확장·장애 격리 요구가 증명되기 전 microservice로 분리하지 않는다. +- 동일 업무 의미와 변경축이 3회 이상 반복될 때만 공통 컴포넌트로 승격한다. +- 한 번 쓰는 Interface/Wrapper/Factory는 만들지 않는다. +- 정책 변경과 동작보존 리팩터링은 별도 PR로 분리한다. +- 정규화 Write Model과 역정규화 Read Model을 분리하며, Read Model에는 Owner/Version/Watermark/Rebuild/Staleness가 필수다. diff --git a/docs/v12_1/01_SOURCE_COVERAGE_MATRIX.csv b/docs/v12_1/01_SOURCE_COVERAGE_MATRIX.csv new file mode 100644 index 00000000..53c9cc8e --- /dev/null +++ b/docs/v12_1/01_SOURCE_COVERAGE_MATRIX.csv @@ -0,0 +1,9 @@ +Attachment,Bytes,SHA256,Duplicate_Group,Role,Treatment,Evidence_Status +K-ArtSell_12_2_complete_package(1).zip,2513047,1e9df605a91f227fb5ff4ea057e55f4319e62060fbaf8e64551756ee2931c5ea,-,연구 코드·CSV·정량 감사·구성안,원본 무변경 보존; v12.1은 Delta만 추가,SOURCE +K-ArtSell_Aegis_v12_통합고도화_실행제안서(1).docx,54732,62845eaf5382ed78e6b6065f3e95c4af9cd87f71bc418bf0077b68e727fce832,K-ArtSell_Aegis_v12_통합고도화_실행제안서(1).docx | K-ArtSell_Aegis_v12_통합고도화_실행제안서.docx,v12.0 실행제안서,원본 무변경 보존; v12.1은 Delta만 추가,SOURCE +K-ArtSell_Aegis_v12_통합고도화_실행제안서.docx,54732,62845eaf5382ed78e6b6065f3e95c4af9cd87f71bc418bf0077b68e727fce832,K-ArtSell_Aegis_v12_통합고도화_실행제안서(1).docx | K-ArtSell_Aegis_v12_통합고도화_실행제안서.docx,v12.0 실행제안서,원본 무변경 보존; v12.1은 Delta만 추가,SOURCE +K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,402134,d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6,-,최상위 누적 실행기준서,원본 무변경 보존; v12.1은 Delta만 추가,SOURCE +KArtSell_Aegis_v11_1_hardening(1).zip,89397,01b3d3025dfb3a6cafcff4d751851240a6087c2329e5c1472ec31703f209ccbd,-,보안·불변성·기술부채 Delta,원본 무변경 보존; v12.1은 Delta만 추가,SOURCE +KArtSell_Aegis_v12_0_integrated_complete(1).zip,8493363,8ccc4403cdd0fcb2ddf7bdcdcd18719dbc22497fcecdaa0082a1c98b4cd82c04,KArtSell_Aegis_v12_0_integrated_complete(1).zip | KArtSell_Aegis_v12_0_integrated_complete.zip,v12.0 통합 구현 패키지,원본 무변경 보존; v12.1은 Delta만 추가,SOURCE +KArtSell_Aegis_v12_0_integrated_complete.zip,8493363,8ccc4403cdd0fcb2ddf7bdcdcd18719dbc22497fcecdaa0082a1c98b4cd82c04,KArtSell_Aegis_v12_0_integrated_complete(1).zip | KArtSell_Aegis_v12_0_integrated_complete.zip,v12.0 통합 구현 패키지,원본 무변경 보존; v12.1은 Delta만 추가,SOURCE +KArtSell_v11_implementation_acceleration(1).zip,56738,2bd5713b98104bf7ac45362105d9b3175d5ca818c06753e572aaf79a936658a2,-,최초 .NET/Vue 구현 골격,원본 무변경 보존; v12.1은 Delta만 추가,SOURCE diff --git a/docs/v12_1/02_STRATEGIC_ARCHITECTURE_AND_SOLID.md b/docs/v12_1/02_STRATEGIC_ARCHITECTURE_AND_SOLID.md new file mode 100644 index 00000000..9bd63daf --- /dev/null +++ b/docs/v12_1/02_STRATEGIC_ARCHITECTURE_AND_SOLID.md @@ -0,0 +1,39 @@ +# 전략 아키텍처·SOLID·리팩터링 기준 + +## 아키텍처 경계 + +- Host: composition root, 인증/관제/Endpoint 조립만 담당한다. +- Module: Vertical Slice와 모듈 내부 정책·저장소를 소유한다. +- Domain: FastEndpoints, Dapper, Npgsql, Hangfire, HTTP를 참조하지 않는다. +- Application: use case, idempotency, transaction, context loading, orchestration을 담당한다. +- Infrastructure: SQL, 외부 Adapter, Outbox/Inbox, Projection 구현을 담당한다. +- Contracts: 모듈 간 최소 integration event만 공유한다. 타 모듈 테이블 직접 조회를 금지한다. + +## SOLID의 현장 적용 + +| 원칙 | 적용 | 금지 | +|---|---|---| +| SRP | Endpoint=HTTP, Handler=유스케이스, Policy=결정, Adapter=I/O | God Service, Hangfire Job 내 정책 | +| OCP | 승인된 Policy/DQ/Adapter registry | reflection plugin framework | +| LSP | Adapter contract test로 시간·단위·오류 의미 보장 | mock 성공만으로 교체 가능 판정 | +| ISP | IClock, ContextReader, OutboxWriter 등 좁은 Port | 범용 Repository/Manager | +| DIP | Domain은 외부 기술을 모름 | Npgsql/HTTP 타입의 Domain 침투 | + +## 리팩터링 순서 + +1. Characterization/Golden test로 현재 동작을 고정한다. +2. 정책 변경과 구조 변경을 분리한다. +3. 이름·단위·시간 의미를 먼저 교정한다. +4. 중복은 문장이 아니라 **업무 의미와 변경축**이 같을 때만 통합한다. +5. PR마다 성능·데이터·감사·운영 영향과 rollback을 기록한다. +6. 기술부채는 Owner, Interest, Trigger, Gate, Exit Test를 가진다. + +## Fitness Functions + +- 모듈→모듈 직접 project reference allowlist. +- Domain의 Infrastructure namespace/package 참조 0. +- 모듈 소유 schema 외 SQL 접근 0. +- Endpoint마다 인증/권한 선언 100%. +- API/DDL/Event/Job/UI/Test ID 중복 0. +- 문서/DDL/OpenAPI/Test contract CI diff. +- `AutomaticOrder=false`, `KisOrderAdapter=false` config scan. diff --git a/docs/v12_1/03_ALGORITHM_GOVERNANCE_AND_CONTRACT.md b/docs/v12_1/03_ALGORITHM_GOVERNANCE_AND_CONTRACT.md new file mode 100644 index 00000000..a17368e0 --- /dev/null +++ b/docs/v12_1/03_ALGORITHM_GOVERNANCE_AND_CONTRACT.md @@ -0,0 +1,36 @@ +# 알고리즘 거버넌스와 구현 계약 + +## 고정 우선순위 + +`HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION/LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION` + +상위 사유는 하위 점수로 상쇄하지 않는다. 회계부정·지급불능·상장폐지·구조적 ETF 훼손은 기대수익 비교가 아니라 승인된 증거등급의 Hard Exit로 처리한다. + +## 단위 계약 + +- `SellRatioOfLot`: 현재 Lot 수량 중 매도 비율, 0..1. +- `CurrentPortfolioWeight`: 현재 포트폴리오 절대비중, 0..1. +- `StrategicCoreFloorWeight`: 비가치훼손 Soft Sell에서 보존할 절대비중. +- `TargetPortfolioWeightAfter`: 결정 후 예상 절대비중. +- `OpportunityEdgeLowerBound`: 비용·세금·FX·재진입 옵션손실을 반영한 교체우위 신뢰하단. + +## 정책 + +| ID | 조건 | 행동 | 재진입 | +|---|---|---|---| +| ALG-SELL-001 | 승인된 영구가치훼손 | 80~100% 또는 전량; 운영승인 | 금지 | +| ALG-SELL-PORT-001 | 자본바닥/생존 위반 | 위험예산까지 축소 | 별도 승인 | +| ALG-SELL-002 | 보호선 1.5 ATR 이상 Gap | Lot 30~50% 부분매도 | 가능 | +| ALG-SELL-003 | 2개 종가 연속 이탈 | Lot 15~25% 부분매도 | 가능 | +| ALG-SELL-004 | 단일/섹터/클러스터/ADV 한도 초과 | 초과분+버퍼 축소 | 가능 | +| ALG-SELL-005 | 비용후 교체우위 4~5%p, 하단>0 | Lot 10~25% 단계교체 | 가능 | + +정책 비율의 단일값 고정은 설계제안이며 모델카드·Golden·OOS 승인 전 생산값이 아니다. v12.2가 제시한 범위와 자산유형별 정책을 보존한다. + +## 재진입 + +비가치훼손 매도는 `ReentryWatch`를 생성한다. 최소 10거래일 대기, 상승 SMA50, 직전 20거래일 고점 돌파, 자산유형 확인팩터, 단계 간 10거래일, 126거래일 만료를 적용한다. 각 단계는 unique key를 가지며 새 Lot과 새 CycleId를 만든다. + +## 평가 + +적중률 단독 최적화를 금지한다. 1/5/20/63/126/252일 창에서 calibration, 비용후 기대효용, ES/MDD 감소, 영구손실 회피, false-exit 비용, reentry capture, 운영무결성을 분리해 측정한다. 투자일임형 검토는 최소 252거래일·복수 국면 Shadow, PBO≤20%, DSR≥95%, 비용 2배 기대효용 양수, 독립검증·준법·보안·DR 승인을 모두 요구한다. diff --git a/docs/v12_1/04_DATA_INTEGRITY_NORMALIZATION.md b/docs/v12_1/04_DATA_INTEGRITY_NORMALIZATION.md new file mode 100644 index 00000000..a7d6330a --- /dev/null +++ b/docs/v12_1/04_DATA_INTEGRITY_NORMALIZATION.md @@ -0,0 +1,37 @@ +# 데이터 정합성·정규화·역정규화 실행계약 + +## L0~L7 + +| Layer | 내용 | 불변조건 | +|---|---|---| +| L0 | Source catalog/license/SLA/schema/timezone/unit | 승인 없는 소스 사용 금지 | +| L1 | Raw payload/hash/event/published/ingested | overwrite 금지 | +| L2 | Canonical PIT price/CA/fundamental/consensus/cost | revision+valid time | +| L3 | DQ/quarantine/lineage/dataset manifest | QUARANTINED 추천 금지 | +| L4 | Feature/Forecast/Risk/Evidence | data/model/config/code SHA | +| L5 | Ledger/Decision/Review/Publish/Fill/Outcome | append/reversal/correction event | +| L6 | UI/report Read Model | Owner/version/watermark/rebuild/staleness | +| L7 | Backtest/ModelCard/Release artifact | artifact hash | + +## 정규화 + +원장·현금·Lot·주문·체결은 3NF와 append/reversal을 기본으로 한다. 현재상태와 이력, 추천과 공개, 모델버전과 승격 이벤트, 수수료 설정과 유효기간을 분리한다. `current=true` 하나로 과거값을 잃지 않는다. + +## 역정규화 + +Read Model에만 허용한다. 화면 성능을 이유로 Source Table을 임의 join하거나 현재값을 복사하지 않는다. Projection은 `ProjectionName, Version, SourceWatermark, LastEventId, BuiltAt, ContentHash`를 보존하고 재구축·diff가 가능해야 한다. + +## PIT 최소 필드 + +`source_event_time, published_at, ingested_at, effective_from/to, revision_no, source_id, content_hash, quality_status, tradable_session, dataset_id`. + +## DQ Release Blocker + +- same-session lookahead 0. +- 기업행사 가격·수량·원가·배당 공식대사. +- 가격수익/총수익 구분. +- 당시 유니버스와 상폐수익 포함. +- OHLC/단위/통화/비정상 gap 격리. +- key 중복·거래일 결측·watermark 연속성. +- Fee/Tax/FX valid-time. +- 동일 dataset/code/config hash 결과 재현. diff --git a/docs/v12_1/05_BE_FE_JOB_COMPONENT_STANDARD.md b/docs/v12_1/05_BE_FE_JOB_COMPONENT_STANDARD.md new file mode 100644 index 00000000..1c31be75 --- /dev/null +++ b/docs/v12_1/05_BE_FE_JOB_COMPONENT_STANDARD.md @@ -0,0 +1,28 @@ +# BE·FE·Hangfire·컴포넌트 표준 + +## Backend Slice + +`Endpoint → Request/Validator → Application UseCase → Domain Policy → Dapper SQL → Outbox → Tests` + +생산형 Command는 클라이언트가 Evidence/Model/Config를 임의 제공하지 못하게 한다. 서버가 승인된 PIT Read Model과 Version Set을 조회한다. Decision과 Outbox는 동일 트랜잭션이며, idempotency key 충돌 시 원결과를 반환하거나 409를 명시한다. + +## Outbox/Inbox + +- Outbox: 미발행 lease, attempt, next_attempt_at, dead-letter, payload hash. +- Inbox: consumer+message unique, processing lease, result hash. +- Exactly-once를 주장하지 않고 at-least-once + idempotent side effect를 구현한다. +- replay는 승인·범위·watermark·dry-run·영향분석이 있어야 한다. + +## Hangfire + +모든 Job은 `JobRunId, JobType/Version, ScopeKey, IdempotencyKey, Watermark, Dataset/Model/Config/Code SHA, Input/Output Hash, Attempt, TraceId`를 가진다. transient retry, business hold, DQ quarantine, poison event를 분리한다. + +## Frontend + +- TanStack Query: 서버 상태와 캐시. +- Pinia: 세션·역할·UI preference. 서버 데이터를 복제하지 않는다. +- vee-validate+Zod: 폼·요청/응답 runtime validation. +- vue-router: 공유·복구 가능한 URL 상태. +- AG Grid: 대량 목록의 server-side pagination/filter/sort. + +공통 컴포넌트는 `QueryStateBoundary`, `PermissionGuard`, `DataFreshnessBadge`, `EvidenceVersionSet`, `VersionConflictDialog`, `DataGridShell` 후보로 한정한다. 동일 업무 의미와 변경축이 반복될 때만 승격한다. diff --git a/docs/v12_1/06_SLICE_CATALOGUE.csv b/docs/v12_1/06_SLICE_CATALOGUE.csv new file mode 100644 index 00000000..33986f70 --- /dev/null +++ b/docs/v12_1/06_SLICE_CATALOGUE.csv @@ -0,0 +1,27 @@ +Slice_ID,Slice,Module,Sprint,Weeks,Gate,Requirement_ID,Endpoint_ID,DB_ID,Job_ID,UI_ID,Test_ID,User_Result,Dependency,Status +VS-00,PlatformBootstrap,Host/BuildingBlocks,S0,W1-2,G0,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,빌드·마이그레이션·관제 가능한 단일 배포 골격,-,PLANNED +VS-01,ManageIdentityAndRoles,IdentityAccess,S1,W3-4,G1-A,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,MFA·RBAC·업무분장과 승인 경계,VS-00,PLANNED +VS-02,SynchronizeSecurityMaster,SecurityMaster,S1,W3-4,G1-A,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,상장·상폐·상품구조·거래가능성의 PIT 기준,VS-00,PLANNED +VS-03,IngestMarketDataPIT,MarketData,S2,W5-6,G1-B,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,원시·조정 OHLCV·FX·금리의 revision 적재,VS-02,PLANNED +VS-04,ApplyCorporateActions,SecurityMaster,S2,W5-6,G1-B,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,분할·배당·증자·합병·상폐의 가격·수량·원가 일관성,"VS-02,VS-03",PLANNED +VS-05,IngestFundamentalsPIT,FundamentalsPIT,S3,W7-8,G1,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,공시·재무·컨센서스 공개시각과 정정 이력,VS-02,PLANNED +VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,S3,W7-8,G1,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,계좌·시장·상품별 Fee/Tax/FX valid-time 계약,VS-02,PLANNED +VS-07,ManageClientIPS,ClientAdvisory,S6,W13-14,MVP-A,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,고객 목표·위험성향·제한상품의 버전 관리,VS-01,PLANNED +VS-08,MaintainPortfolioLedger,PortfolioRisk,S3,W7-8,G1,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,현금·체결·Lot·Cycle 불변 원장과 대사 기준,"VS-02,VS-06",PLANNED +VS-09,BuildEvidenceSnapshot,ResearchFactors,S4,W9-10,G2-A,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Dataset/Model/Config/Code SHA가 동결된 Evidence,"VS-03,VS-04,VS-05,VS-06",PLANNED +VS-10,GenerateSellDecision,SignalEngine,S4,W9-10,G2-A,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,우선순위가 보존된 HOLD/부분매도/전량매도 결정,"VS-08,VS-09,VS-13",PLANNED +VS-11,ManageReentryWatch,SignalEngine,S5,W11-12,G2,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,비가치훼손 매도의 재진입 계약·단계·만료,VS-10,PLANNED +VS-12,RankBuyCandidates,ValuationForecast,S10,W21-22,Portfolio Gate,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위,"VS-03,VS-05,VS-06,VS-09",PLANNED +VS-13,CalculatePortfolioRisk,PortfolioRisk,S9,W19-20,Portfolio-A,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,ES·집중·상관·자본바닥 위험 스냅샷,"VS-03,VS-08",PLANNED +VS-14,GenerateDailyRecommendations,ClientAdvisory,S7,W15-16,MVP-B,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지,"VS-07,VS-10,VS-12,VS-13",PLANNED +VS-15,ReviewRecommendation,ClientAdvisory,S7,W15-16,MVP-B,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,maker-checker 승인·보류·기각과 낙관적 동시성,VS-14,PLANNED +VS-16,PublishClientAdvice,ClientAdvisory,S8,W17-18,G3,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,승인·유효·데이터 정상 제안만 고객 공개,VS-15,PLANNED +VS-17,RecordClientDecision,ClientAdvisory,S8,W17-18,G3,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,고객 수락·거절·보류와 attribution 연결,VS-16,PLANNED +VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,S8,W17-18,G3,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,1/5/20/63/126/252일 결과·매도·재진입 품질 평가,"VS-10,VS-11,VS-16,VS-17",PLANNED +VS-19,RunFrozenBacktest,BacktestingEvaluation,S5,W11-12,G2,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현,"VS-03,VS-04,VS-05,VS-06,VS-09",PLANNED +VS-20,PromoteModelVersion,GovernanceAudit,S11,W23-24,G4-A,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,모델 승격 증거·승인·롤백·챔피언/챌린저,"VS-18,VS-19",PLANNED +VS-21,BuildRebalanceProposal,PortfolioRisk,S9,W19-20,Portfolio-A,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,비용·세금·위험예산·제약을 만족하는 리밸런싱,"VS-07,VS-08,VS-12,VS-13",PLANNED +VS-22,SuggestReplacementProducts,PortfolioRisk,S10,W21-22,Portfolio Gate,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,적합성·유동성·비용후 기회우위 대체상품 비교,"VS-07,VS-12,VS-13",PLANNED +VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,S12,W25-26,Pilot-A,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,브로커·내부 주문·체결·보유·현금 break와 승인 정정,"VS-08,VS-16",PLANNED +VS-24,ReportAndNotify,ReportingNotifications,S11,W23-24,G4-A,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,고객 리포트·SignalR·Telegram 운영 경보,"VS-16,VS-18",PLANNED +VS-25,AuditAndKillSwitch,GovernanceAudit,S13,W27-28,G5,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,입력→결정→승인→공개→실행→평가 추적과 단계별 차단,"VS-01,VS-16,VS-20,VS-23",PLANNED diff --git a/docs/v12_1/07_DETAILED_WBS_MASTER.csv b/docs/v12_1/07_DETAILED_WBS_MASTER.csv new file mode 100644 index 00000000..14644f8d --- /dev/null +++ b/docs/v12_1/07_DETAILED_WBS_MASTER.csv @@ -0,0 +1,203 @@ +WBS_ID,Sprint,Weeks,Slice_ID,Slice,Module,Workstream,Requirement_ID,API_ID,DB_Migration_ID,Job_Event_ID,UI_ID,Test_ID,Task,Artifact,Acceptance_Evidence,Primary_Owner,Secondary,PD,Dependency,Gate,Evidence_Class,Risk,Status +AEG-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,Cross,Version Coverage Matrix 고도화,Version Coverage Matrix·Supersession Registry,모든 첨부와 v10/v12/v12.1의 Retained/Improved/Superseded 상태 100%,PM/Architect,Architect/QA,5,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,Cross,global.json 고도화,global.json·Directory.Packages·node/packageManager·lock 정책,승인 runner에서 dotnet restore/build/test 및 pnpm frozen build 재현,DevOps,Architect/QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,Cross,모듈/namespace/schema/API 금지 의존 Architecture tests 고도화,모듈/namespace/schema/API 금지 의존 Architecture tests,"Domain 기술의존 0, 모듈 직접 DB 접근 0, ID 중복 0",Architect/QA,Architect/QA,7,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-004,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/re-run/failure 복구 rehearsal 고도화,DbUp fresh/upgrade/re-run/failure 복구 rehearsal,PostgreSQL 승인 버전에서 4 시나리오와 checksum 변경 차단 통과,DBA/BE,Architect/QA,8,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-005,S0,W1-2,Cross,Cross-cutting,Security,SEC,REQ-SEC-BASE,Cross,Cross,Cross,Cross,Cross,"OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed 고도화","OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed","비개발 무인증 접근 0, secret/log/prompt 노출 0",Security/BE,Architect/QA,7,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,ASYNC,REQ-ASYNC-001,Cross,Cross,Cross,Cross,Cross,Outbox publisher 고도화,Outbox publisher·Inbox lease·dead-letter·replay,"duplicate 0, crash-before/after-publish 시나리오와 replay hash 통과",BE/SRE,Architect/QA,10,AEG-X-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-007,S0,W1-2,Cross,Cross-cutting,Observability,OPS,REQ-OBS-001,Cross,Cross,Cross,Cross,Cross,Serilog/OTel correlation 고도화,Serilog/OTel correlation·metric naming·Telegram redaction,"trace→job→decision→outbox 연결, PII redaction test 통과",SRE/Security,Architect/QA,7,AEG-X-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-008,S0,W1-2,Cross,Cross-cutting,API Contract,CONTRACT,REQ-API-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact 고도화,OpenAPI artifact·ProblemDetails taxonomy·FE contract generation,OpenAPI diff와 breaking change approval 없이는 Release 차단,BE/FE Architect,Architect/QA,8,AEG-X-003,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-01,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,GOV,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,정책·범위·실패상태 계약 확정,"REQ-PLAT-001, VS-00 SLICE_SPEC, ADR/Decision Log",사용자 결과 '빌드·마이그레이션·관제 가능한 단일 배포 골격'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-02,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DATA,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,데이터 시점·스키마·정합성 계약,"MIG-0000/0013, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-00-01,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-03,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DOMAIN,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,도메인 불변조건·상태전이 구현,"src/Modules/Host/BuildingBlocks/PlatformBootstrap/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-00-02,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-04,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,BE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vertical Slice API/Application/SQL 구현,HEALTH-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-00-03,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-05,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,ASYNC,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-00-04,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-06,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,FE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vue feature·Zod·Query·컴포넌트 구현,UI-PLAT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-00-05,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-07,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,TESTOPS,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,회귀·관제·Runbook·Rollback 증거,T-ARCH-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-00-06,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-009,S1,W3-4,Cross,Cross-cutting,Data Governance,DATA,REQ-DATA-SOURCE,Cross,Cross,Cross,Cross,Cross,Source catalog/license/SLA/timezone/unit/checksum 고도화,Source catalog/license/SLA/timezone/unit/checksum,승인 없는 source가 ingestion 또는 추천으로 진입하지 않음,Data Governance,Architect/QA,8,AEG-X-001,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-01,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,GOV,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,정책·범위·실패상태 계약 확정,"REQ-IAM-001, VS-01 SLICE_SPEC, ADR/Decision Log",사용자 결과 'MFA·RBAC·업무분장과 승인 경계'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-02,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DATA,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,데이터 시점·스키마·정합성 계약,"MIG-IAM-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-01-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-03,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DOMAIN,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,도메인 불변조건·상태전이 구현,"src/Modules/IdentityAccess/ManageIdentityAndRoles/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-01-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-04,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,BE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vertical Slice API/Application/SQL 구현,IAM-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-01-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-05,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,ASYNC,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-01-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-06,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,FE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vue feature·Zod·Query·컴포넌트 구현,UI-IAM-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-01-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-07,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,TESTOPS,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,회귀·관제·Runbook·Rollback 증거,T-IAM-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-01-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-01,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,GOV,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,정책·범위·실패상태 계약 확정,"REQ-SEC-001, VS-02 SLICE_SPEC, ADR/Decision Log",사용자 결과 '상장·상폐·상품구조·거래가능성의 PIT 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-02,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DATA,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,데이터 시점·스키마·정합성 계약,"MIG-SEC-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-02-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-03,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DOMAIN,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/SynchronizeSecurityMaster/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-02-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-04,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,BE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vertical Slice API/Application/SQL 구현,"SEC-01/02,DAT-01; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-02-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-05,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,ASYNC,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Event/Job/Inbox·재처리 구현,"J01; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-02-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-06,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,FE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SEC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-02-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-07,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,TESTOPS,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,회귀·관제·Runbook·Rollback 증거,T-SEC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-02-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-010,S2,W5-6,Cross,Cross-cutting,Read Model,PROJECTION,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,projection owner/version/watermark/rebuild/staleness 고도화,projection owner/version/watermark/rebuild/staleness,"write model 직접 UI join 0, rebuild 결과 hash 동일",BE/Data,Architect/QA,8,AEG-X-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-01,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,GOV,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,정책·범위·실패상태 계약 확정,"REQ-DAT-001, VS-03 SLICE_SPEC, ADR/Decision Log",사용자 결과 '원시·조정 OHLCV·FX·금리의 revision 적재'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-02,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,데이터 시점·스키마·정합성 계약,"MIG-MD-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-03-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-03,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DOMAIN,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,도메인 불변조건·상태전이 구현,"src/Modules/MarketData/IngestMarketDataPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-03-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-04,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,BE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vertical Slice API/Application/SQL 구현,DAT-02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-03-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-05,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,ASYNC,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Event/Job/Inbox·재처리 구현,"J02; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-03-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-06,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,FE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-03-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-07,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,TESTOPS,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,회귀·관제·Runbook·Rollback 증거,T-DQ-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-03-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-01,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,GOV,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,정책·범위·실패상태 계약 확정,"REQ-CA-001, VS-04 SLICE_SPEC, ADR/Decision Log",사용자 결과 '분할·배당·증자·합병·상폐의 가격·수량·원가 일관성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-03",G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-02,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DATA,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,데이터 시점·스키마·정합성 계약,"MIG-CA-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-04-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-03,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DOMAIN,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/ApplyCorporateActions/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-04-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-04,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,BE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vertical Slice API/Application/SQL 구현,DAT-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-04-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-05,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,ASYNC,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Event/Job/Inbox·재처리 구현,"J03; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-04-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-06,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,FE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-02; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-04-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-07,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,TESTOPS,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,회귀·관제·Runbook·Rollback 증거,T-CA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-04-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-01,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,GOV,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,정책·범위·실패상태 계약 확정,"REQ-FND-001, VS-05 SLICE_SPEC, ADR/Decision Log",사용자 결과 '공시·재무·컨센서스 공개시각과 정정 이력'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-02,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DATA,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,데이터 시점·스키마·정합성 계약,"MIG-FND-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-05-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-03,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DOMAIN,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,도메인 불변조건·상태전이 구현,"src/Modules/FundamentalsPIT/IngestFundamentalsPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-05-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-04,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,BE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vertical Slice API/Application/SQL 구현,DAT-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-05-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-05,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,ASYNC,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Event/Job/Inbox·재처리 구현,"J04; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-05-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-06,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,FE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vue feature·Zod·Query·컴포넌트 구현,UI-FND-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-05-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-07,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,TESTOPS,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,회귀·관제·Runbook·Rollback 증거,T-FND-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-05-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-01,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,GOV,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,정책·범위·실패상태 계약 확정,"REQ-COST-001, VS-06 SLICE_SPEC, ADR/Decision Log",사용자 결과 '계좌·시장·상품별 Fee/Tax/FX valid-time 계약'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-02,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DATA,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,데이터 시점·스키마·정합성 계약,"MIG-COST-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-06-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-03,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DOMAIN,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainFeeTaxFxSchedule/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-06-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-04,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,BE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vertical Slice API/Application/SQL 구현,COST-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-06-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-05,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,ASYNC,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Event/Job/Inbox·재처리 구현,"J04C; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-06-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-06,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,FE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vue feature·Zod·Query·컴포넌트 구현,UI-COST-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-06-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-07,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,TESTOPS,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,회귀·관제·Runbook·Rollback 증거,T-COST-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-06-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-01,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,GOV,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,정책·범위·실패상태 계약 확정,"REQ-LED-001, VS-08 SLICE_SPEC, ADR/Decision Log",사용자 결과 '현금·체결·Lot·Cycle 불변 원장과 대사 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-06",G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-02,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DATA,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,데이터 시점·스키마·정합성 계약,"MIG-LED-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-08-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-03,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DOMAIN,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainPortfolioLedger/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-08-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-04,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,BE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vertical Slice API/Application/SQL 구현,POR-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-08-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-05,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,ASYNC,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Event/Job/Inbox·재처리 구현,"J12L; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-08-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-06,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,FE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vue feature·Zod·Query·컴포넌트 구현,UI-POR-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-08-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-07,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,TESTOPS,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,회귀·관제·Runbook·Rollback 증거,T-LED-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-08-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-011,S4,W9-10,Cross,Cross-cutting,Algorithm,GOLDEN,REQ-ALG-GOLDEN,Cross,Cross,Cross,Cross,Cross,Python↔C# Golden vector 고도화,Python↔C# Golden vector·epsilon·rounding 계약,정책 ID별 경계·우선순위·cost×2 결과 허용오차 내 동일,Quant/QA,Architect/QA,10,VS-09,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-01,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,GOV,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,정책·범위·실패상태 계약 확정,"REQ-EVD-001, VS-09 SLICE_SPEC, ADR/Decision Log",사용자 결과 'Dataset/Model/Config/Code SHA가 동결된 Evidence'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-02,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,데이터 시점·스키마·정합성 계약,"MIG-EVD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-09-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-03,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DOMAIN,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,도메인 불변조건·상태전이 구현,"src/Modules/ResearchFactors/BuildEvidenceSnapshot/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-09-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-04,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,BE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vertical Slice API/Application/SQL 구현,EVD-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-09-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-05,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,ASYNC,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Event/Job/Inbox·재처리 구현,"J06; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-09-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-06,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,FE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-09-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-07,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,TESTOPS,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,회귀·관제·Runbook·Rollback 증거,T-EVD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-09-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-01,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,GOV,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,정책·범위·실패상태 계약 확정,"REQ-SELL-001, VS-10 SLICE_SPEC, ADR/Decision Log",사용자 결과 '우선순위가 보존된 HOLD/부분매도/전량매도 결정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-09,VS-13",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-02,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DATA,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,데이터 시점·스키마·정합성 계약,"MIG-SIG-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-10-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-03,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DOMAIN,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/GenerateSellDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-10-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-04,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,BE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vertical Slice API/Application/SQL 구현,SIG-SELL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-10-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-05,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ASYNC,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Event/Job/Inbox·재처리 구현,"J08S; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-10-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-06,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SELL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-10-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-07,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,TESTOPS,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,회귀·관제·Runbook·Rollback 증거,T-SELL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-10-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-012,S5,W11-12,Cross,Cross-cutting,Research,REPRO,REQ-REPRO-001,Cross,Cross,Cross,Cross,Cross,dataset/code/config/environment manifest와 artifact hash 고도화,dataset/code/config/environment manifest와 artifact hash,"동일 manifest·seed 결과 재현, 실패 artifact 보존",Quant/Data,Architect/QA,12,AEG-X-009,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-01,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,GOV,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,정책·범위·실패상태 계약 확정,"REQ-RE-001, VS-11 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비가치훼손 매도의 재진입 계약·단계·만료'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-10,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-02,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DATA,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,데이터 시점·스키마·정합성 계약,"MIG-RE-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-11-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-03,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DOMAIN,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/ManageReentryWatch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-11-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-04,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,BE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vertical Slice API/Application/SQL 구현,RE-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-11-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-05,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ASYNC,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Event/Job/Inbox·재처리 구현,"J09; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-11-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-06,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,FE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RE-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-11-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-07,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,TESTOPS,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,회귀·관제·Runbook·Rollback 증거,T-RE-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-11-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-01,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,GOV,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,정책·범위·실패상태 계약 확정,"REQ-BKT-001, VS-19 SLICE_SPEC, ADR/Decision Log",사용자 결과 '동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06,VS-09",G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-02,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DATA,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,데이터 시점·스키마·정합성 계약,"MIG-BKT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-19-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-03,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DOMAIN,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/RunFrozenBacktest/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-19-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-04,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,BE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vertical Slice API/Application/SQL 구현,BKT-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-19-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-05,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,ASYNC,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Event/Job/Inbox·재처리 구현,"J-BKT; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-19-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-06,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,FE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BKT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-19-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-07,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,TESTOPS,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,회귀·관제·Runbook·Rollback 증거,T-BKT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-19-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-01,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,GOV,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,정책·범위·실패상태 계약 확정,"REQ-CLI-001, VS-07 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 목표·위험성향·제한상품의 버전 관리'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-02,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DATA,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,데이터 시점·스키마·정합성 계약,"MIG-CLI-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-07-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-03,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DOMAIN,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ManageClientIPS/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-07-02,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-04,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,BE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vertical Slice API/Application/SQL 구현,CLI-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-07-03,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-05,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,ASYNC,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-07-04,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-06,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,FE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLI-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-07-05,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-07,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,TESTOPS,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,회귀·관제·Runbook·Rollback 증거,T-CLI-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-07-06,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-01,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,GOV,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,정책·범위·실패상태 계약 확정,"REQ-REC-001, VS-14 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-10,VS-12,VS-13",MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-02,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DATA,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,데이터 시점·스키마·정합성 계약,"MIG-REC-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-14-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-03,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DOMAIN,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/GenerateDailyRecommendations/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-14-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-04,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vertical Slice API/Application/SQL 구현,SIG-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-14-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-05,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,ASYNC,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Event/Job/Inbox·재처리 구현,"J08; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-14-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-06,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,FE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-14-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-07,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,TESTOPS,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,회귀·관제·Runbook·Rollback 증거,T-REC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-14-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-01,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,GOV,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,정책·범위·실패상태 계약 확정,"REQ-REV-001, VS-15 SLICE_SPEC, ADR/Decision Log",사용자 결과 'maker-checker 승인·보류·기각과 낙관적 동시성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-14,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-02,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DATA,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,데이터 시점·스키마·정합성 계약,"MIG-REV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-15-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-03,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DOMAIN,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ReviewRecommendation/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-15-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-04,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,BE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vertical Slice API/Application/SQL 구현,SIG-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-15-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-05,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,ASYNC,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-06,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,FE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-15-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-07,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,TESTOPS,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,회귀·관제·Runbook·Rollback 증거,T-REV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-15-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-013,S8,W17-18,Cross,Cross-cutting,Audit,TRACE,REQ-AUDIT-E2E,Cross,Cross,Cross,Cross,Cross,Evidence→Decision→Review→Publish→Outcome trace API 고도화,Evidence→Decision→Review→Publish→Outcome trace API,"publication/decision 기준 누락 링크 0, correction event 보존",Compliance/BE,Architect/QA,8,VS-18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-01,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,GOV,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,정책·범위·실패상태 계약 확정,"REQ-PUB-001, VS-16 SLICE_SPEC, ADR/Decision Log",사용자 결과 '승인·유효·데이터 정상 제안만 고객 공개'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-15,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-02,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DATA,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,데이터 시점·스키마·정합성 계약,"MIG-PUB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-16-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-03,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DOMAIN,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/PublishClientAdvice/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-16-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-04,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vertical Slice API/Application/SQL 구현,SIG-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-16-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-05,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,ASYNC,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Event/Job/Inbox·재처리 구현,"J-PUB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-16-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-06,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,FE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-ADV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-16-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-07,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,TESTOPS,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,회귀·관제·Runbook·Rollback 증거,T-PUB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-16-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-01,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,GOV,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,정책·범위·실패상태 계약 확정,"REQ-CLD-001, VS-17 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 수락·거절·보류와 attribution 연결'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-16,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-02,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DATA,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,데이터 시점·스키마·정합성 계약,"MIG-CLD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-17-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-03,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DOMAIN,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/RecordClientDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-17-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-04,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,BE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vertical Slice API/Application/SQL 구현,SIG-06; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-17-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-05,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,ASYNC,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-17-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-06,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,FE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-17-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-07,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,TESTOPS,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,회귀·관제·Runbook·Rollback 증거,T-CLD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-17-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-01,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,정책·범위·실패상태 계약 확정,"REQ-EVA-001, VS-18 SLICE_SPEC, ADR/Decision Log",사용자 결과 '1/5/20/63/126/252일 결과·매도·재진입 품질 평가'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-10,VS-11,VS-16,VS-17",G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-02,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,데이터 시점·스키마·정합성 계약,"MIG-EVA-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-18-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-03,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DOMAIN,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/EvaluateDecisionOutcome/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-18-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-04,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vertical Slice API/Application/SQL 구현,EVA-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-05,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ASYNC,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Event/Job/Inbox·재처리 구현,"J10/J11; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-18-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-06,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVA-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-18-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-07,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,TESTOPS,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,회귀·관제·Runbook·Rollback 증거,T-EVA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-18-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-01,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,GOV,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,정책·범위·실패상태 계약 확정,"REQ-RISK-001, VS-13 SLICE_SPEC, ADR/Decision Log",사용자 결과 'ES·집중·상관·자본바닥 위험 스냅샷'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-08",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-02,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DATA,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,데이터 시점·스키마·정합성 계약,"MIG-RISK-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-13-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-03,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DOMAIN,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/CalculatePortfolioRisk/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-13-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-04,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,BE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vertical Slice API/Application/SQL 구현,POR-02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-13-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-05,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,ASYNC,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Event/Job/Inbox·재처리 구현,"J07; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-13-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-06,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,FE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RISK-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-13-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-07,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,TESTOPS,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,회귀·관제·Runbook·Rollback 증거,T-RISK-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-13-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-01,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,GOV,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,정책·범위·실패상태 계약 확정,"REQ-REB-001, VS-21 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비용·세금·위험예산·제약을 만족하는 리밸런싱'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-08,VS-12,VS-13",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-02,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DATA,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,데이터 시점·스키마·정합성 계약,"MIG-REB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-21-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-03,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DOMAIN,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/BuildRebalanceProposal/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-21-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-04,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,BE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vertical Slice API/Application/SQL 구현,REB-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-21-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-05,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,ASYNC,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Event/Job/Inbox·재처리 구현,"J-REB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-21-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-06,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,FE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REB-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-21-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-07,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,TESTOPS,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,회귀·관제·Runbook·Rollback 증거,T-REB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-21-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-01,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,GOV,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,정책·범위·실패상태 계약 확정,"REQ-BUY-001, VS-12 SLICE_SPEC, ADR/Decision Log",사용자 결과 'PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-05,VS-06,VS-09",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-02,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DATA,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,데이터 시점·스키마·정합성 계약,"MIG-BUY-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-12-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-03,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DOMAIN,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,도메인 불변조건·상태전이 구현,"src/Modules/ValuationForecast/RankBuyCandidates/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-12-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-04,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,BE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vertical Slice API/Application/SQL 구현,BUY-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-12-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-05,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,ASYNC,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Event/Job/Inbox·재처리 구현,"J08B; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-12-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-06,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,FE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BUY-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-12-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-07,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,TESTOPS,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,회귀·관제·Runbook·Rollback 증거,T-BUY-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-12-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-01,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,GOV,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,정책·범위·실패상태 계약 확정,"REQ-RPL-001, VS-22 SLICE_SPEC, ADR/Decision Log",사용자 결과 '적합성·유동성·비용후 기회우위 대체상품 비교'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-12,VS-13",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-02,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DATA,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,데이터 시점·스키마·정합성 계약,"MIG-RPL-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-22-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-03,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DOMAIN,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/SuggestReplacementProducts/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-22-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-04,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,BE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vertical Slice API/Application/SQL 구현,RPL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-22-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-05,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,ASYNC,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Event/Job/Inbox·재처리 구현,"J-RPL; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-22-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-06,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,FE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-22-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-07,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,TESTOPS,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,회귀·관제·Runbook·Rollback 증거,T-RPL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-22-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-014,S11,W23-24,Cross,Cross-cutting,Model Risk,VALIDATION,REQ-MODEL-RISK,Cross,Cross,Cross,Cross,Cross,CSCV/PBO 고도화,CSCV/PBO·DSR·block bootstrap·시도 원장,"PBO≤20%, DSR≥95%, cost×2 utility 양수 또는 승격 차단",Quant/Risk,Architect/QA,15,AEG-X-012,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-015,S11,W23-24,Cross,Cross-cutting,Shadow,EVAL,REQ-SHADOW-001,Cross,Cross,Cross,Cross,Cross,252거래일 고도화,252거래일·복수 국면 일평가 scorecard,적중률 단독 아닌 calibration/ES/false-exit/reentry/운영무결성 판정,Quant/Ops,Architect/QA,14,VS-18,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-01,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,정책·범위·실패상태 계약 확정,"REQ-MOD-001, VS-20 SLICE_SPEC, ADR/Decision Log",사용자 결과 '모델 승격 증거·승인·롤백·챔피언/챌린저'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-18,VS-19",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-02,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DATA,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,데이터 시점·스키마·정합성 계약,"MIG-MOD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-20-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-03,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DOMAIN,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/PromoteModelVersion/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-20-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-04,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,BE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vertical Slice API/Application/SQL 구현,MOD-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-20-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-05,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ASYNC,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Event/Job/Inbox·재처리 구현,"J-MOD; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-20-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-06,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-MOD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-20-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-07,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,TESTOPS,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,회귀·관제·Runbook·Rollback 증거,T-MOD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-20-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-01,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,GOV,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,정책·범위·실패상태 계약 확정,"REQ-RPT-001, VS-24 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 리포트·SignalR·Telegram 운영 경보'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-16,VS-18",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-02,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DATA,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,데이터 시점·스키마·정합성 계약,"MIG-RPT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-24-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-03,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DOMAIN,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,도메인 불변조건·상태전이 구현,"src/Modules/ReportingNotifications/ReportAndNotify/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-24-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-04,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,BE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vertical Slice API/Application/SQL 구현,RPT-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-24-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-05,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,ASYNC,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Event/Job/Inbox·재처리 구현,"J11R; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-24-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-06,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,FE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-24-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-07,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,TESTOPS,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,회귀·관제·Runbook·Rollback 증거,T-RPT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-24-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-016,S12,W25-26,Cross,Cross-cutting,Broker,CAPABILITY,REQ-KIS-OFF,Cross,Cross,Cross,Cross,Cross,KIS 주문 제출 startup/CI/runtime 차단 고도화,KIS 주문 제출 startup/CI/runtime 차단,"외부 주문 호출 0, capability override 감사·kill-switch 통과",Security/Ops,Architect/QA,7,AEG-X-005,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-01,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,GOV,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,정책·범위·실패상태 계약 확정,"REQ-RECON-001, VS-23 SLICE_SPEC, ADR/Decision Log",사용자 결과 '브로커·내부 주문·체결·보유·현금 break와 승인 정정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-16",Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-02,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,데이터 시점·스키마·정합성 계약,"MIG-EXE-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-23-01,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-03,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DOMAIN,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,도메인 불변조건·상태전이 구현,"src/Modules/ExecutionReconciliation/ReconcilePositionsAndFills/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-23-02,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-04,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,BE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vertical Slice API/Application/SQL 구현,"EXE-01/02,REC-01/02; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-23-03,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-05,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,ASYNC,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Event/Job/Inbox·재처리 구현,"J12; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-23-04,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-06,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,FE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RECON-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-23-05,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-07,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,TESTOPS,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,회귀·관제·Runbook·Rollback 증거,T-RECON-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-23-06,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-017,S13,W27-28,Cross,Cross-cutting,DR,OPS,REQ-DR-001,Cross,Cross,Cross,Cross,Cross,RPO/RTO 고도화,RPO/RTO·backup/restore·region/host failure rehearsal,"승인 RPO/RTO 내 복구, 원장·outbox·projection 대사 100%",SRE/DBA,Architect/QA,12,AEG-X-006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-01,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,GOV,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,정책·범위·실패상태 계약 확정,"REQ-GOV-001, VS-25 SLICE_SPEC, ADR/Decision Log",사용자 결과 '입력→결정→승인→공개→실행→평가 추적과 단계별 차단'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-01,VS-16,VS-20,VS-23",G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-02,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DATA,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,데이터 시점·스키마·정합성 계약,"MIG-GOV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-25-01,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-03,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DOMAIN,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/AuditAndKillSwitch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-25-02,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-04,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,BE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vertical Slice API/Application/SQL 구현,GOV-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-25-03,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-05,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,ASYNC,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Event/Job/Inbox·재처리 구현,"J-GOV; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-25-04,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-06,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,FE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-GOV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-25-05,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-07,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TESTOPS,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,회귀·관제·Runbook·Rollback 증거,T-GOV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-25-06,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-018,S14,W29-30,Cross,Cross-cutting,Performance,NFR,REQ-NFR-001,Cross,Cross,Cross,Cross,Cross,API P95 고도화,API P95·batch SLA·portfolio 규모·backfill 부하시험,개장 전 추천 SLA와 고객 API SLO가 동시에 충족,SRE/QA,Architect/QA,10,AEG-X-017,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-019,S14,W29-30,Cross,Cross-cutting,Cutover,RELEASE,REQ-CUT-001,Cross,Cross,Cross,Cross,Cross,dry-run/backfill/recon/rollback/release evidence 고도화,dry-run/backfill/recon/rollback/release evidence,"미승인 공개 0, duplicate 0, rollback 리허설과 승인 서명",PM/Ops,Architect/QA,10,AEG-X-018,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-020,S15,W31-32,Cross,Cross-cutting,Hypercare,OPS,REQ-HYP-001,Cross,Cross,Cross,Cross,Cross,P1/P2 triage 고도화,P1/P2 triage·daily reconciliation·debt burn-down,초기 안정화 Exit 기준·Owner·잔여 부채 승인,Ops/PM,Architect/QA,8,AEG-X-019,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED diff --git a/docs/v12_1/08_TECH_DEBT_REGISTER.csv b/docs/v12_1/08_TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..3191eafc --- /dev/null +++ b/docs/v12_1/08_TECH_DEBT_REGISTER.csv @@ -0,0 +1,26 @@ +ID,Priority,Debt,Impact,Remediation,Gate,Owner,Status +TD-001,P0,도구체인 실빌드 미검증,C# 컴파일/패키지 호환 결함 가능,승인 .NET 10 runner에서 restore/build/test,G0,DevOps,OPEN +TD-002,P0,pnpm-lock.yaml 부재,FE 공급망·재현성 미확보,승인 네트워크에서 pnpm install 후 lock review/commit,G0,FE Lead,OPEN +TD-003,P0,PostgreSQL migration rehearsal 미실행,fresh/upgrade/re-run/복구 실패 가능,PostgreSQL 승인 버전 4시나리오 자동화,G0,DBA,OPEN +TD-004,P0,원시 연구 데이터 권리·checksum·환경 lock 미완전,제3자 clean-room 재현 불가,Source catalog/license/raw checksum/container digest 확보,G1,Data Governance,OPEN +TD-005,P0,KR 검증 종료 2021-04-16,최근 시장국면 검증 공백,2026 현재까지 PIT 총수익·상폐·기업행사 보충 후 frozen OOS,G4,Quant/Data,OPEN +TD-006,P0,실제 OIDC/JWT 공급자 미결정,외부 Pilot 접근통제 불가,"Auth ADR, key rotation, claims/RBAC E2E",G5,Security,OPEN +TD-007,P0,총수익·상폐수익·컨센서스 공급계약 미확정,생존편향·성과왜곡,공식/상용 source 계약·SLA·재배포 권리 승인,G1,Data Governance,OPEN +TD-008,P0,Fee/Tax/FX PIT 표 미확정,비용후 기대효용 왜곡,valid_from/to 계좌·venue·상품·side·band schedule,G1,DBA/Quant,OPEN +TD-009,P0,Outbox/Inbox crash/replay 실증 미완료,side effect 누락·중복,lease/dead-letter/replay chaos test,G3,BE/SRE,IN_PROGRESS +TD-010,P1,JobRun·Watermark 표준의 일부 구현만 존재,배치 재처리·감사 불완전,공통 JobRun scope/version/hash/heartbeat 정책 적용,G1,BE/SRE,IN_PROGRESS +TD-011,P1,Architecture test가 정적 문자열 규칙 중심,금지 의존 누락 가능,assembly/namespace/schema/API fitness function 확대,G0,Architect,IN_PROGRESS +TD-012,P1,OpenAPI→FE contract 자동생성 미도입,DTO drift·홀루시네이션 위험,OpenAPI artifact diff + generated client/schema gate,G3,BE/FE,OPEN +TD-013,P1,PII redaction·Telegram 보안 테스트 미완성,고객정보 노출 가능,classification/redaction test와 secret scan,G5,Security/SRE,OPEN +TD-014,P1,Model promotion workflow 미완성,무단 모델 활성화 위험,model card/maker-checker/effective_at/rollback 구현,G4,Risk/BE,OPEN +TD-015,P1,Read Model rebuild runner 미완성,stale projection 복구 불가,projection version/watermark/rebuild/diff 도구,G3,BE/Data,IN_PROGRESS +TD-016,P1,SLO/RPO/RTO 미승인,운영 Go 판단 불가,부하시험·백업복구·DR ADR 승인,G5,SRE/DBA,OPEN +TD-017,P2,공통 UI 컴포넌트 승격 기준 미운영,중복 또는 과도한 추상화,3회 반복+동일 의미/변경축 확인 후 승격,S10,FE Lead,OPEN +TD-018,P1,PBO/DSR 전체 탐색·시도 원장 미완성,과최적화 위험,전체 실험 registry+CSCV/PBO/DSR/block bootstrap,G4,Quant/Risk,OPEN +TD-019,P1,자산유형별 재진입 확인팩터 공급원 미완성,재진입 품질 저하,asset policy contract+PIT source+missing evidence downgrade,G2,Quant/Data,OPEN +TD-020,P0,자동주문/KIS 제출은 금지 상태,오활성화 사고 위험,Options ValidateOnStart+CI config scan+runtime kill switch 유지,ALL,Security/Ops,MITIGATED +TD-021,P1,정책 임계값이 문서·YAML·C#에 중복될 가능성,계약 drift,승인 config registry+schema+hash+generated constants,G2,Quant/BE,OPEN +TD-022,P1,DB immutable trigger와 correction event 운영절차 미실증,정정/감사 장애 가능,maker-checker correction replay와 audit trace E2E,G3,DBA/Compliance,OPEN +TD-023,P2,프런트 서버상태/Pinia 책임 경계의 팀 규율 미검증,중복 캐시·stale UI,lint/review checklist+query key registry,MVP-B,FE Lead,OPEN +TD-024,P1,Dependency vulnerability/license 자동검사 미구성,공급망 리스크,NuGet/npm SBOM·license allowlist·vulnerability gate,G5,Security/DevOps,OPEN +TD-025,P1,성능 규모 가정 미확정,배치 SLA/DB index 과·소설계,portfolio/security/client volume 결정·capacity test,G6-A,PM/SRE,OPEN diff --git a/docs/v12_1/09_TRACEABILITY_MATRIX.csv b/docs/v12_1/09_TRACEABILITY_MATRIX.csv new file mode 100644 index 00000000..7124e76d --- /dev/null +++ b/docs/v12_1/09_TRACEABILITY_MATRIX.csv @@ -0,0 +1,27 @@ +Requirement_ID,Slice_ID,Policy_or_Data_ID,API_ID,DB_ID,Job_Event_ID,UI_ID,Test_ID,WBS_Range,Release_Gate,Evidence_Status +REQ-PLAT-001,VS-00,DATA/DOMAIN-CONTRACT,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,AEG-VS-00-01..AEG-VS-00-07,G0,SOURCE+DESIGN_PROPOSAL +REQ-IAM-001,VS-01,DATA/DOMAIN-CONTRACT,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,AEG-VS-01-01..AEG-VS-01-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-SEC-001,VS-02,DATA/DOMAIN-CONTRACT,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,AEG-VS-02-01..AEG-VS-02-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-DAT-001,VS-03,DATA/DOMAIN-CONTRACT,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,AEG-VS-03-01..AEG-VS-03-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-CA-001,VS-04,DATA/DOMAIN-CONTRACT,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,AEG-VS-04-01..AEG-VS-04-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-FND-001,VS-05,DATA/DOMAIN-CONTRACT,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,AEG-VS-05-01..AEG-VS-05-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-COST-001,VS-06,DATA/DOMAIN-CONTRACT,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,AEG-VS-06-01..AEG-VS-06-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-CLI-001,VS-07,DATA/DOMAIN-CONTRACT,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,AEG-VS-07-01..AEG-VS-07-07,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-LED-001,VS-08,DATA/DOMAIN-CONTRACT,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,AEG-VS-08-01..AEG-VS-08-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-EVD-001,VS-09,DATA/DOMAIN-CONTRACT,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,AEG-VS-09-01..AEG-VS-09-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-SELL-001,VS-10,"ALG-SELL-001~005,ALG-SELL-PORT-001",SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,AEG-VS-10-01..AEG-VS-10-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-RE-001,VS-11,ALG-REENTRY-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,AEG-VS-11-01..AEG-VS-11-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-BUY-001,VS-12,ALG-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,AEG-VS-12-01..AEG-VS-12-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RISK-001,VS-13,ALG-PORT-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,AEG-VS-13-01..AEG-VS-13-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-REC-001,VS-14,DATA/DOMAIN-CONTRACT,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,AEG-VS-14-01..AEG-VS-14-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-REV-001,VS-15,DATA/DOMAIN-CONTRACT,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,AEG-VS-15-01..AEG-VS-15-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-PUB-001,VS-16,DATA/DOMAIN-CONTRACT,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,AEG-VS-16-01..AEG-VS-16-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-CLD-001,VS-17,DATA/DOMAIN-CONTRACT,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,AEG-VS-17-01..AEG-VS-17-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-EVA-001,VS-18,DATA/DOMAIN-CONTRACT,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,AEG-VS-18-01..AEG-VS-18-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-BKT-001,VS-19,DATA/DOMAIN-CONTRACT,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,AEG-VS-19-01..AEG-VS-19-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-MOD-001,VS-20,DATA/DOMAIN-CONTRACT,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,AEG-VS-20-01..AEG-VS-20-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-REB-001,VS-21,DATA/DOMAIN-CONTRACT,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,AEG-VS-21-01..AEG-VS-21-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-RPL-001,VS-22,DATA/DOMAIN-CONTRACT,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,AEG-VS-22-01..AEG-VS-22-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RECON-001,VS-23,DATA/DOMAIN-CONTRACT,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,AEG-VS-23-01..AEG-VS-23-07,Pilot-A,SOURCE+DESIGN_PROPOSAL +REQ-RPT-001,VS-24,DATA/DOMAIN-CONTRACT,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,AEG-VS-24-01..AEG-VS-24-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-GOV-001,VS-25,DATA/DOMAIN-CONTRACT,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,AEG-VS-25-01..AEG-VS-25-07,G5,SOURCE+DESIGN_PROPOSAL diff --git a/docs/v12_1/10_DECISION_LOG.csv b/docs/v12_1/10_DECISION_LOG.csv new file mode 100644 index 00000000..641f842d --- /dev/null +++ b/docs/v12_1/10_DECISION_LOG.csv @@ -0,0 +1,13 @@ +Decision_ID,Status,Decision_or_Question,Basis,Owner,Gate,Approved_or_Due +DEC-001,APPROVED,투자자문형→Shadow→Pilot; 자동주문 OFF,v10.0·v12.2,운영사/준법,ALL,2026-08-01 +DEC-002,APPROVED,알고리즘 상태 RESEARCH_CANDIDATE_NOT_PRODUCTION,v10.0·v12.2,투자위/리스크,G4,2026-08-01 +DEC-003,APPROVED,Modular Monolith+Vertical Slice; 조기 microservice 금지,v10.0,Architect,G0,2026-08-01 +DEC-004,APPROVED,PIT/revision/hash/lineage와 immutable Evidence 우선,v10.0·v12.2,Data/Quant,G1,2026-08-01 +DEC-005,APPROVED,매도 우선순위: impairment→survival→floor→concentration→opportunity→reentry,v12.2,투자위/Quant,G2,2026-08-01 +DEC-006,APPROVED,SellRatioOfLot와 portfolio weight/core floor 단위 분리,v12.0 Delta,Quant/Architect,G2-A,2026-08-02 +DEC-007,DECISION_REQUIRED,생산 OIDC/JWT 공급자와 claims mapping,자료 미지원,Security/PM,G5,미정 +DEC-008,DECISION_REQUIRED,PIT 총수익·상폐·컨센서스 공급원/라이선스,자료 미지원,Data Governance/Legal,G1,미정 +DEC-009,DECISION_REQUIRED,계좌·시장·venue별 Fee/Tax/FX schedule,자료 미지원,Ops/Tax/Quant,G1,미정 +DEC-010,DECISION_REQUIRED,SLO/RPO/RTO와 운영 용량 기준,자료 미지원,SRE/PM,G5,미정 +DEC-011,DECISION_REQUIRED,고객/계좌/상품 규모와 성능 테스트 볼륨,자료 미지원,PM/SRE,G6-A,미정 +DEC-012,DECISION_REQUIRED,한국 최신 PIT 데이터 확보 범위와 재검증 일정,자료 미지원,Quant/Data,G4,미정 diff --git a/docs/v12_1/11_VIBE_CODING_HALLUCINATION_CONTROL.md b/docs/v12_1/11_VIBE_CODING_HALLUCINATION_CONTROL.md new file mode 100644 index 00000000..73036d5e --- /dev/null +++ b/docs/v12_1/11_VIBE_CODING_HALLUCINATION_CONTROL.md @@ -0,0 +1,31 @@ +# 바이브코딩·홀루시네이션 통제 + +## 증거 분류 + +- `SOURCE`: 첨부 기준·승인 계약에 직접 근거. +- `ASSUMPTION`: 착수 편의 가정. 승인자·만료일 필요. +- `UNKNOWN`: 현재 자료로 판단 불가. 코드 기본값 금지. +- `DECISION_REQUIRED`: Gate 이전 결정 필요. 미결정이면 fail-closed. + +## AI 작업 패킷 + +각 변경은 Requirement/Slice/Policy/Data/API/DB/Job/UI/Test ID, 사용자 결과, 비목표, 입력 시점, 상태전이, 경계값, 실패경로, 금지패턴, 검증명령, Source/Assumption/Unknown, Owner/Reviewer를 포함한다. + +## 금지 + +- 존재하지 않는 컬럼·Endpoint·임계값·법적 상태 발명. +- 실행하지 않은 build/test/migration을 PASS로 기록. +- AI 생성 migration의 DBA 검토 없는 병합. +- 실고객 데이터·계좌·token·secret의 prompt/fixture/log 사용. +- 정책 변경과 대규모 리팩터링을 한 PR에 혼합. +- 테스트를 만족시키기 위한 기준 완화. + +## PR Gate + +1. Source/Assumption/Unknown/Decision Required. +2. Traceability IDs. +3. Golden/Characterization test. +4. fresh/upgrade/re-run migration. +5. security/PII/license 영향. +6. metric/alert/runbook/rollback. +7. 실제 실행한 명령과 결과 artifact. diff --git a/docs/v12_1/12_PROCESS_SIMPLIFICATION_AND_STANDARDIZATION.md b/docs/v12_1/12_PROCESS_SIMPLIFICATION_AND_STANDARDIZATION.md new file mode 100644 index 00000000..da0fdef5 --- /dev/null +++ b/docs/v12_1/12_PROCESS_SIMPLIFICATION_AND_STANDARDIZATION.md @@ -0,0 +1,26 @@ +# 프로세스 단순화·패턴화·표준화 + +## 문서는 늘리지 않는다 + +상위 문서군 6개와 저장소 9개 Source of Truth를 유지한다. 상세는 Slice Spec과 Traceability에 Just-in-time으로 기록한다. 같은 사실을 여러 문서에서 별도 관리하지 않는다. + +## 단일 Delivery Flow + +`Idea → Decision Required 해소 → Slice Ready → Walking Skeleton → Contract/Golden → Implement → Review → Release Evidence → Observe → Debt/Outcome` + +## 표준 패턴 + +- Command: Idempotency + transaction + outbox. +- Query: Read Model + staleness metadata. +- Batch: JobRun + scope/watermark + replay. +- Data ingest: Raw→Canonical PIT→DQ→Dataset manifest. +- Policy: ordered chain + explicit terminal/non-terminal result. +- State machine: allowed transition table + optimistic concurrency. +- Audit: append-only event + payload hash + correction event. + +## 하지 않을 것 + +- CQRS/EDA를 유행어로 확대하지 않는다. 필요한 Command/Query 분리와 Outbox만 사용한다. +- 모든 테이블을 event sourcing하지 않는다. Evidence/Decision/Audit처럼 규제·재현성이 필요한 곳만 immutable append를 적용한다. +- 모든 화면을 AG Grid로 만들지 않는다. 대량 운영 목록에만 사용한다. +- 모든 코드에 interface를 만들지 않는다. 외부 경계·교체 가능성·테스트 seam이 있는 곳만 둔다. diff --git a/docs/v12_1/13_GATES_AND_20_DAY_RESTART.md b/docs/v12_1/13_GATES_AND_20_DAY_RESTART.md new file mode 100644 index 00000000..4d10ac9a --- /dev/null +++ b/docs/v12_1/13_GATES_AND_20_DAY_RESTART.md @@ -0,0 +1,25 @@ +# 검증 Gate와 20영업일 재착수 + +## 20영업일 + +| 기간 | 작업 | 완료 증거 | +|---|---|---| +| D1~D3 | 기준선·Coverage·Decision Log·자동주문 OFF | Steering sign-off, ID 중복 0 | +| D4~D6 | .NET/node/pnpm/lock·secret/env·Gitea CI | reproducible bootstrap green | +| D7~D10 | DbUp 4시나리오·Auth·Outbox/Inbox·Architecture | G0 통과 | +| D11~D14 | SecurityMaster·MarketData·PIT·CA·DQ | replay hash 동일, lookahead 0 | +| D15~D17 | Evidence·6 Sell Policy·Reentry Golden·DB invariant | G2-A 통과 | +| D18~D20 | Research/Production Decision Slice·FE·OTel E2E | 첫 End-to-End Slice Done | + +## Go의 정의 + +코드 존재가 아니라 `Source→Requirement→Policy/Data→API/DB/Job/UI→Test→PR→Release Evidence`가 연결되고 운영·준법 Gate가 통과된 상태다. + +## 현재 상태 + +- Python 정책 Golden Contract: 기존 v12 기준 통과, C# 교차비교 필요. +- 정적 검증: v12.1 패키지에서 실행. +- .NET restore/build/test: 현재 환경 SDK 부재로 미실행. +- PostgreSQL migration rehearsal: DB 환경 부재로 미실행. +- pnpm frozen install/typecheck/test/build: pnpm/lockfile 부재로 미실행. +- Shadow/PBO/DSR: 미충족. diff --git a/docs/v12_1/14_PACKAGE_CONTENTS.md b/docs/v12_1/14_PACKAGE_CONTENTS.md new file mode 100644 index 00000000..e6755a9b --- /dev/null +++ b/docs/v12_1/14_PACKAGE_CONTENTS.md @@ -0,0 +1,14 @@ +# 패키지 구성 + +- 원본 첨부: `attachments/current_session/` (8개) 및 기존 `attachments/original/`. +- 기준 문서: `docs/v12_1/`. +- 상세 WBS: `docs/v12_1/07_DETAILED_WBS_MASTER.csv` (202개 작업). +- 추적성: `docs/v12_1/09_TRACEABILITY_MATRIX.csv`. +- 기술부채: `docs/v12_1/08_TECH_DEBT_REGISTER.csv`. +- Decision Log: `docs/v12_1/10_DECISION_LOG.csv`. +- .NET 10 템플릿: `src/`, `tests/`, `db/migrations/`. +- Vue 3/Vite 8 템플릿: `frontend/`. +- 연구 코드·Golden: `research/`. +- 검증: `scripts/validate_v121.py`, `STATIC_VALIDATION_V12_1.txt`. + +동일 SHA의 첨부도 사용자가 실제 첨부한 파일명 단위로 보존한다. 중복 여부는 Source Coverage Matrix에 명시한다. diff --git a/docs/v12_1/K-ArtSell_Aegis_v12_1_∞ïñφûë∞ñÇδ╣ä_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx b/docs/v12_1/K-ArtSell_Aegis_v12_1_∞ïñφûë∞ñÇδ╣ä_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx new file mode 100644 index 00000000..cba99fa5 Binary files /dev/null and b/docs/v12_1/K-ArtSell_Aegis_v12_1_∞ïñφûë∞ñÇδ╣ä_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx differ diff --git a/docs/v12_1/VERSION_COVERAGE_AND_SUPERSESSION.csv b/docs/v12_1/VERSION_COVERAGE_AND_SUPERSESSION.csv new file mode 100644 index 00000000..10b099dc --- /dev/null +++ b/docs/v12_1/VERSION_COVERAGE_AND_SUPERSESSION.csv @@ -0,0 +1,7 @@ +Baseline,Status,Retained_Scope,Current_Treatment +K-ArtSell 12.2,RETAINED,정량 감사·알고리즘 증거·데이터 한계,연구후보 근거; 생산 승격 단독근거 금지 +v10.0,RETAINED,47개 장·26 Slice·16 Sprint·Gate·36개월 운영,최상위 안전·비회귀 기준 +v11,RETAINED,초기 .NET/Vue walking skeleton,유효 코드만 보존; 미비점은 v11.1/v12/v12.1로 보강 +v11.1,RETAINED,보안·불변성·기술부채 하드닝,v12.1과 충돌하지 않는 Delta 유지 +v12.0,IMPROVED,서버 Evidence 결정·단위 분리·102 WBS,v12.1은 상세 WBS·공통 실행계약·패키지 무결성을 보강 +v12.1,CURRENT,실행준비도·200+ WBS·모듈/배치/Projection 템플릿,현재 패키지 Delta; 실빌드·DB rehearsal 전 생산 아님 diff --git a/docs/v12_2/00_EXECUTIVE_STRATEGIC_PROPOSAL.md b/docs/v12_2/00_EXECUTIVE_STRATEGIC_PROPOSAL.md new file mode 100644 index 00000000..ae0509c6 --- /dev/null +++ b/docs/v12_2/00_EXECUTIVE_STRATEGIC_PROPOSAL.md @@ -0,0 +1,50 @@ +# K-ArtSell Aegis v12.2 전략적 통합 고도화 제안 + +상태: **IMPLEMENTATION_TEMPLATE / STATIC_VALIDATION_REQUIRED / BUILD_AND_DB_REHEARSAL_REQUIRED** +운영 경계: **투자자문형 우선 · 자동주문/KIS 제출 OFF · RESEARCH_CANDIDATE_NOT_PRODUCTION** + +## 1. 결론 + +v12.2는 v10.0의 비회귀·PIT·감사·재현성 기준과 v12.1 실행준비 패키지를 보존하면서, 실제 구현에서 가장 위험한 데이터 의미 오류를 먼저 교정한다. 핵심 Delta는 다음과 같다. + +1. **Lot 매도비율과 종목 전체 비중을 분리**한다. `SellRatioOfLot`은 대상 Lot에만 적용하며, 매도 후 종목 비중은 `CurrentSecurityPortfolioWeight - CurrentLotPortfolioWeight × SellRatioOfLot`로 계산한다. +2. **정책 우선순위 전체 경로를 불변 증거로 저장**한다. 최종 사유만 남기지 않고 Applied/Blocked/NotApplicable을 순서대로 `policy_trace_json`에 보존한다. +3. **첨부 원본 6개를 SHA-256과 함께 보존**하고, 이전 v12.1 패키지를 기준선으로 포함한다. +4. **231개 상세 WBS**를 26개 Vertical Slice와 Requirement/API/DB/Job/UI/Test/Gate에 연결한다. +5. .NET/Vue/SQL/Hangfire용 **반복 가능한 템플릿 팩**을 제공하되 조기 마이크로서비스, Generic Repository, 전역 Pinia 캐시, 무분별한 인터페이스를 금지한다. + +## 2. 생산준비도 판단축 + +화면 수나 클래스 수가 아니라 아래 흐름의 완결성으로 판단한다. + +`Source/License → Raw/PIT/Revision/DQ → Evidence/VersionSet → Sell/Reentry → Recommendation → Maker-Checker → Publish → Outcome → Reconciliation/DR` + +## 3. 우선순위 + +| 우선순위 | 작업 | 차단 Gate | +|---|---|---| +| P0 | .NET/pnpm/PostgreSQL 실검증, lockfile, DbUp rehearsal | G0 | +| P0 | PIT 총수익·상폐·기업행사·Fee/Tax/FX·라이선스 | G1 | +| P0 | Lot/종목 비중 의미 교정, 정책 Golden, C#↔Python 교차검증 | G2-A | +| P0 | Outbox/Inbox crash/replay, maker-checker, immutable publish | G3 | +| P0 | 252거래일 Shadow, PBO/DSR, 복수 국면 OOS | G4 | +| P0 | OIDC/JWT, SLO/RPO/RTO, DR, kill-switch | G5 | + +## 4. 정량 연구의 냉정한 해석 + +첨부 연구는 미국 표본에서 v12 후보가 v11 대비 회전율과 일부 MDD를 낮춘 근거를 제공하지만, 모든 자산에서 CAGR·MDD가 동시에 개선된 것은 아니다. 한국 표본은 2021-04-16 종료이며 최근 국면 검증이 비어 있다. 따라서 연구결과는 **정책 후보와 Golden 기준의 근거**이지 생산 승격 근거가 아니다. + +특히 연구 결과의 `false_exit_rate_63d`는 자산별로 높은 편이며, 문서의 목표값인 연 2% 이하와 정의·집계주기가 직접 일치하지 않는다. v12.2는 지표 정의 버전과 평가창을 고정하고, 목표값 충족을 주장하지 않는다. + +## 5. 패키지 규모 + +- 현재 세션 첨부 원본: 6개 +- Vertical Slice: 26개 +- 상세 WBS: 231개 (P0 166, P1 65) +- 계획 공수: 1450 PD +- 기술부채: 33건 +- 자동주문/KIS 제출: OFF + +## 6. Go 정의 + +코드가 존재하는 상태가 아니라, `Source → Requirement → Policy/Data → API/DB/Job/UI → Test → PR → Release Evidence`가 연결되고 운영·준법 Gate가 통과된 상태다. 현재 패키지는 정적 템플릿이며, .NET 빌드·pnpm frozen build·PostgreSQL migration rehearsal·Shadow 증거가 없으므로 생산 준비 완료로 해석하면 안 된다. diff --git a/docs/v12_2/01_SOURCE_COVERAGE_MATRIX.csv b/docs/v12_2/01_SOURCE_COVERAGE_MATRIX.csv new file mode 100644 index 00000000..1a3483f1 --- /dev/null +++ b/docs/v12_2/01_SOURCE_COVERAGE_MATRIX.csv @@ -0,0 +1,7 @@ +Attachment,Bytes,SHA256,Role,Version_Status,V12_2_Treatment +K-ArtSell_12_2_complete_package(1).zip,2513047,1e9df605a91f227fb5ff4ea057e55f4319e62060fbaf8e64551756ee2931c5ea,연구 코드·CSV·정량 감사·구성안,RETAINED,원본 무변경 보존; v12.2는 Delta만 추가 +K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx,64063,eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3,v12.1 실행준비 통합 제안서,RETAINED,원본 무변경 보존; v12.2는 Delta만 추가 +K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,402134,d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6,최상위 누적 실행기준서,RETAINED,원본 무변경 보존; v12.2는 Delta만 추가 +KArtSell_Aegis_v11_1_hardening(1).zip,89397,01b3d3025dfb3a6cafcff4d751851240a6087c2329e5c1472ec31703f209ccbd,보안·불변성·기술부채 hardening delta,RETAINED,원본 무변경 보존; v12.2는 Delta만 추가 +KArtSell_Aegis_v12_1_execution_ready_complete(1).zip,28233180,e5f9896474f32706d28df29cbdb5e3e74dbcc983e74c73f7067c377ee7aea260,직전 실행준비 통합 패키지 baseline,RETAINED,원본 무변경 보존; v12.2는 Delta만 추가 +KArtSell_v11_implementation_acceleration(1).zip,56738,2bd5713b98104bf7ac45362105d9b3175d5ca818c06753e572aaf79a936658a2,최초 .NET/Vue walking skeleton,RETAINED,원본 무변경 보존; v12.2는 Delta만 추가 diff --git a/docs/v12_2/02_ARCHITECTURE_REFACTORING_STANDARD.md b/docs/v12_2/02_ARCHITECTURE_REFACTORING_STANDARD.md new file mode 100644 index 00000000..08f6958a --- /dev/null +++ b/docs/v12_2/02_ARCHITECTURE_REFACTORING_STANDARD.md @@ -0,0 +1,39 @@ +# SOLID·리팩터링·구조화 실행 기준 + +## 1. 경계 + +- Endpoint: HTTP/Auth/Header/Validation/ProblemDetails만 담당 +- Application: 유스케이스 조정, 멱등, 트랜잭션, Outbox +- Domain Policy: 순수 결정, 우선순위, 상태전이, 단위 +- Infrastructure: Dapper/Npgsql/Adapter/Hangfire +- Projection: 화면·리포트 전용, 버전·watermark·rebuild 가능 + +## 2. SOLID 적용 + +| 원칙 | 적용 | 금지 | +|---|---|---| +| SRP | 정책, 저장, 외부 I/O, 화면상태 분리 | God Service, Job 내부 정책 | +| OCP | 명시적 policy/adapter registry와 contract test | reflection plugin framework | +| LSP | Adapter 교체 시 시점·단위·오류·멱등 동일 | mock 성공만으로 승인 | +| ISP | IClock, ContextReader, SourceAdapter 등 좁은 Port | 범용 Repository/대형 Service | +| DIP | Domain은 FastEndpoints/Dapper/Npgsql을 모름 | Infrastructure 타입의 Domain 침투 | + +## 3. 리팩터링 규칙 + +1. 동작보존 리팩터링과 정책/수식 변경은 별도 PR로 분리한다. +2. Characterization/Golden test를 먼저 만든다. +3. 중복은 코드 모양이 아니라 **의미와 변경축**이 같을 때만 추상화한다. +4. 공통화는 3회 반복 후에도 동일 의미·변경축이 확인될 때 승격한다. +5. 모든 클래스에 interface를 만들지 않는다. +6. 모든 테이블을 event sourcing하지 않는다. Evidence/Decision/Audit처럼 불변 증거가 필요한 곳만 append-only로 한다. +7. 조기 마이크로서비스 분리는 금지한다. Modular Monolith의 경계·스키마·Architecture Test가 먼저다. + +## 4. Architecture Fitness Function + +- Domain 프로젝트의 FastEndpoints/Dapper/Npgsql/Hangfire 참조 0 +- 모듈 간 직접 DB schema 접근 0 +- Generic Repository 패턴 0 +- Endpoint 권한 선언 누락 0 +- 자동주문/KIS capability true 구성 0 +- Migration 번호 중복·역행 0 +- 문서/DDL/OpenAPI/Test 계약 diff 미검토 0 diff --git a/docs/v12_2/03_ALGORITHM_SELL_REENTRY_CONTRACT.md b/docs/v12_2/03_ALGORITHM_SELL_REENTRY_CONTRACT.md new file mode 100644 index 00000000..e90a371e --- /dev/null +++ b/docs/v12_2/03_ALGORITHM_SELL_REENTRY_CONTRACT.md @@ -0,0 +1,67 @@ +# 매도·재진입 알고리즘 계약 v12.2 + +## 1. 고정 우선순위 + +`HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION/LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION` + +상위 정책은 하위 점수로 상쇄되지 않는다. 정책 체인은 첫 Applied 결과에서 종료하지만, 그 전의 NotApplicable/Blocked 경로를 정책 추적으로 보존한다. + +## 2. 단위 계약 + +| 필드 | 의미 | 단위 | +|---|---|---| +| CurrentSecurityPortfolioWeight | 해당 종목 전체의 현재 절대비중 | 0~1 | +| CurrentLotPortfolioWeight | 대상 PositionLot이 차지하는 절대비중 | 0~1 | +| SellRatioOfLot | 대상 Lot 수량 중 매도 비율 | 0~1 | +| StrategicCoreFloorWeight | 종목 전체 기준 보존할 절대비중 | 0~1 | +| TargetSecurityPortfolioWeightAfter | 정책 실행 후 종목 전체 예상비중 | 0~1 | + +계산식: + +`TargetSecurityPortfolioWeightAfter = CurrentSecurityPortfolioWeight - CurrentLotPortfolioWeight × SellRatioOfLot` + +Core 보존형 정책의 최대 Lot 매도비율: + +`max(0, CurrentSecurityPortfolioWeight - StrategicCoreFloorWeight) / CurrentLotPortfolioWeight`, 상한 1. + +Hard impairment와 portfolio survival은 필요 시 Core 하회가 가능하다. Profit floor·집중·기회비용 정책은 Core를 보존한다. + +## 3. 정책 추적 + +각 평가 결과는 다음을 저장한다. + +- PolicyId, Priority +- Disposition: NotApplicable / Blocked / Applied +- ReasonCode +- RequestedSellRatioOfLot +- AppliedSellRatioOfLot +- StrategicCoreClampApplied + +정책 추적은 내부 감사·재현성용이다. 고객 공개 화면은 내부 원시 점수 대신 승인된 설명, 반대증거, 불확실성, 비용, 다음 검토일을 제공한다. + +## 4. 재진입 + +- Hard impairment 자동 재진입 금지 +- 최소 10거래일 대기 +- 상승 SMA50 회복 + 직전 20거래일 고점 돌파 +- 자산유형별 추가 확인 +- 단계 간 최소 10거래일 +- 126거래일 만료 +- 단계마다 unique key `(watch, stage)` +- 실행 시 새 CycleId와 새 Lot +- 직전 Cycle의 보호선·원가·고점 상태 재사용 금지 + +## 5. 검증 + +Golden/Boundary/Property 테스트는 다음을 고정한다. + +- 우선순위 비상쇄 +- Lot/종목 비중 계산 +- Core clamp 단조성 +- survival의 Core 하회 +- 미래 published_at 거부 +- 동일 입력·버전 동일 결과 +- 비용 2배 스트레스 +- C#↔Python 정책 벡터 교차비교 + +현재 임계값과 성과는 연구후보이며 Shadow/OOS Gate 전 생산 활성화하지 않는다. diff --git a/docs/v12_2/04_DATA_INTEGRITY_PIT_LEDGER_READMODEL.md b/docs/v12_2/04_DATA_INTEGRITY_PIT_LEDGER_READMODEL.md new file mode 100644 index 00000000..28957cbb --- /dev/null +++ b/docs/v12_2/04_DATA_INTEGRITY_PIT_LEDGER_READMODEL.md @@ -0,0 +1,45 @@ +# 데이터 정합성·정규화·역정규화 기준 + +## 1. 계층 + +| 계층 | 내용 | 불변조건 | +|---|---|---| +| L0 | Source catalog/license/SLA/schema | 승인 없는 source 사용 금지 | +| L1 | Raw payload/hash/event/published/ingested | append-only, overwrite 금지 | +| L2 | Canonical PIT 가격/기업행사/재무/비용 | revision·valid time·tradable session | +| L3 | DQ/quarantine/lineage/dataset manifest | 격리 데이터 추천 금지 | +| L4 | Feature/Forecast/Risk/Evidence | Dataset/Model/Config/Code SHA | +| L5 | Ledger/Decision/Review/Publish/Outcome | append/reversal/correction | +| L6 | Read Model | Owner/Version/Watermark/Rebuild/Staleness | +| L7 | Backtest/ModelCard/Release artifact | artifact hash/environment manifest | + +## 2. 정규화 + +원장·현금·PositionLot·Fill·기업행사·비용 스케줄은 3NF와 원천 unique key를 사용한다. 정정은 UPDATE가 아니라 reversal/correction event로 처리한다. `current=true` 하나에 의존하지 않고 `valid_from/to`, revision, source hash를 보존한다. + +## 3. 역정규화 + +화면·리포트 Read Model에서만 허용한다. 모든 Projection은 다음을 가진다. + +- ProjectionName/Version +- SourceWatermark +- BuiltAt +- ContentHash +- RebuildRun +- Staleness 상태 +- Write Model과의 diff 검사 + +## 4. PIT 최소 필드 + +`source_event_time, published_at, ingested_at, effective_from/to, revision_no, source_id, content_hash, quality_status, tradable_session, dataset_id` + +## 5. 핵심 Golden 데이터 + +- 분할·배당·증자·합병·상폐 +- 총수익과 가격수익 구분 +- 통화/단위/거래일 캘린더 +- Fee/Tax/FX valid-time +- 상폐수익과 당시 유니버스 +- 재작성 공시/컨센서스 revision + +데이터가 불완전하면 추천을 보류하거나 Evidence Grade를 낮춘다. 코드 기본값으로 조용히 대체하지 않는다. diff --git a/docs/v12_2/05_BE_FE_JOB_IMPLEMENTATION_STANDARD.md b/docs/v12_2/05_BE_FE_JOB_IMPLEMENTATION_STANDARD.md new file mode 100644 index 00000000..ce2114cb --- /dev/null +++ b/docs/v12_2/05_BE_FE_JOB_IMPLEMENTATION_STANDARD.md @@ -0,0 +1,42 @@ +# Backend·Frontend·Hangfire 구현 표준 + +## 1. Backend Vertical Slice + +1. Endpoint: 권한, 헤더, 입력 검증, ProblemDetails +2. Application: 멱등키, PIT context 조회, 트랜잭션, Outbox +3. Domain Policy: 순수 결정과 불변조건 +4. Infrastructure: Dapper SQL, Npgsql, Adapter +5. Event/Job: schema version, Inbox, retry/dead-letter +6. Tests: unit/integration/data/failure/replay/E2E +7. Ops: metric/alert/runbook/rollback + +생산형 결정 Command는 `PositionLotId, AsOf, IdempotencyKey` 같은 최소 식별자만 받는다. Evidence/Model/Config/DataVersion은 승인된 서버 PIT Context에서 조회한다. 연구 Vector Endpoint는 저장·공개·주문 흐름과 분리한다. + +## 2. 공통 오류 + +- 400: 구문/필수 헤더 +- 401/403: 인증/권한 +- 409: 승인 Evidence 부재, 버전 충돌, 상태전이 충돌 +- 422: 도메인 수용기준 위반 +- 503: 의존 source/DB/Capability unavailable + +## 3. Frontend 책임 + +| 상태 | 소유 | +|---|---| +| Server state | TanStack Query | +| Session/Role/UI preference | Pinia | +| Form | vee-validate + Zod | +| URL 공유상태 | vue-router | +| 대량 운영목록 | AG Grid server-side | +| Runtime contract | Zod request/response | + +Pinia에 서버 도메인 데이터를 복제하지 않는다. 모든 화면에 AG Grid를 사용하지 않는다. Evidence/Version/Staleness/Permission은 공통 컴포넌트로 제공하되 3회 반복 원칙을 따른다. + +## 4. Hangfire + +Queue는 control/market-data/fundamentals/feature-risk/recommendation/evaluation/reconciliation/research/backfill로 분리한다. 모든 Job은 다음을 가진다. + +`JobRunId, JobType, JobVersion, ScopeKey, IdempotencyKey, Watermark, Attempt, VersionSet, InputHash, TraceId, Heartbeat` + +Blind retry, 현재값 overwrite, 고객 SLA Queue와 연구 Backfill의 자원 공유를 금지한다. diff --git a/docs/v12_2/06_SLICE_CATALOGUE.csv b/docs/v12_2/06_SLICE_CATALOGUE.csv new file mode 100644 index 00000000..f6f7e270 --- /dev/null +++ b/docs/v12_2/06_SLICE_CATALOGUE.csv @@ -0,0 +1,27 @@ +Slice_ID,Slice,Module,Sprint,Weeks,Gate,Requirement_ID,Endpoint_ID,DB_ID,Job_ID,UI_ID,Test_ID,User_Result,Dependency,Status,V12_2_Delta +VS-00,PlatformBootstrap,Host/BuildingBlocks,S0,W1-2,G0,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,빌드·마이그레이션·관제 가능한 단일 배포 골격,-,PLANNED,"Toolchain lock, migration rehearsal, request context, module/feature templates" +VS-01,ManageIdentityAndRoles,IdentityAccess,S1,W3-4,G1-A,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,MFA·RBAC·업무분장과 승인 경계,VS-00,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-02,SynchronizeSecurityMaster,SecurityMaster,S1,W3-4,G1-A,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,상장·상폐·상품구조·거래가능성의 PIT 기준,VS-00,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-03,IngestMarketDataPIT,MarketData,S2,W5-6,G1-B,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,원시·조정 OHLCV·FX·금리의 revision 적재,VS-02,PLANNED,"PIT cutoff enforcement, source/license checksum, replay contract" +VS-04,ApplyCorporateActions,SecurityMaster,S2,W5-6,G1-B,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,분할·배당·증자·합병·상폐의 가격·수량·원가 일관성,"VS-02,VS-03",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-05,IngestFundamentalsPIT,FundamentalsPIT,S3,W7-8,G1,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,공시·재무·컨센서스 공개시각과 정정 이력,VS-02,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,S3,W7-8,G1,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,계좌·시장·상품별 Fee/Tax/FX valid-time 계약,VS-02,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-07,ManageClientIPS,ClientAdvisory,S6,W13-14,MVP-A,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,고객 목표·위험성향·제한상품의 버전 관리,VS-01,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-08,MaintainPortfolioLedger,PortfolioRisk,S3,W7-8,G1,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,현금·체결·Lot·Cycle 불변 원장과 대사 기준,"VS-02,VS-06",PLANNED,Security/Lot weight separation and immutable ledger semantics +VS-09,BuildEvidenceSnapshot,ResearchFactors,S4,W9-10,G2-A,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Dataset/Model/Config/Code SHA가 동결된 Evidence,"VS-03,VS-04,VS-05,VS-06",PLANNED,Evidence completeness grade and VersionSet hash +VS-10,GenerateSellDecision,SignalEngine,S4,W9-10,G2-A,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,우선순위가 보존된 HOLD/부분매도/전량매도 결정,"VS-08,VS-09,VS-13",PLANNED,"Lot-relative ratio correction, policy trace, terminal priority" +VS-11,ManageReentryWatch,SignalEngine,S5,W11-12,G2,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,비가치훼손 매도의 재진입 계약·단계·만료,VS-10,PLANNED,Reentry stage uniqueness and cycle/lot reset evidence +VS-12,RankBuyCandidates,ValuationForecast,S10,W21-22,Portfolio Gate,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위,"VS-03,VS-05,VS-06,VS-09",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-13,CalculatePortfolioRisk,PortfolioRisk,S9,W19-20,Portfolio-A,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,ES·집중·상관·자본바닥 위험 스냅샷,"VS-03,VS-08",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-14,GenerateDailyRecommendations,ClientAdvisory,S7,W15-16,MVP-B,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지,"VS-07,VS-10,VS-12,VS-13",PLANNED,Run-level idempotency and partial-failure quarantine +VS-15,ReviewRecommendation,ClientAdvisory,S7,W15-16,MVP-B,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,maker-checker 승인·보류·기각과 낙관적 동시성,VS-14,PLANNED,maker-checker concurrency and review evidence +VS-16,PublishClientAdvice,ClientAdvisory,S8,W17-18,G3,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,승인·유효·데이터 정상 제안만 고객 공개,VS-15,PLANNED,publish snapshot hash and staleness block +VS-17,RecordClientDecision,ClientAdvisory,S8,W17-18,G3,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,고객 수락·거절·보류와 attribution 연결,VS-16,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,S8,W17-18,G3,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,1/5/20/63/126/252일 결과·매도·재진입 품질 평가,"VS-10,VS-11,VS-16,VS-17",PLANNED,false-exit definition/version and revision-aware windows +VS-19,RunFrozenBacktest,BacktestingEvaluation,S5,W11-12,G2,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현,"VS-03,VS-04,VS-05,VS-06,VS-09",PLANNED,frozen manifest/environment lock and cross-language golden +VS-20,PromoteModelVersion,GovernanceAudit,S11,W23-24,G4-A,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,모델 승격 증거·승인·롤백·챔피언/챌린저,"VS-18,VS-19",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-21,BuildRebalanceProposal,PortfolioRisk,S9,W19-20,Portfolio-A,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,비용·세금·위험예산·제약을 만족하는 리밸런싱,"VS-07,VS-08,VS-12,VS-13",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-22,SuggestReplacementProducts,PortfolioRisk,S10,W21-22,Portfolio Gate,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,적합성·유동성·비용후 기회우위 대체상품 비교,"VS-07,VS-12,VS-13",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,S12,W25-26,Pilot-A,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,브로커·내부 주문·체결·보유·현금 break와 승인 정정,"VS-08,VS-16",PLANNED,reconciliation break workflow and approved correction +VS-24,ReportAndNotify,ReportingNotifications,S11,W23-24,G4-A,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,고객 리포트·SignalR·Telegram 운영 경보,"VS-16,VS-18",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-25,AuditAndKillSwitch,GovernanceAudit,S13,W27-28,G5,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,입력→결정→승인→공개→실행→평가 추적과 단계별 차단,"VS-01,VS-16,VS-20,VS-23",PLANNED,"capability guard, audit correction, kill-switch rehearsal" diff --git a/docs/v12_2/07_DETAILED_WBS_MASTER.csv b/docs/v12_2/07_DETAILED_WBS_MASTER.csv new file mode 100644 index 00000000..ec1e7f89 --- /dev/null +++ b/docs/v12_2/07_DETAILED_WBS_MASTER.csv @@ -0,0 +1,232 @@ +WBS_ID,Sprint,Weeks,Slice_ID,Slice,Module,Workstream,Requirement_ID,API_ID,DB_Migration_ID,Job_Event_ID,UI_ID,Test_ID,Task,Artifact,Acceptance_Evidence,Primary_Owner,Secondary,PD,Dependency,Gate,Evidence_Class,Risk,Status +AEG-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,Cross,Version Coverage Matrix 고도화,Version Coverage Matrix·Supersession Registry,모든 첨부와 v10/v12/v12.1의 Retained/Improved/Superseded 상태 100%,PM/Architect,Architect/QA,5,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,Cross,global.json 고도화,global.json·Directory.Packages·node/packageManager·lock 정책,승인 runner에서 dotnet restore/build/test 및 pnpm frozen build 재현,DevOps,Architect/QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,Cross,모듈/namespace/schema/API 금지 의존 Architecture tests 고도화,모듈/namespace/schema/API 금지 의존 Architecture tests,"Domain 기술의존 0, 모듈 직접 DB 접근 0, ID 중복 0",Architect/QA,Architect/QA,7,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-004,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/re-run/failure 복구 rehearsal 고도화,DbUp fresh/upgrade/re-run/failure 복구 rehearsal,PostgreSQL 승인 버전에서 4 시나리오와 checksum 변경 차단 통과,DBA/BE,Architect/QA,8,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-005,S0,W1-2,Cross,Cross-cutting,Security,SEC,REQ-SEC-BASE,Cross,Cross,Cross,Cross,Cross,"OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed 고도화","OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed","비개발 무인증 접근 0, secret/log/prompt 노출 0",Security/BE,Architect/QA,7,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,ASYNC,REQ-ASYNC-001,Cross,Cross,Cross,Cross,Cross,Outbox publisher 고도화,Outbox publisher·Inbox lease·dead-letter·replay,"duplicate 0, crash-before/after-publish 시나리오와 replay hash 통과",BE/SRE,Architect/QA,10,AEG-X-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-007,S0,W1-2,Cross,Cross-cutting,Observability,OPS,REQ-OBS-001,Cross,Cross,Cross,Cross,Cross,Serilog/OTel correlation 고도화,Serilog/OTel correlation·metric naming·Telegram redaction,"trace→job→decision→outbox 연결, PII redaction test 통과",SRE/Security,Architect/QA,7,AEG-X-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-008,S0,W1-2,Cross,Cross-cutting,API Contract,CONTRACT,REQ-API-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact 고도화,OpenAPI artifact·ProblemDetails taxonomy·FE contract generation,OpenAPI diff와 breaking change approval 없이는 Release 차단,BE/FE Architect,Architect/QA,8,AEG-X-003,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-01,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,GOV,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,정책·범위·실패상태 계약 확정,"REQ-PLAT-001, VS-00 SLICE_SPEC, ADR/Decision Log",사용자 결과 '빌드·마이그레이션·관제 가능한 단일 배포 골격'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-02,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DATA,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,데이터 시점·스키마·정합성 계약,"MIG-0000/0013, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-00-01,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-03,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DOMAIN,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,도메인 불변조건·상태전이 구현,"src/Modules/Host/BuildingBlocks/PlatformBootstrap/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-00-02,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-04,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,BE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vertical Slice API/Application/SQL 구현,HEALTH-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-00-03,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-05,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,ASYNC,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-00-04,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-06,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,FE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vue feature·Zod·Query·컴포넌트 구현,UI-PLAT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-00-05,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-07,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,TESTOPS,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,회귀·관제·Runbook·Rollback 증거,T-ARCH-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-00-06,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-009,S1,W3-4,Cross,Cross-cutting,Data Governance,DATA,REQ-DATA-SOURCE,Cross,Cross,Cross,Cross,Cross,Source catalog/license/SLA/timezone/unit/checksum 고도화,Source catalog/license/SLA/timezone/unit/checksum,승인 없는 source가 ingestion 또는 추천으로 진입하지 않음,Data Governance,Architect/QA,8,AEG-X-001,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-01,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,GOV,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,정책·범위·실패상태 계약 확정,"REQ-IAM-001, VS-01 SLICE_SPEC, ADR/Decision Log",사용자 결과 'MFA·RBAC·업무분장과 승인 경계'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-02,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DATA,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,데이터 시점·스키마·정합성 계약,"MIG-IAM-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-01-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-03,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DOMAIN,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,도메인 불변조건·상태전이 구현,"src/Modules/IdentityAccess/ManageIdentityAndRoles/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-01-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-04,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,BE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vertical Slice API/Application/SQL 구현,IAM-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-01-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-05,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,ASYNC,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-01-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-06,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,FE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vue feature·Zod·Query·컴포넌트 구현,UI-IAM-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-01-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-07,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,TESTOPS,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,회귀·관제·Runbook·Rollback 증거,T-IAM-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-01-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-01,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,GOV,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,정책·범위·실패상태 계약 확정,"REQ-SEC-001, VS-02 SLICE_SPEC, ADR/Decision Log",사용자 결과 '상장·상폐·상품구조·거래가능성의 PIT 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-02,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DATA,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,데이터 시점·스키마·정합성 계약,"MIG-SEC-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-02-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-03,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DOMAIN,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/SynchronizeSecurityMaster/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-02-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-04,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,BE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vertical Slice API/Application/SQL 구현,"SEC-01/02,DAT-01; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-02-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-05,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,ASYNC,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Event/Job/Inbox·재처리 구현,"J01; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-02-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-06,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,FE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SEC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-02-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-07,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,TESTOPS,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,회귀·관제·Runbook·Rollback 증거,T-SEC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-02-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-010,S2,W5-6,Cross,Cross-cutting,Read Model,PROJECTION,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,projection owner/version/watermark/rebuild/staleness 고도화,projection owner/version/watermark/rebuild/staleness,"write model 직접 UI join 0, rebuild 결과 hash 동일",BE/Data,Architect/QA,8,AEG-X-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-01,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,GOV,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,정책·범위·실패상태 계약 확정,"REQ-DAT-001, VS-03 SLICE_SPEC, ADR/Decision Log",사용자 결과 '원시·조정 OHLCV·FX·금리의 revision 적재'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-02,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,데이터 시점·스키마·정합성 계약,"MIG-MD-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-03-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-03,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DOMAIN,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,도메인 불변조건·상태전이 구현,"src/Modules/MarketData/IngestMarketDataPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-03-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-04,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,BE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vertical Slice API/Application/SQL 구현,DAT-02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-03-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-05,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,ASYNC,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Event/Job/Inbox·재처리 구현,"J02; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-03-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-06,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,FE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-03-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-07,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,TESTOPS,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,회귀·관제·Runbook·Rollback 증거,T-DQ-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-03-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-01,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,GOV,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,정책·범위·실패상태 계약 확정,"REQ-CA-001, VS-04 SLICE_SPEC, ADR/Decision Log",사용자 결과 '분할·배당·증자·합병·상폐의 가격·수량·원가 일관성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-03",G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-02,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DATA,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,데이터 시점·스키마·정합성 계약,"MIG-CA-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-04-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-03,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DOMAIN,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/ApplyCorporateActions/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-04-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-04,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,BE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vertical Slice API/Application/SQL 구현,DAT-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-04-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-05,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,ASYNC,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Event/Job/Inbox·재처리 구현,"J03; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-04-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-06,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,FE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-02; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-04-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-07,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,TESTOPS,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,회귀·관제·Runbook·Rollback 증거,T-CA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-04-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-01,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,GOV,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,정책·범위·실패상태 계약 확정,"REQ-FND-001, VS-05 SLICE_SPEC, ADR/Decision Log",사용자 결과 '공시·재무·컨센서스 공개시각과 정정 이력'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-02,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DATA,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,데이터 시점·스키마·정합성 계약,"MIG-FND-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-05-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-03,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DOMAIN,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,도메인 불변조건·상태전이 구현,"src/Modules/FundamentalsPIT/IngestFundamentalsPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-05-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-04,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,BE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vertical Slice API/Application/SQL 구현,DAT-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-05-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-05,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,ASYNC,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Event/Job/Inbox·재처리 구현,"J04; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-05-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-06,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,FE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vue feature·Zod·Query·컴포넌트 구현,UI-FND-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-05-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-07,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,TESTOPS,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,회귀·관제·Runbook·Rollback 증거,T-FND-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-05-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-01,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,GOV,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,정책·범위·실패상태 계약 확정,"REQ-COST-001, VS-06 SLICE_SPEC, ADR/Decision Log",사용자 결과 '계좌·시장·상품별 Fee/Tax/FX valid-time 계약'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-02,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DATA,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,데이터 시점·스키마·정합성 계약,"MIG-COST-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-06-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-03,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DOMAIN,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainFeeTaxFxSchedule/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-06-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-04,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,BE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vertical Slice API/Application/SQL 구현,COST-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-06-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-05,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,ASYNC,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Event/Job/Inbox·재처리 구현,"J04C; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-06-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-06,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,FE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vue feature·Zod·Query·컴포넌트 구현,UI-COST-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-06-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-07,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,TESTOPS,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,회귀·관제·Runbook·Rollback 증거,T-COST-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-06-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-01,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,GOV,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,정책·범위·실패상태 계약 확정,"REQ-LED-001, VS-08 SLICE_SPEC, ADR/Decision Log",사용자 결과 '현금·체결·Lot·Cycle 불변 원장과 대사 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-06",G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-02,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DATA,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,데이터 시점·스키마·정합성 계약,"MIG-LED-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-08-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-03,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DOMAIN,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainPortfolioLedger/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-08-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-04,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,BE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vertical Slice API/Application/SQL 구현,POR-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-08-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-05,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,ASYNC,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Event/Job/Inbox·재처리 구현,"J12L; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-08-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-06,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,FE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vue feature·Zod·Query·컴포넌트 구현,UI-POR-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-08-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-07,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,TESTOPS,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,회귀·관제·Runbook·Rollback 증거,T-LED-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-08-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-011,S4,W9-10,Cross,Cross-cutting,Algorithm,GOLDEN,REQ-ALG-GOLDEN,Cross,Cross,Cross,Cross,Cross,Python↔C# Golden vector 고도화,Python↔C# Golden vector·epsilon·rounding 계약,정책 ID별 경계·우선순위·cost×2 결과 허용오차 내 동일,Quant/QA,Architect/QA,10,VS-09,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-01,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,GOV,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,정책·범위·실패상태 계약 확정,"REQ-EVD-001, VS-09 SLICE_SPEC, ADR/Decision Log",사용자 결과 'Dataset/Model/Config/Code SHA가 동결된 Evidence'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-02,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,데이터 시점·스키마·정합성 계약,"MIG-EVD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-09-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-03,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DOMAIN,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,도메인 불변조건·상태전이 구현,"src/Modules/ResearchFactors/BuildEvidenceSnapshot/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-09-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-04,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,BE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vertical Slice API/Application/SQL 구현,EVD-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-09-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-05,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,ASYNC,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Event/Job/Inbox·재처리 구현,"J06; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-09-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-06,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,FE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-09-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-07,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,TESTOPS,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,회귀·관제·Runbook·Rollback 증거,T-EVD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-09-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-01,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,GOV,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,정책·범위·실패상태 계약 확정,"REQ-SELL-001, VS-10 SLICE_SPEC, ADR/Decision Log",사용자 결과 '우선순위가 보존된 HOLD/부분매도/전량매도 결정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-09,VS-13",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-02,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DATA,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,데이터 시점·스키마·정합성 계약,"MIG-SIG-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-10-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-03,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DOMAIN,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/GenerateSellDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-10-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-04,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,BE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vertical Slice API/Application/SQL 구현,SIG-SELL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-10-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-05,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ASYNC,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Event/Job/Inbox·재처리 구현,"J08S; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-10-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-06,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SELL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-10-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-07,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,TESTOPS,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,회귀·관제·Runbook·Rollback 증거,T-SELL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-10-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-012,S5,W11-12,Cross,Cross-cutting,Research,REPRO,REQ-REPRO-001,Cross,Cross,Cross,Cross,Cross,dataset/code/config/environment manifest와 artifact hash 고도화,dataset/code/config/environment manifest와 artifact hash,"동일 manifest·seed 결과 재현, 실패 artifact 보존",Quant/Data,Architect/QA,12,AEG-X-009,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-01,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,GOV,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,정책·범위·실패상태 계약 확정,"REQ-RE-001, VS-11 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비가치훼손 매도의 재진입 계약·단계·만료'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-10,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-02,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DATA,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,데이터 시점·스키마·정합성 계약,"MIG-RE-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-11-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-03,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DOMAIN,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/ManageReentryWatch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-11-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-04,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,BE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vertical Slice API/Application/SQL 구현,RE-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-11-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-05,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ASYNC,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Event/Job/Inbox·재처리 구현,"J09; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-11-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-06,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,FE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RE-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-11-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-07,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,TESTOPS,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,회귀·관제·Runbook·Rollback 증거,T-RE-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-11-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-01,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,GOV,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,정책·범위·실패상태 계약 확정,"REQ-BKT-001, VS-19 SLICE_SPEC, ADR/Decision Log",사용자 결과 '동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06,VS-09",G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-02,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DATA,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,데이터 시점·스키마·정합성 계약,"MIG-BKT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-19-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-03,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DOMAIN,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/RunFrozenBacktest/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-19-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-04,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,BE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vertical Slice API/Application/SQL 구현,BKT-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-19-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-05,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,ASYNC,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Event/Job/Inbox·재처리 구현,"J-BKT; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-19-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-06,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,FE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BKT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-19-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-07,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,TESTOPS,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,회귀·관제·Runbook·Rollback 증거,T-BKT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-19-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-01,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,GOV,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,정책·범위·실패상태 계약 확정,"REQ-CLI-001, VS-07 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 목표·위험성향·제한상품의 버전 관리'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-02,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DATA,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,데이터 시점·스키마·정합성 계약,"MIG-CLI-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-07-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-03,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DOMAIN,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ManageClientIPS/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-07-02,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-04,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,BE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vertical Slice API/Application/SQL 구현,CLI-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-07-03,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-05,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,ASYNC,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-07-04,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-06,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,FE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLI-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-07-05,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-07,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,TESTOPS,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,회귀·관제·Runbook·Rollback 증거,T-CLI-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-07-06,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-01,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,GOV,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,정책·범위·실패상태 계약 확정,"REQ-REC-001, VS-14 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-10,VS-12,VS-13",MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-02,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DATA,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,데이터 시점·스키마·정합성 계약,"MIG-REC-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-14-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-03,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DOMAIN,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/GenerateDailyRecommendations/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-14-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-04,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vertical Slice API/Application/SQL 구현,SIG-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-14-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-05,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,ASYNC,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Event/Job/Inbox·재처리 구현,"J08; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-14-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-06,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,FE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-14-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-07,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,TESTOPS,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,회귀·관제·Runbook·Rollback 증거,T-REC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-14-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-01,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,GOV,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,정책·범위·실패상태 계약 확정,"REQ-REV-001, VS-15 SLICE_SPEC, ADR/Decision Log",사용자 결과 'maker-checker 승인·보류·기각과 낙관적 동시성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-14,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-02,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DATA,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,데이터 시점·스키마·정합성 계약,"MIG-REV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-15-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-03,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DOMAIN,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ReviewRecommendation/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-15-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-04,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,BE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vertical Slice API/Application/SQL 구현,SIG-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-15-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-05,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,ASYNC,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-06,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,FE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-15-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-07,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,TESTOPS,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,회귀·관제·Runbook·Rollback 증거,T-REV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-15-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-013,S8,W17-18,Cross,Cross-cutting,Audit,TRACE,REQ-AUDIT-E2E,Cross,Cross,Cross,Cross,Cross,Evidence→Decision→Review→Publish→Outcome trace API 고도화,Evidence→Decision→Review→Publish→Outcome trace API,"publication/decision 기준 누락 링크 0, correction event 보존",Compliance/BE,Architect/QA,8,VS-18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-01,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,GOV,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,정책·범위·실패상태 계약 확정,"REQ-PUB-001, VS-16 SLICE_SPEC, ADR/Decision Log",사용자 결과 '승인·유효·데이터 정상 제안만 고객 공개'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-15,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-02,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DATA,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,데이터 시점·스키마·정합성 계약,"MIG-PUB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-16-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-03,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DOMAIN,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/PublishClientAdvice/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-16-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-04,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vertical Slice API/Application/SQL 구현,SIG-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-16-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-05,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,ASYNC,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Event/Job/Inbox·재처리 구현,"J-PUB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-16-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-06,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,FE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-ADV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-16-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-07,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,TESTOPS,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,회귀·관제·Runbook·Rollback 증거,T-PUB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-16-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-01,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,GOV,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,정책·범위·실패상태 계약 확정,"REQ-CLD-001, VS-17 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 수락·거절·보류와 attribution 연결'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-16,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-02,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DATA,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,데이터 시점·스키마·정합성 계약,"MIG-CLD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-17-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-03,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DOMAIN,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/RecordClientDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-17-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-04,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,BE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vertical Slice API/Application/SQL 구현,SIG-06; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-17-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-05,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,ASYNC,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-17-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-06,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,FE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-17-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-07,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,TESTOPS,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,회귀·관제·Runbook·Rollback 증거,T-CLD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-17-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-01,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,정책·범위·실패상태 계약 확정,"REQ-EVA-001, VS-18 SLICE_SPEC, ADR/Decision Log",사용자 결과 '1/5/20/63/126/252일 결과·매도·재진입 품질 평가'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-10,VS-11,VS-16,VS-17",G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-02,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,데이터 시점·스키마·정합성 계약,"MIG-EVA-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-18-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-03,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DOMAIN,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/EvaluateDecisionOutcome/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-18-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-04,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vertical Slice API/Application/SQL 구현,EVA-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-05,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ASYNC,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Event/Job/Inbox·재처리 구현,"J10/J11; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-18-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-06,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVA-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-18-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-07,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,TESTOPS,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,회귀·관제·Runbook·Rollback 증거,T-EVA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-18-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-01,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,GOV,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,정책·범위·실패상태 계약 확정,"REQ-RISK-001, VS-13 SLICE_SPEC, ADR/Decision Log",사용자 결과 'ES·집중·상관·자본바닥 위험 스냅샷'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-08",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-02,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DATA,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,데이터 시점·스키마·정합성 계약,"MIG-RISK-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-13-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-03,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DOMAIN,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/CalculatePortfolioRisk/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-13-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-04,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,BE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vertical Slice API/Application/SQL 구현,POR-02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-13-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-05,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,ASYNC,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Event/Job/Inbox·재처리 구현,"J07; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-13-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-06,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,FE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RISK-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-13-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-07,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,TESTOPS,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,회귀·관제·Runbook·Rollback 증거,T-RISK-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-13-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-01,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,GOV,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,정책·범위·실패상태 계약 확정,"REQ-REB-001, VS-21 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비용·세금·위험예산·제약을 만족하는 리밸런싱'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-08,VS-12,VS-13",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-02,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DATA,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,데이터 시점·스키마·정합성 계약,"MIG-REB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-21-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-03,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DOMAIN,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/BuildRebalanceProposal/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-21-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-04,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,BE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vertical Slice API/Application/SQL 구현,REB-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-21-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-05,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,ASYNC,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Event/Job/Inbox·재처리 구현,"J-REB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-21-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-06,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,FE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REB-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-21-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-07,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,TESTOPS,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,회귀·관제·Runbook·Rollback 증거,T-REB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-21-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-01,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,GOV,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,정책·범위·실패상태 계약 확정,"REQ-BUY-001, VS-12 SLICE_SPEC, ADR/Decision Log",사용자 결과 'PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-05,VS-06,VS-09",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-02,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DATA,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,데이터 시점·스키마·정합성 계약,"MIG-BUY-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-12-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-03,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DOMAIN,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,도메인 불변조건·상태전이 구현,"src/Modules/ValuationForecast/RankBuyCandidates/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-12-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-04,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,BE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vertical Slice API/Application/SQL 구현,BUY-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-12-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-05,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,ASYNC,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Event/Job/Inbox·재처리 구현,"J08B; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-12-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-06,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,FE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BUY-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-12-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-07,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,TESTOPS,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,회귀·관제·Runbook·Rollback 증거,T-BUY-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-12-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-01,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,GOV,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,정책·범위·실패상태 계약 확정,"REQ-RPL-001, VS-22 SLICE_SPEC, ADR/Decision Log",사용자 결과 '적합성·유동성·비용후 기회우위 대체상품 비교'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-12,VS-13",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-02,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DATA,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,데이터 시점·스키마·정합성 계약,"MIG-RPL-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-22-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-03,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DOMAIN,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/SuggestReplacementProducts/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-22-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-04,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,BE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vertical Slice API/Application/SQL 구현,RPL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-22-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-05,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,ASYNC,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Event/Job/Inbox·재처리 구현,"J-RPL; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-22-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-06,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,FE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-22-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-07,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,TESTOPS,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,회귀·관제·Runbook·Rollback 증거,T-RPL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-22-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-014,S11,W23-24,Cross,Cross-cutting,Model Risk,VALIDATION,REQ-MODEL-RISK,Cross,Cross,Cross,Cross,Cross,CSCV/PBO 고도화,CSCV/PBO·DSR·block bootstrap·시도 원장,"PBO≤20%, DSR≥95%, cost×2 utility 양수 또는 승격 차단",Quant/Risk,Architect/QA,15,AEG-X-012,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-015,S11,W23-24,Cross,Cross-cutting,Shadow,EVAL,REQ-SHADOW-001,Cross,Cross,Cross,Cross,Cross,252거래일 고도화,252거래일·복수 국면 일평가 scorecard,적중률 단독 아닌 calibration/ES/false-exit/reentry/운영무결성 판정,Quant/Ops,Architect/QA,14,VS-18,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-01,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,정책·범위·실패상태 계약 확정,"REQ-MOD-001, VS-20 SLICE_SPEC, ADR/Decision Log",사용자 결과 '모델 승격 증거·승인·롤백·챔피언/챌린저'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-18,VS-19",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-02,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DATA,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,데이터 시점·스키마·정합성 계약,"MIG-MOD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-20-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-03,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DOMAIN,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/PromoteModelVersion/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-20-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-04,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,BE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vertical Slice API/Application/SQL 구현,MOD-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-20-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-05,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ASYNC,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Event/Job/Inbox·재처리 구현,"J-MOD; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-20-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-06,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-MOD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-20-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-07,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,TESTOPS,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,회귀·관제·Runbook·Rollback 증거,T-MOD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-20-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-01,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,GOV,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,정책·범위·실패상태 계약 확정,"REQ-RPT-001, VS-24 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 리포트·SignalR·Telegram 운영 경보'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-16,VS-18",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-02,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DATA,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,데이터 시점·스키마·정합성 계약,"MIG-RPT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-24-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-03,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DOMAIN,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,도메인 불변조건·상태전이 구현,"src/Modules/ReportingNotifications/ReportAndNotify/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-24-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-04,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,BE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vertical Slice API/Application/SQL 구현,RPT-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-24-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-05,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,ASYNC,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Event/Job/Inbox·재처리 구현,"J11R; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-24-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-06,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,FE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-24-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-07,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,TESTOPS,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,회귀·관제·Runbook·Rollback 증거,T-RPT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-24-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-016,S12,W25-26,Cross,Cross-cutting,Broker,CAPABILITY,REQ-KIS-OFF,Cross,Cross,Cross,Cross,Cross,KIS 주문 제출 startup/CI/runtime 차단 고도화,KIS 주문 제출 startup/CI/runtime 차단,"외부 주문 호출 0, capability override 감사·kill-switch 통과",Security/Ops,Architect/QA,7,AEG-X-005,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-01,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,GOV,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,정책·범위·실패상태 계약 확정,"REQ-RECON-001, VS-23 SLICE_SPEC, ADR/Decision Log",사용자 결과 '브로커·내부 주문·체결·보유·현금 break와 승인 정정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-16",Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-02,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,데이터 시점·스키마·정합성 계약,"MIG-EXE-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-23-01,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-03,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DOMAIN,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,도메인 불변조건·상태전이 구현,"src/Modules/ExecutionReconciliation/ReconcilePositionsAndFills/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-23-02,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-04,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,BE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vertical Slice API/Application/SQL 구현,"EXE-01/02,REC-01/02; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-23-03,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-05,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,ASYNC,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Event/Job/Inbox·재처리 구현,"J12; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-23-04,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-06,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,FE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RECON-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-23-05,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-07,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,TESTOPS,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,회귀·관제·Runbook·Rollback 증거,T-RECON-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-23-06,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-017,S13,W27-28,Cross,Cross-cutting,DR,OPS,REQ-DR-001,Cross,Cross,Cross,Cross,Cross,RPO/RTO 고도화,RPO/RTO·backup/restore·region/host failure rehearsal,"승인 RPO/RTO 내 복구, 원장·outbox·projection 대사 100%",SRE/DBA,Architect/QA,12,AEG-X-006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-01,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,GOV,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,정책·범위·실패상태 계약 확정,"REQ-GOV-001, VS-25 SLICE_SPEC, ADR/Decision Log",사용자 결과 '입력→결정→승인→공개→실행→평가 추적과 단계별 차단'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-01,VS-16,VS-20,VS-23",G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-02,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DATA,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,데이터 시점·스키마·정합성 계약,"MIG-GOV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-25-01,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-03,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DOMAIN,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/AuditAndKillSwitch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-25-02,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-04,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,BE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vertical Slice API/Application/SQL 구현,GOV-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-25-03,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-05,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,ASYNC,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Event/Job/Inbox·재처리 구현,"J-GOV; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-25-04,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-06,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,FE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-GOV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-25-05,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-07,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TESTOPS,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,회귀·관제·Runbook·Rollback 증거,T-GOV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-25-06,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-018,S14,W29-30,Cross,Cross-cutting,Performance,NFR,REQ-NFR-001,Cross,Cross,Cross,Cross,Cross,API P95 고도화,API P95·batch SLA·portfolio 규모·backfill 부하시험,개장 전 추천 SLA와 고객 API SLO가 동시에 충족,SRE/QA,Architect/QA,10,AEG-X-017,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-019,S14,W29-30,Cross,Cross-cutting,Cutover,RELEASE,REQ-CUT-001,Cross,Cross,Cross,Cross,Cross,dry-run/backfill/recon/rollback/release evidence 고도화,dry-run/backfill/recon/rollback/release evidence,"미승인 공개 0, duplicate 0, rollback 리허설과 승인 서명",PM/Ops,Architect/QA,10,AEG-X-018,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-020,S15,W31-32,Cross,Cross-cutting,Hypercare,OPS,REQ-HYP-001,Cross,Cross,Cross,Cross,Cross,P1/P2 triage 고도화,P1/P2 triage·daily reconciliation·debt burn-down,초기 안정화 Exit 기준·Owner·잔여 부채 승인,Ops/PM,Architect/QA,8,AEG-X-019,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-DOC-022,Current-session source coverage and SHA register,Source Coverage Matrix/Source Index,6 current attachments preserved byte-for-byte and hashes match,PM/Architect,QA/Compliance,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG22-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,T-CI-022,Offline-safe package manager and lockfile decision,packageManager/LOCKFILE_REQUIRED/CI guard,No silent dependency resolution; frozen install blocks until approved lock exists,DevOps,FE Lead,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,ARCH,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-ARCH-022,Module/Vertical Slice template pack,"templates/dotnet,vue,sql,hangfire",New slice can be generated without Generic Repository or controller-service duplication,Architect,BE/FE Leads,6,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-004,S0,W1-2,Cross,Cross-cutting,API,BE,REQ-API-001,API-CONTEXT-01,Cross,Cross,Cross,T-API-022,Correlation/Idempotency/ProblemDetails shared contract,request execution standard,400/401/403/409/422 and trace/idempotency rules consistent,BE Lead,QA/SRE,6,AEG-X-004,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-005,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-REHEARSAL,Cross,MIG-REHEARSAL,Cross,Cross,T-DB-022,DbUp fresh/upgrade/re-run/failure rehearsal script,scripts/rehearse_migrations.sh,Approved PostgreSQL runner produces 4 scenario artifacts,DBA,BE/DevOps,8,AEG-X-004,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-OUTBOX-001,Cross,MIG-0013,JOB-OUTBOX-01,Cross,T-OUTBOX-022,Outbox lease/dead-letter/replay hardening,outbox dispatcher template/runbook,Crash-before/after publish yields no lost message and idempotent downstream,BE/SRE,QA,10,AEG-X-006,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-007,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-INBOX-001,Cross,MIG-0013,JOB-INBOX-01,Cross,T-INBOX-022,Inbox duplicate/result-hash contract,inbox consumer template,Same consumer/message performs side effect once and replay hash is stable,BE/SRE,QA,8,AEG-X-007,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-008,S0,W1-2,Cross,Cross-cutting,Batch,JOB,REQ-JOB-001,Cross,MIG-0000,JOB-RUN-STD,UI-OPS-JOB,T-JOB-022,JobRun/Watermark/heartbeat scope standard,ReliableJob template,Concurrent duplicate is held; retry preserves scope/version/input hash,BE/SRE,QA/Data,8,AEG-X-008,G1,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-001,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,Separate security weight and lot weight,SellDecisionInput/context/migration,Lot ratio changes only lot weight; target security weight is exact,Quant/BE,DBA/QA,10,AEG-VS-10-03,G2-A,SOURCE+INFERENCE,P0,PLANNED +AEG22-VS10-002,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,Persist ordered policy evaluation trace,policy_trace_json/API schema,Applied/blocked/not-applicable reasons reproduce decision priority,BE/Quant,FE/QA,8,AEG22-VS10-001,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-003,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,QA,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-GOLDEN-022,Golden/boundary/monotonic/property vectors,unit/golden vectors,"Core clamp, survival bypass, priority and future PIT rejection pass",QA/Quant,BE,8,AEG22-VS10-002,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS10-004,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SIG-UI,SIG-RESEARCH-01,Cross,Cross,UI-SIG-01,T-FE-SIG-022,FE runtime contract for weights and policy trace,Zod schema/page/tests,Malformed response and lot>security input fail closed,FE Lead,QA/BE,5,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS09-001,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,Cross,MIG-EVD-001,J06,UI-EVD-01,T-EVD-022,Evidence completeness grade and required-field manifest,Evidence contract delta,Missing total-return/delisting/cost source downgrades or quarantines recommendation,Data/Quant,BE/QA,8,AEG-VS-09-02,G2-A,SOURCE,P0,PLANNED +AEG22-VS03-001,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-PIT-022,Enforce published_at cutoff and timezone,PIT query contract/data test,Lookahead count remains zero across replay and timezone boundaries,Data Architect,DBA/QA,8,AEG-VS-03-03,G1-B,SOURCE,P0,PLANNED +AEG22-VS03-002,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-LIC,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,Source license/SLA/checksum fail-closed gate,Source catalog contract,Unapproved/checksum-drift source cannot reach canonical/PIT layer,Data Governance,BE/Compliance,7,AEG22-VS03-001,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS08-001,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DB,REQ-LEDGER-001,POR-01,MIG-POR-001,LedgerEntryApplied,UI-POR-01,T-LEDGER-022,Lot weight derivation and reconciliation invariant,ledger/read-model contract,Lot market values equal security/account totals within tolerance,DBA/BE,Quant/QA,10,AEG-VS-08-03,G1,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS11-001,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ALG,ALG-REENTRY-001,SIG-02,MIG-SIG-REENTRY,J09,UI-SIG-02,T-REENTRY-022,Reentry stage uniqueness and cycle reset proof,state transition/golden tests,Each stage once; new CycleId/Lot; old floor/cost/high not reused,Quant/BE,QA/DBA,9,AEG-VS-11-03,G2,SOURCE,P0,PLANNED +AEG22-VS14-001,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-ADV-001,ADV-01,MIG-ADV-001,J08,UI-ADV-01,T-ADV-RUN-022,Run isolation and partial-failure quarantine,run manifest/error partition,One portfolio failure cannot publish invalid advice to another,BE Lead,SRE/QA,10,AEG-VS-14-04,MVP-B,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS15-001,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,SEC,REQ-REV-001,ADV-02,MIG-ADV-002,RecommendationReviewed,UI-ADV-02,T-REV-022,Maker-checker optimistic concurrency proof,review version/ETag tests,Self-approval and stale update rejected with audit evidence,BE/Security,FE/QA,8,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS16-001,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,ADV-03,MIG-ADV-003,AdvicePublished,UI-CLI-01,T-PUB-022,Publish snapshot hash and staleness gate,publication immutable snapshot,Expired/revised/quarantined evidence blocks publish,BE/Compliance,QA/FE,9,AEG-VS-16-04,G3,SOURCE,P0,PLANNED +AEG22-VS18-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-DEF-022,Version false-exit/gain-capture definitions,metric definition registry,Historical scorecard reproducible by metric version/revision,Quant/Risk,Data/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS19-001,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QUANT,REQ-BT-001,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-ENV-022,Environment digest and full experiment registry,frozen manifest,Data/code/config/seed/environment/all variants hashed,Quant/Data,Risk/QA,10,AEG-VS-19-03,G2,SOURCE,P0,PLANNED +AEG22-VS19-002,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QA,REQ-BT-002,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-XLANG-022,Python-.NET decision golden cross-check,cross-language vectors,Policy/action/ratio/target/trace match within tolerance,QA/Quant,BE,8,AEG22-VS19-001,G2,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS23-001,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,OPS,REQ-REC-001,EXE-01,MIG-EXE-001,J12,UI-OPS-REC,T-REC-CORR-022,Approved correction/reversal workflow,break/correction/audit contract,No direct edit; before/after/hash/approver/replay reconcile to zero,Ops/DBA,Compliance/QA,10,AEG-VS-23-04,Pilot-A,SOURCE,P0,PLANNED +AEG22-VS25-001,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-GOV-001,GOV-01,MIG-GOV-001,KillSwitchChanged,UI-GOV-01,T-KILL-022,Automatic-order capability tripwire,capability tests/runbook,Any AutomaticOrder/KIS drift blocks start/release/action,Security/Ops,DevOps/QA,8,AEG-VS-25-04,ALL,SOURCE,P0,PLANNED +AEG22-X-009,S11,W23-24,Cross,Cross-cutting,Frontend,FE,REQ-FE-CONTRACT,Cross,Cross,Cross,Cross,T-FE-OPENAPI-022,OpenAPI artifact diff and generated contract plan,contract generation ADR,DTO drift visible in CI; Zod remains trust boundary,BE/FE,QA/Architect,7,AEG-X-012,G3,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-010,S11,W23-24,Cross,Cross-cutting,Observability,SRE,REQ-OBS-001,Cross,Cross,Cross,UI-OPS-01,T-OBS-022,Metric cardinality/PII/redaction budget,telemetry policy/tests,No high-cardinality account/security tags or PII in telemetry,SRE/Security,BE/QA,7,AEG-X-013,G5,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-011,S14,W29-30,Cross,Cross-cutting,Performance,SRE,REQ-CAP-001,Cross,Cross,Cross,Cross,T-CAP-022,Capacity assumptions and workload pack,capacity profile,Approved volumes map to API/batch/DB SLO evidence,PM/SRE,DBA/QA,10,AEG-X-025,G6-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-012,S15,W31-32,Cross,Cross-cutting,Release,OPS,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-022,Release evidence and rollback rehearsal,release manifest/checksum/runbook,Source→requirement→code→test→artifact hashes and rollback complete,PM/SRE,QA/Compliance,8,AEG22-X-011,G6,DESIGN_PROPOSAL,P0,PLANNED diff --git a/docs/v12_2/08_TECH_DEBT_REGISTER.csv b/docs/v12_2/08_TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..8f710c85 --- /dev/null +++ b/docs/v12_2/08_TECH_DEBT_REGISTER.csv @@ -0,0 +1,34 @@ +ID,Priority,Debt,Impact,Remediation,Gate,Owner,Status +TD-001,P0,도구체인 실빌드 미검증,C# 컴파일/패키지 호환 결함 가능,승인 .NET 10 runner에서 restore/build/test,G0,DevOps,OPEN +TD-002,P0,pnpm-lock.yaml 부재,FE 공급망·재현성 미확보,승인 네트워크에서 pnpm install 후 lock review/commit,G0,FE Lead,OPEN +TD-003,P0,PostgreSQL migration rehearsal 미실행,fresh/upgrade/re-run/복구 실패 가능,PostgreSQL 승인 버전 4시나리오 자동화,G0,DBA,OPEN +TD-004,P0,원시 연구 데이터 권리·checksum·환경 lock 미완전,제3자 clean-room 재현 불가,Source catalog/license/raw checksum/container digest 확보,G1,Data Governance,OPEN +TD-005,P0,KR 검증 종료 2021-04-16,최근 시장국면 검증 공백,2026 현재까지 PIT 총수익·상폐·기업행사 보충 후 frozen OOS,G4,Quant/Data,OPEN +TD-006,P0,실제 OIDC/JWT 공급자 미결정,외부 Pilot 접근통제 불가,"Auth ADR, key rotation, claims/RBAC E2E",G5,Security,OPEN +TD-007,P0,총수익·상폐수익·컨센서스 공급계약 미확정,생존편향·성과왜곡,공식/상용 source 계약·SLA·재배포 권리 승인,G1,Data Governance,OPEN +TD-008,P0,Fee/Tax/FX PIT 표 미확정,비용후 기대효용 왜곡,valid_from/to 계좌·venue·상품·side·band schedule,G1,DBA/Quant,OPEN +TD-009,P0,Outbox/Inbox crash/replay 실증 미완료,side effect 누락·중복,lease/dead-letter/replay chaos test,G3,BE/SRE,IN_PROGRESS +TD-010,P1,JobRun·Watermark 표준의 일부 구현만 존재,배치 재처리·감사 불완전,공통 JobRun scope/version/hash/heartbeat 정책 적용,G1,BE/SRE,IN_PROGRESS +TD-011,P1,Architecture test가 정적 문자열 규칙 중심,금지 의존 누락 가능,assembly/namespace/schema/API fitness function 확대,G0,Architect,IN_PROGRESS +TD-012,P1,OpenAPI→FE contract 자동생성 미도입,DTO drift·홀루시네이션 위험,OpenAPI artifact diff + generated client/schema gate,G3,BE/FE,OPEN +TD-013,P1,PII redaction·Telegram 보안 테스트 미완성,고객정보 노출 가능,classification/redaction test와 secret scan,G5,Security/SRE,OPEN +TD-014,P1,Model promotion workflow 미완성,무단 모델 활성화 위험,model card/maker-checker/effective_at/rollback 구현,G4,Risk/BE,OPEN +TD-015,P1,Read Model rebuild runner 미완성,stale projection 복구 불가,projection version/watermark/rebuild/diff 도구,G3,BE/Data,IN_PROGRESS +TD-016,P1,SLO/RPO/RTO 미승인,운영 Go 판단 불가,부하시험·백업복구·DR ADR 승인,G5,SRE/DBA,OPEN +TD-017,P2,공통 UI 컴포넌트 승격 기준 미운영,중복 또는 과도한 추상화,3회 반복+동일 의미/변경축 확인 후 승격,S10,FE Lead,OPEN +TD-018,P1,PBO/DSR 전체 탐색·시도 원장 미완성,과최적화 위험,전체 실험 registry+CSCV/PBO/DSR/block bootstrap,G4,Quant/Risk,OPEN +TD-019,P1,자산유형별 재진입 확인팩터 공급원 미완성,재진입 품질 저하,asset policy contract+PIT source+missing evidence downgrade,G2,Quant/Data,OPEN +TD-020,P0,자동주문/KIS 제출은 금지 상태,오활성화 사고 위험,Options ValidateOnStart+CI config scan+runtime kill switch 유지,ALL,Security/Ops,MITIGATED +TD-021,P1,정책 임계값이 문서·YAML·C#에 중복될 가능성,계약 drift,승인 config registry+schema+hash+generated constants,G2,Quant/BE,OPEN +TD-022,P1,DB immutable trigger와 correction event 운영절차 미실증,정정/감사 장애 가능,maker-checker correction replay와 audit trace E2E,G3,DBA/Compliance,OPEN +TD-023,P2,프런트 서버상태/Pinia 책임 경계의 팀 규율 미검증,중복 캐시·stale UI,lint/review checklist+query key registry,MVP-B,FE Lead,OPEN +TD-024,P1,Dependency vulnerability/license 자동검사 미구성,공급망 리스크,NuGet/npm SBOM·license allowlist·vulnerability gate,G5,Security/DevOps,OPEN +TD-025,P1,성능 규모 가정 미확정,배치 SLA/DB index 과·소설계,portfolio/security/client volume 결정·capacity test,G6-A,PM/SRE,OPEN +TD-026,P0,Security/Lot weight field ambiguity in v12.1,Partial-lot sell could miscalculate target security weight,MIG-0014 + domain/API/FE golden vectors,G2-A,Quant/BE,IN_PROGRESS +TD-027,P1,Only final sell policy reason was persisted,Blocked/not-applicable priority path was not auditable,Persist ordered policy_trace_json and internal trace contract,G2-A,BE/Quant,IN_PROGRESS +TD-028,P0,Current-session attachment set differs from prior package manifest,Source coverage claim can become stale,Rebuild source index from six current attachments and verify SHA,G0,PM/QA,MITIGATED +TD-029,P1,Request execution contract remains endpoint-local,Error/idempotency/correlation behavior can drift,Adopt reviewed request execution template after characterization tests,G0,BE Lead,OPEN +TD-030,P0,Outbox dispatcher runtime implementation is incomplete,Stored events may not publish or may duplicate,Lease/dead-letter/replay implementation and crash tests,G3,BE/SRE,OPEN +TD-031,P0,Inbox result-hash/replay proof is incomplete,Duplicate downstream side effects remain possible,Consumer-specific transaction and crash/replay tests,G3,BE/SRE,OPEN +TD-032,P1,Outcome metric definitions are not fully versioned,Historical false-exit/gain-capture can drift,Metric definition registry and scorecard version,G3,Quant/Risk,OPEN +TD-033,P1,Module and feature scaffolding depended on manual copying,Pattern drift and vibe-coding hallucination,Reviewed template pack plus architecture checks,G0,Architect,MITIGATED diff --git a/docs/v12_2/09_TRACEABILITY_MATRIX.csv b/docs/v12_2/09_TRACEABILITY_MATRIX.csv new file mode 100644 index 00000000..3bb6cc9c --- /dev/null +++ b/docs/v12_2/09_TRACEABILITY_MATRIX.csv @@ -0,0 +1,31 @@ +Requirement_ID,Slice_ID,Policy_or_Data_ID,API_ID,DB_ID,Job_Event_ID,UI_ID,Test_ID,WBS_Range,Release_Gate,Evidence_Status +REQ-PLAT-001,VS-00,DATA/DOMAIN-CONTRACT,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,AEG-VS-00-01..AEG-VS-00-07,G0,SOURCE+DESIGN_PROPOSAL +REQ-IAM-001,VS-01,DATA/DOMAIN-CONTRACT,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,AEG-VS-01-01..AEG-VS-01-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-SEC-001,VS-02,DATA/DOMAIN-CONTRACT,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,AEG-VS-02-01..AEG-VS-02-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-DAT-001,VS-03,DATA/DOMAIN-CONTRACT,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,AEG-VS-03-01..AEG-VS-03-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-CA-001,VS-04,DATA/DOMAIN-CONTRACT,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,AEG-VS-04-01..AEG-VS-04-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-FND-001,VS-05,DATA/DOMAIN-CONTRACT,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,AEG-VS-05-01..AEG-VS-05-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-COST-001,VS-06,DATA/DOMAIN-CONTRACT,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,AEG-VS-06-01..AEG-VS-06-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-CLI-001,VS-07,DATA/DOMAIN-CONTRACT,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,AEG-VS-07-01..AEG-VS-07-07,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-LED-001,VS-08,DATA/DOMAIN-CONTRACT,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,AEG-VS-08-01..AEG-VS-08-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-EVD-001,VS-09,DATA/DOMAIN-CONTRACT,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,AEG-VS-09-01..AEG-VS-09-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-SELL-001,VS-10,"ALG-SELL-001~005,ALG-SELL-PORT-001",SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,AEG-VS-10-01..AEG-VS-10-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-RE-001,VS-11,ALG-REENTRY-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,AEG-VS-11-01..AEG-VS-11-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-BUY-001,VS-12,ALG-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,AEG-VS-12-01..AEG-VS-12-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RISK-001,VS-13,ALG-PORT-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,AEG-VS-13-01..AEG-VS-13-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-REC-001,VS-14,DATA/DOMAIN-CONTRACT,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,AEG-VS-14-01..AEG-VS-14-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-REV-001,VS-15,DATA/DOMAIN-CONTRACT,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,AEG-VS-15-01..AEG-VS-15-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-PUB-001,VS-16,DATA/DOMAIN-CONTRACT,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,AEG-VS-16-01..AEG-VS-16-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-CLD-001,VS-17,DATA/DOMAIN-CONTRACT,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,AEG-VS-17-01..AEG-VS-17-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-EVA-001,VS-18,DATA/DOMAIN-CONTRACT,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,AEG-VS-18-01..AEG-VS-18-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-BKT-001,VS-19,DATA/DOMAIN-CONTRACT,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,AEG-VS-19-01..AEG-VS-19-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-MOD-001,VS-20,DATA/DOMAIN-CONTRACT,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,AEG-VS-20-01..AEG-VS-20-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-REB-001,VS-21,DATA/DOMAIN-CONTRACT,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,AEG-VS-21-01..AEG-VS-21-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-RPL-001,VS-22,DATA/DOMAIN-CONTRACT,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,AEG-VS-22-01..AEG-VS-22-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RECON-001,VS-23,DATA/DOMAIN-CONTRACT,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,AEG-VS-23-01..AEG-VS-23-07,Pilot-A,SOURCE+DESIGN_PROPOSAL +REQ-RPT-001,VS-24,DATA/DOMAIN-CONTRACT,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,AEG-VS-24-01..AEG-VS-24-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-GOV-001,VS-25,DATA/DOMAIN-CONTRACT,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,AEG-VS-25-01..AEG-VS-25-07,G5,SOURCE+DESIGN_PROPOSAL +REQ-SIG-WEIGHT-022,VS-10,ALG-SELL-002~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,AEG22-VS10-001~004,G2-A,SOURCE+INFERENCE +REQ-SIG-TRACE-022,VS-10,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL +REQ-DAT-LIC-022,VS-03,DQ-01~08,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,AEG22-VS03-002,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-REL-022,Cross,DOC-NR-03/06,Cross,Cross,Cross,Cross,T-REL-022,AEG22-X-012,G6,DESIGN_PROPOSAL diff --git a/docs/v12_2/10_DECISION_LOG.csv b/docs/v12_2/10_DECISION_LOG.csv new file mode 100644 index 00000000..c17c4d47 --- /dev/null +++ b/docs/v12_2/10_DECISION_LOG.csv @@ -0,0 +1,18 @@ +Decision_ID,Status,Decision_or_Question,Basis,Owner,Gate,Approved_or_Due +DEC-001,APPROVED,투자자문형→Shadow→Pilot; 자동주문 OFF,v10.0·v12.2,운영사/준법,ALL,2026-08-01 +DEC-002,APPROVED,알고리즘 상태 RESEARCH_CANDIDATE_NOT_PRODUCTION,v10.0·v12.2,투자위/리스크,G4,2026-08-01 +DEC-003,APPROVED,Modular Monolith+Vertical Slice; 조기 microservice 금지,v10.0,Architect,G0,2026-08-01 +DEC-004,APPROVED,PIT/revision/hash/lineage와 immutable Evidence 우선,v10.0·v12.2,Data/Quant,G1,2026-08-01 +DEC-005,APPROVED,매도 우선순위: impairment→survival→floor→concentration→opportunity→reentry,v12.2,투자위/Quant,G2,2026-08-01 +DEC-006,APPROVED,SellRatioOfLot와 portfolio weight/core floor 단위 분리,v12.0 Delta,Quant/Architect,G2-A,2026-08-02 +DEC-007,DECISION_REQUIRED,생산 OIDC/JWT 공급자와 claims mapping,자료 미지원,Security/PM,G5,미정 +DEC-008,DECISION_REQUIRED,PIT 총수익·상폐·컨센서스 공급원/라이선스,자료 미지원,Data Governance/Legal,G1,미정 +DEC-009,DECISION_REQUIRED,계좌·시장·venue별 Fee/Tax/FX schedule,자료 미지원,Ops/Tax/Quant,G1,미정 +DEC-010,DECISION_REQUIRED,SLO/RPO/RTO와 운영 용량 기준,자료 미지원,SRE/PM,G5,미정 +DEC-011,DECISION_REQUIRED,고객/계좌/상품 규모와 성능 테스트 볼륨,자료 미지원,PM/SRE,G6-A,미정 +DEC-012,DECISION_REQUIRED,한국 최신 PIT 데이터 확보 범위와 재검증 일정,자료 미지원,Quant/Data,G4,미정 +DEC-013,APPROVED,Lot-relative sell ratio uses CurrentLotPortfolioWeight; target security weight subtracts LotWeight×Ratio,v10/v12.1 unit-separation intent and data-consistency correction,Quant/Architect,G2-A,2026-08-02 +DEC-014,APPROVED,Ordered policy trace is immutable internal decision evidence; customer view receives curated explanation,Explainability and audit delta,Quant/Compliance/Architect,G2-A/G3,2026-08-02 +DEC-015,APPROVED,v12.2 preserves all six current-session attachments byte-for-byte and treats v12.1 as baseline,Non-regression source control,PM/Architect,G0,2026-08-02 +DEC-016,DECISION_REQUIRED,Select production OpenAPI client generation tool and ownership,Toolchain/network approval required,BE/FE/DevOps,G3,Before S11 +DEC-017,DECISION_REQUIRED,Approve .NET/PostgreSQL/pnpm runner image digests,Real build and migration evidence prerequisite,DevOps/Security,G0,Before coding start diff --git a/docs/v12_2/11_VIBE_CODING_HALLUCINATION_CONTROL.md b/docs/v12_2/11_VIBE_CODING_HALLUCINATION_CONTROL.md new file mode 100644 index 00000000..6bf4d143 --- /dev/null +++ b/docs/v12_2/11_VIBE_CODING_HALLUCINATION_CONTROL.md @@ -0,0 +1,19 @@ +# 바이브코딩·홀루시네이션 통제 + +| 분류 | 정의 | 처리 | +|---|---|---| +| SOURCE | 첨부·승인 계약에 직접 근거 | 출처 ID와 구현 연결 | +| ASSUMPTION | 착수 편의 가정 | Owner·만료일·영향·승인 | +| UNKNOWN | 자료로 판단 불가 | 코드 기본값 금지 | +| DECISION_REQUIRED | Gate 전 결정 필수 | 코딩/승격 차단 | + +AI 작업 패킷에는 Requirement/Slice/Policy/Data/API/DB/Job/UI/Test/금지패턴/검증명령을 포함한다. 새 library, table, threshold, index, pattern은 ADR/Decision 없이 도입하지 않는다. 실행하지 않은 build/test/migration/Shadow/PBO/DSR을 PASS로 기록하지 않는다. + +금지사항: + +- 실고객 계좌·token·secret·PII를 prompt/fixture/log에 포함 +- 최신 현재값으로 과거 PIT 결측을 보정 +- Generic Repository, 무근거 microservice, 전역 Pinia 캐시 +- 테스트를 맞추기 위한 임계값 임의 변경 +- 정적 문자열 검사를 실빌드로 표현 +- 미확정 OIDC/데이터 공급원을 가짜 구현으로 숨김 diff --git a/docs/v12_2/12_GATES_AND_20_DAY_RESTART.md b/docs/v12_2/12_GATES_AND_20_DAY_RESTART.md new file mode 100644 index 00000000..13e6177f --- /dev/null +++ b/docs/v12_2/12_GATES_AND_20_DAY_RESTART.md @@ -0,0 +1,17 @@ +# 20영업일 재착수와 Gate + +| 기간 | 핵심 작업 | 완료 증거 | +|---|---|---| +| D1~D3 | 기준선/첨부 SHA/Coverage/Decision/자동주문 OFF | Steering 승인, ID 중복 0 | +| D4~D6 | .NET/node/pnpm/lockfile/Gitea CI | 재현 bootstrap green | +| D7~D10 | DbUp 4시나리오, Auth, Outbox/Inbox, Architecture | G0 통과 | +| D11~D14 | SecurityMaster·MarketData·PIT·CA·DQ | replay hash 동일, lookahead 0 | +| D15~D17 | Evidence·Lot/종목 비중·6 Sell Policy·Reentry | G2-A Golden 통과 | +| D18~D20 | Production Decision Slice·FE·OTel E2E | 첫 End-to-End Slice Done | + +## Gate 원칙 + +- Gate 미충족 시 해당 Slice만 차단한다. +- 자동주문/KIS 제출은 모든 환경에서 OFF다. +- 미확정 사항은 DECISION_REQUIRED이며 기본값으로 추정하지 않는다. +- 문서/DDL/OpenAPI/Test 계약 diff가 불일치하면 Release를 차단한다. diff --git a/docs/v12_2/13_REFACTORING_BACKLOG.md b/docs/v12_2/13_REFACTORING_BACKLOG.md new file mode 100644 index 00000000..d98ec38d --- /dev/null +++ b/docs/v12_2/13_REFACTORING_BACKLOG.md @@ -0,0 +1,33 @@ +# 리팩터링·기술부채 상환 백로그 + +## 즉시 + +1. v12.1의 모호한 `CurrentPortfolioWeight` 의미를 migration 0014로 분리 +2. 정책 trace v2 이벤트와 API/FE runtime schema 동기화 +3. 정적 validation을 v12.2 Source/WBS/DDL/금지패턴 기준으로 갱신 +4. 실제 .NET 10 runner, pnpm lock, PostgreSQL rehearsal 확보 + +## G1 이전 + +- Source catalog/license/SLA/checksum +- 총수익·상폐·기업행사·Fee/Tax/FX PIT +- Ledger lot/security/account 합계 대사 + +## G2 이전 + +- C#↔Python Golden +- reentry stage/cycle uniqueness +- 모든 실험 registry, PBO/DSR hooks +- Policy/config/data/code hash 동결 + +## G3 이전 + +- Outbox/Inbox chaos +- maker-checker concurrency +- publish snapshot hash +- Projection rebuild/diff +- PII/Telegram redaction + +## 상환 규칙 + +기술부채는 Owner, 영향, Trigger, Gate, Exit Test가 없으면 등록으로 인정하지 않는다. P0는 해당 Gate 이전에 종료하거나 승인된 완화통제를 가져야 한다. diff --git a/docs/v12_2/14_PACKAGE_CONTENTS.md b/docs/v12_2/14_PACKAGE_CONTENTS.md new file mode 100644 index 00000000..d72b6e62 --- /dev/null +++ b/docs/v12_2/14_PACKAGE_CONTENTS.md @@ -0,0 +1,14 @@ +# 패키지 구성 + +- `attachments/current_session/`: 현재 세션 첨부 6개 원본 +- `attachments/SOURCE_INDEX.json`: 파일 크기·SHA-256·역할 +- `docs/v12_2/`: 전략, 알고리즘, 데이터, BE/FE, WBS, 추적성, 부채, Gate +- `src/`: .NET 10 Modular Monolith walking skeleton +- `frontend/`: Vue 3/Vite/TanStack Query/Pinia/Zod scaffold +- `db/migrations/0014_*`: Lot/종목 비중 및 정책 trace Delta +- `templates/`: .NET/Vue/SQL/Hangfire 구현 템플릿 +- `tests/`: 정책·재진입·Architecture 테스트 +- `research/`: 첨부 연구 코드/결과와 hardening tests +- `.gitea/workflows/`: CI 계약 +- `STATIC_VALIDATION_V12_2.txt`: 실제 수행한 정적 검증 결과 +- `PACKAGE_MANIFEST.json`, `SHA256SUMS.txt`: 무결성 diff --git a/docs/v12_2/15_VALIDATION_MATRIX.csv b/docs/v12_2/15_VALIDATION_MATRIX.csv new file mode 100644 index 00000000..f533ab99 --- /dev/null +++ b/docs/v12_2/15_VALIDATION_MATRIX.csv @@ -0,0 +1,9 @@ +Validation,Environment,Status,Required_Action,Gate +Static package validation,Executable in current environment,PASS 16 / WARN 4 / FAIL 0,Retain scripts/validate_v122.py in CI,G0 +Python research hardening tests,Executable in current environment,PASS 4 / FAIL 0,Cross-check identical vectors in C# after .NET build,G2 +DOCX render and visual QA,LibreOffice rendering available,PASS 12 pages / no clipping or overlap,Re-render after document edits,G0 +.NET restore/build/test,SDK unavailable,NOT RUN,Approved .NET 10 runner,G0 +pnpm frozen install/typecheck/test/build,pnpm and reviewed lockfile unavailable,NOT RUN,Approved network + reviewed lockfile,G0 +PostgreSQL DbUp fresh/upgrade/re-run/failure,PostgreSQL client/server unavailable,NOT RUN,Approved PostgreSQL runner,G0 +C#↔Python golden vectors,C# runtime unavailable,NOT RUN,Run after .NET build,G2 +252-session Shadow/PBO/DSR,Evidence period not accumulated,NOT MET,Shadow operation and frozen OOS,G4 diff --git a/docs/v12_2/K-ArtSell_Aegis_v12_2_∞áäδ₧╡∞áü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx b/docs/v12_2/K-ArtSell_Aegis_v12_2_∞áäδ₧╡∞áü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx new file mode 100644 index 00000000..cb10768e Binary files /dev/null and b/docs/v12_2/K-ArtSell_Aegis_v12_2_∞áäδ₧╡∞áü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx differ diff --git a/docs/v12_3/00_EXECUTIVE_DELIVERY_HARDENING.md b/docs/v12_3/00_EXECUTIVE_DELIVERY_HARDENING.md new file mode 100644 index 00000000..4d09a4b7 --- /dev/null +++ b/docs/v12_3/00_EXECUTIVE_DELIVERY_HARDENING.md @@ -0,0 +1,25 @@ +# K-ArtSell Aegis v12.3 실행·검증 하드닝 제안 + +상태: **IMPLEMENTATION_TEMPLATE / STATIC_VALIDATION_REQUIRED / BUILD_AND_DB_REHEARSAL_REQUIRED** +운영 경계: **투자자문형 우선 · 자동주문/KIS 제출 OFF · RESEARCH_CANDIDATE_NOT_PRODUCTION** + +## 경영진 결론 + +v12.3은 v10.0의 Baseline Preservation + Delta + Supersession + Traceability와 v12.2의 Lot/종목 비중 분리를 유지한다. 신규 Delta는 화면 확대가 아니라 **데이터 의미의 안전한 전환, 정책 계약 버전, CI·스캐폴딩의 재현성, 성과지표 정의 이력**에 집중한다. + +생산준비도는 `Source/License → PIT/Revision/DQ → Evidence/VersionSet → Sell/Reentry → Recommendation → Maker-Checker → Publish → Outcome → Reconciliation/DR`의 완결성으로 판정한다. + +## v12.3 핵심 교정 + +1. v12.2 이전 `current_portfolio_weight` backfill을 명시적 Lot 비중으로 간주하지 않는다. `weight_semantics_version=2`인 재구축 Context만 결정에 사용한다. +2. Opportunity edge가 양수라도 요청 매도비율이 0이면 10%로 강제 clamp하지 않고 `BLOCKED` 처리한다. +3. 정책 ID·우선순위·임계값을 `SellPolicyContract`와 machine-readable JSON registry로 동기화하고 변경 시 Model Change·Golden·OOS 증거를 요구한다. +4. Decision/API/Event/DB에 `decision_contract_version`과 `policy_trace_schema_version`을 포함한다. +5. false-exit·재진입 KPI의 분자·분모·평가창·집계를 버전 관리하며, 연구 CSV의 63일 지표와 연 2% 목표를 직접 동일시하지 않는다. +6. 스캐폴딩은 dry-run 기본·overwrite 금지·SCAFFOLD_ONLY로 고정하여 바이브코딩의 무단 추정을 차단한다. + +## 범위와 과유불급 + +- Modular Monolith·Vertical Slice·Outbox/Inbox·Read Model은 유지한다. 조기 Microservice, Generic Repository, 전면 Event Sourcing은 도입하지 않는다. +- 26개 Slice 범위를 확대하지 않고, 250개 WBS에 안전·검증 Delta를 연결한다. +- 자동주문과 KIS 제출은 여전히 OFF다. 252거래일 Shadow, 복수 국면 OOS, PBO/DSR, 준법·보안·DR Gate 전에는 투자일임형을 검토하지 않는다. diff --git a/docs/v12_3/01_SOURCE_COVERAGE_MATRIX.csv b/docs/v12_3/01_SOURCE_COVERAGE_MATRIX.csv new file mode 100644 index 00000000..1f0afbb1 --- /dev/null +++ b/docs/v12_3/01_SOURCE_COVERAGE_MATRIX.csv @@ -0,0 +1,8 @@ +Attachment,Bytes,SHA256,Role,Status,Duplicate_Group +K-ArtSell_12_2_complete_package(1).zip,2513047,1e9df605a91f227fb5ff4ea057e55f4319e62060fbaf8e64551756ee2931c5ea,연구 코드·CSV·정량 감사·구성안,RETAINED, +K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,402134,d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6,최상위 누적 실행기준서,RETAINED, +KArtSell_v11_implementation_acceleration(1).zip,56738,2bd5713b98104bf7ac45362105d9b3175d5ca818c06753e572aaf79a936658a2,초기 .NET/Vue walking skeleton,RETAINED, +KArtSell_Aegis_v11_1_hardening(1).zip,89397,01b3d3025dfb3a6cafcff4d751851240a6087c2329e5c1472ec31703f209ccbd,보안·불변성·기술부채 하드닝,RETAINED, +KArtSell_Aegis_v12_1_execution_ready_complete(1).zip,28233180,e5f9896474f32706d28df29cbdb5e3e74dbcc983e74c73f7067c377ee7aea260,v12.1 실행준비 전체 패키지,RETAINED, +K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx,64063,eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3,v12.1 실행준비 제안서,RETAINED, +KArtSell_Aegis_v12_2_strategic_complete(1).zip,34363575,482cf8caf9fd37c54cfc99797b450d7b7c334df7d5c982e6d391f9b5e9994d74,v12.2 전략적 통합 고도화 기준선,IMPROVED_BY_V12_3, diff --git a/docs/v12_3/02_SOLID_REFACTORING_AND_COMPONENTIZATION.md b/docs/v12_3/02_SOLID_REFACTORING_AND_COMPONENTIZATION.md new file mode 100644 index 00000000..0d02a650 --- /dev/null +++ b/docs/v12_3/02_SOLID_REFACTORING_AND_COMPONENTIZATION.md @@ -0,0 +1,21 @@ +# SOLID·리팩터링·컴포넌트화 기준 + +## 책임 경계 + +- Endpoint: 인증·권한·HTTP·ProblemDetails. +- Application: 유스케이스·멱등·트랜잭션·Outbox orchestration. +- Domain Policy: 순수 결정·우선순위·상태전이·경계값. +- Infrastructure: Dapper/Npgsql/외부 API/Hangfire. +- FE: Zod trust boundary, TanStack Query server state, Pinia session/UI preference. + +## 리팩터링 순서 + +Characterization/Golden → 작은 동작보존 변경 → 계약 diff → 통합/실패/replay → Release Evidence 순으로 수행한다. 정책·수식 변경은 구조 리팩터링과 같은 PR에 넣지 않는다. + +## 공통화 승격 기준 + +세 번 반복되었다는 이유만으로 추상화하지 않는다. 의미·변경축·오류정책이 동일하고, 소비자가 둘 이상이며, 삭제 비용보다 drift 방지 효과가 클 때만 공통 Building Block 또는 FE 컴포넌트로 승격한다. + +## 금지 + +God Service, 범용 Repository, 모든 클래스 Interface화, reflection plugin framework, 전역 Pinia 서버 캐시, blind retry, 현재값 overwrite, 수동 DB 정정은 금지한다. diff --git a/docs/v12_3/03_ALGORITHM_CONTRACT_AND_DECISIONS.md b/docs/v12_3/03_ALGORITHM_CONTRACT_AND_DECISIONS.md new file mode 100644 index 00000000..db87c90c --- /dev/null +++ b/docs/v12_3/03_ALGORITHM_CONTRACT_AND_DECISIONS.md @@ -0,0 +1,17 @@ +# 알고리즘 계약과 미결정 사항 + +고정 우선순위는 `HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION/LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION`이다. 상위 사유는 하위 점수로 상쇄하지 않는다. + +## 구현 보강 + +- Hard impairment: 승인 증거가 있을 때 보수적으로 Lot 100% 매도, 자동재진입 금지. 문서 범위 80~100%의 심각도 매핑은 DEC-014 승인 전 임의 변경하지 않는다. +- Survival: 자본바닥 위반 시 Strategic Core를 하회할 수 있다. cooldown 우회 여부는 첨부 근거가 부족하므로 DEC-013으로 차단한다. +- Gap: 1.5 ATR 이상 이탈 시 40%, 문서 범위 30~50% 내. +- Two-close: 2개 종가 연속 이탈 시 20%, 문서 범위 15~25% 내. +- Opportunity: 신뢰하단>0과 요청비율>0이 모두 필요하다. 요청비율 0은 10%로 보정하지 않는다. + +## 단위 불변조건 + +`TargetSecurityPortfolioWeightAfter = CurrentSecurityPortfolioWeight - CurrentLotPortfolioWeight × SellRatioOfLot` + +비율은 0~1, 금융 원장 값은 decimal, 모델 계산은 경계에서 명시적 rounding을 거친다. diff --git a/docs/v12_3/04_DATA_SEMANTICS_PIT_AND_HISTORY.md b/docs/v12_3/04_DATA_SEMANTICS_PIT_AND_HISTORY.md new file mode 100644 index 00000000..332a452b --- /dev/null +++ b/docs/v12_3/04_DATA_SEMANTICS_PIT_AND_HISTORY.md @@ -0,0 +1,17 @@ +# 데이터 의미·PIT·이력성 하드닝 + +## 계층 + +L0 Source/License → L1 Raw append-only → L2 Canonical PIT/revision → L3 DQ/Quarantine/Lineage → L4 Feature/Forecast/Risk/Evidence → L5 Ledger/Decision/Review/Publish/Outcome → L6 Read Model → L7 Backtest/Release Artifact. + +## v12.3 의미 버전 + +`weight_semantics_version=1`은 v12.2 이전 ambiguous backfill이다. `version=2`만 종목 전체 비중과 대상 Lot 비중이 독립 원천에서 명시된 것으로 인정한다. 기존 데이터를 같다고 추정하지 않고 Projection/Evidence를 재구축한다. + +## 정규화/역정규화 + +원장·Lot·Fill·현금·비용 schedule은 3NF, unique source key, reversal/correction을 사용한다. 역정규화는 Owner/ProjectionVersion/Watermark/Rebuild/Staleness가 있는 Read Model에만 허용한다. + +## 필수 필드 + +source_event_time, published_at, ingested_at, effective_from/to, revision_no, source_id, content_hash, dataset_id, tradable_session, quality_status를 보존한다. diff --git a/docs/v12_3/05_BE_FE_JOB_DELIVERY_STANDARD.md b/docs/v12_3/05_BE_FE_JOB_DELIVERY_STANDARD.md new file mode 100644 index 00000000..b40669b6 --- /dev/null +++ b/docs/v12_3/05_BE_FE_JOB_DELIVERY_STANDARD.md @@ -0,0 +1,13 @@ +# BE·FE·Hangfire 실행 표준 + +## Backend + +FastEndpoints는 HTTP 경계만 담당한다. 생산형 Command는 `PositionLotId`, `AsOf`, `IdempotencyKey` 같은 최소 식별자를 받고 Evidence/Model/Config/Data Version은 서버 PIT Context에서 조회한다. Decision과 Outbox는 동일 transaction에 저장한다. + +## Frontend + +응답은 Zod로 검증한 후 사용한다. 정책 trace는 우선순위, Applied/Blocked/NotApplicable, 요청/적용 비율, Strategic Core clamp를 표시한다. TanStack Query는 server state, Pinia는 session/role/UI preference, vue-router는 공유 가능한 필터·탭 상태를 소유한다. + +## Hangfire + +각 Job은 JobRunId, Scope, IdempotencyKey, Watermark, SourceVersion, DatasetId, Attempt, heartbeat를 가진다. retry는 오류분류와 backoff가 승인된 경우만 사용하며, 재처리는 overwrite가 아닌 revision을 생성한다. diff --git a/docs/v12_3/06_SLICE_CATALOGUE.csv b/docs/v12_3/06_SLICE_CATALOGUE.csv new file mode 100644 index 00000000..85608f97 --- /dev/null +++ b/docs/v12_3/06_SLICE_CATALOGUE.csv @@ -0,0 +1,27 @@ +Slice_ID,Slice,Module,Sprint,Weeks,Gate,Requirement_ID,Endpoint_ID,DB_ID,Job_ID,UI_ID,Test_ID,User_Result,Dependency,Status,V12_2_Delta +VS-00,PlatformBootstrap,Host/BuildingBlocks,S0,W1-2,G0,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,빌드·마이그레이션·관제 가능한 단일 배포 골격,-,PLANNED,"v12.3: deterministic scaffolder, contract registry, CI validator/current attachment coverage" +VS-01,ManageIdentityAndRoles,IdentityAccess,S1,W3-4,G1-A,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,MFA·RBAC·업무분장과 승인 경계,VS-00,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-02,SynchronizeSecurityMaster,SecurityMaster,S1,W3-4,G1-A,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,상장·상폐·상품구조·거래가능성의 PIT 기준,VS-00,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-03,IngestMarketDataPIT,MarketData,S2,W5-6,G1-B,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,원시·조정 OHLCV·FX·금리의 revision 적재,VS-02,PLANNED,"PIT cutoff enforcement, source/license checksum, replay contract" +VS-04,ApplyCorporateActions,SecurityMaster,S2,W5-6,G1-B,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,분할·배당·증자·합병·상폐의 가격·수량·원가 일관성,"VS-02,VS-03",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-05,IngestFundamentalsPIT,FundamentalsPIT,S3,W7-8,G1,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,공시·재무·컨센서스 공개시각과 정정 이력,VS-02,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,S3,W7-8,G1,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,계좌·시장·상품별 Fee/Tax/FX valid-time 계약,VS-02,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-07,ManageClientIPS,ClientAdvisory,S6,W13-14,MVP-A,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,고객 목표·위험성향·제한상품의 버전 관리,VS-01,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-08,MaintainPortfolioLedger,PortfolioRisk,S3,W7-8,G1,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,현금·체결·Lot·Cycle 불변 원장과 대사 기준,"VS-02,VS-06",PLANNED,Security/Lot weight separation and immutable ledger semantics +VS-09,BuildEvidenceSnapshot,ResearchFactors,S4,W9-10,G2-A,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Dataset/Model/Config/Code SHA가 동결된 Evidence,"VS-03,VS-04,VS-05,VS-06",PLANNED,Evidence completeness grade and VersionSet hash +VS-10,GenerateSellDecision,SignalEngine,S4,W9-10,G2-A,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,우선순위가 보존된 HOLD/부분매도/전량매도 결정,"VS-08,VS-09,VS-13",PLANNED,"v12.3: centralized policy contract, zero-ratio opportunity fail-closed, semantics v2 context gate" +VS-11,ManageReentryWatch,SignalEngine,S5,W11-12,G2,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,비가치훼손 매도의 재진입 계약·단계·만료,VS-10,PLANNED,Reentry stage uniqueness and cycle/lot reset evidence +VS-12,RankBuyCandidates,ValuationForecast,S10,W21-22,Portfolio Gate,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위,"VS-03,VS-05,VS-06,VS-09",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-13,CalculatePortfolioRisk,PortfolioRisk,S9,W19-20,Portfolio-A,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,ES·집중·상관·자본바닥 위험 스냅샷,"VS-03,VS-08",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-14,GenerateDailyRecommendations,ClientAdvisory,S7,W15-16,MVP-B,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지,"VS-07,VS-10,VS-12,VS-13",PLANNED,Run-level idempotency and partial-failure quarantine +VS-15,ReviewRecommendation,ClientAdvisory,S7,W15-16,MVP-B,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,maker-checker 승인·보류·기각과 낙관적 동시성,VS-14,PLANNED,maker-checker concurrency and review evidence +VS-16,PublishClientAdvice,ClientAdvisory,S8,W17-18,G3,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,승인·유효·데이터 정상 제안만 고객 공개,VS-15,PLANNED,publish snapshot hash and staleness block +VS-17,RecordClientDecision,ClientAdvisory,S8,W17-18,G3,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,고객 수락·거절·보류와 attribution 연결,VS-16,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,S8,W17-18,G3,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,1/5/20/63/126/252일 결과·매도·재진입 품질 평가,"VS-10,VS-11,VS-16,VS-17",PLANNED,v12.3: versioned outcome metric registry; Quant/Risk approval remains required +VS-19,RunFrozenBacktest,BacktestingEvaluation,S5,W11-12,G2,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현,"VS-03,VS-04,VS-05,VS-06,VS-09",PLANNED,frozen manifest/environment lock and cross-language golden +VS-20,PromoteModelVersion,GovernanceAudit,S11,W23-24,G4-A,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,모델 승격 증거·승인·롤백·챔피언/챌린저,"VS-18,VS-19",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-21,BuildRebalanceProposal,PortfolioRisk,S9,W19-20,Portfolio-A,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,비용·세금·위험예산·제약을 만족하는 리밸런싱,"VS-07,VS-08,VS-12,VS-13",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-22,SuggestReplacementProducts,PortfolioRisk,S10,W21-22,Portfolio Gate,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,적합성·유동성·비용후 기회우위 대체상품 비교,"VS-07,VS-12,VS-13",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,S12,W25-26,Pilot-A,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,브로커·내부 주문·체결·보유·현금 break와 승인 정정,"VS-08,VS-16",PLANNED,reconciliation break workflow and approved correction +VS-24,ReportAndNotify,ReportingNotifications,S11,W23-24,G4-A,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,고객 리포트·SignalR·Telegram 운영 경보,"VS-16,VS-18",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-25,AuditAndKillSwitch,GovernanceAudit,S13,W27-28,G5,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,입력→결정→승인→공개→실행→평가 추적과 단계별 차단,"VS-01,VS-16,VS-20,VS-23",PLANNED,"capability guard, audit correction, kill-switch rehearsal" diff --git a/docs/v12_3/07_DETAILED_WBS_MASTER.csv b/docs/v12_3/07_DETAILED_WBS_MASTER.csv new file mode 100644 index 00000000..93c36c27 --- /dev/null +++ b/docs/v12_3/07_DETAILED_WBS_MASTER.csv @@ -0,0 +1,251 @@ +WBS_ID,Sprint,Weeks,Slice_ID,Slice,Module,Workstream,Requirement_ID,API_ID,DB_Migration_ID,Job_Event_ID,UI_ID,Test_ID,Task,Artifact,Acceptance_Evidence,Primary_Owner,Secondary,PD,Dependency,Gate,Evidence_Class,Risk,Status +AEG-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,Cross,Version Coverage Matrix 고도화,Version Coverage Matrix·Supersession Registry,모든 첨부와 v10/v12/v12.1의 Retained/Improved/Superseded 상태 100%,PM/Architect,Architect/QA,5,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,Cross,global.json 고도화,global.json·Directory.Packages·node/packageManager·lock 정책,승인 runner에서 dotnet restore/build/test 및 pnpm frozen build 재현,DevOps,Architect/QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,Cross,모듈/namespace/schema/API 금지 의존 Architecture tests 고도화,모듈/namespace/schema/API 금지 의존 Architecture tests,"Domain 기술의존 0, 모듈 직접 DB 접근 0, ID 중복 0",Architect/QA,Architect/QA,7,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-004,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/re-run/failure 복구 rehearsal 고도화,DbUp fresh/upgrade/re-run/failure 복구 rehearsal,PostgreSQL 승인 버전에서 4 시나리오와 checksum 변경 차단 통과,DBA/BE,Architect/QA,8,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-005,S0,W1-2,Cross,Cross-cutting,Security,SEC,REQ-SEC-BASE,Cross,Cross,Cross,Cross,Cross,"OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed 고도화","OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed","비개발 무인증 접근 0, secret/log/prompt 노출 0",Security/BE,Architect/QA,7,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,ASYNC,REQ-ASYNC-001,Cross,Cross,Cross,Cross,Cross,Outbox publisher 고도화,Outbox publisher·Inbox lease·dead-letter·replay,"duplicate 0, crash-before/after-publish 시나리오와 replay hash 통과",BE/SRE,Architect/QA,10,AEG-X-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-007,S0,W1-2,Cross,Cross-cutting,Observability,OPS,REQ-OBS-001,Cross,Cross,Cross,Cross,Cross,Serilog/OTel correlation 고도화,Serilog/OTel correlation·metric naming·Telegram redaction,"trace→job→decision→outbox 연결, PII redaction test 통과",SRE/Security,Architect/QA,7,AEG-X-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-008,S0,W1-2,Cross,Cross-cutting,API Contract,CONTRACT,REQ-API-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact 고도화,OpenAPI artifact·ProblemDetails taxonomy·FE contract generation,OpenAPI diff와 breaking change approval 없이는 Release 차단,BE/FE Architect,Architect/QA,8,AEG-X-003,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-01,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,GOV,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,정책·범위·실패상태 계약 확정,"REQ-PLAT-001, VS-00 SLICE_SPEC, ADR/Decision Log",사용자 결과 '빌드·마이그레이션·관제 가능한 단일 배포 골격'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-02,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DATA,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,데이터 시점·스키마·정합성 계약,"MIG-0000/0013, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-00-01,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-03,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DOMAIN,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,도메인 불변조건·상태전이 구현,"src/Modules/Host/BuildingBlocks/PlatformBootstrap/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-00-02,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-04,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,BE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vertical Slice API/Application/SQL 구현,HEALTH-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-00-03,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-05,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,ASYNC,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-00-04,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-06,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,FE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vue feature·Zod·Query·컴포넌트 구현,UI-PLAT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-00-05,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-07,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,TESTOPS,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,회귀·관제·Runbook·Rollback 증거,T-ARCH-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-00-06,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-009,S1,W3-4,Cross,Cross-cutting,Data Governance,DATA,REQ-DATA-SOURCE,Cross,Cross,Cross,Cross,Cross,Source catalog/license/SLA/timezone/unit/checksum 고도화,Source catalog/license/SLA/timezone/unit/checksum,승인 없는 source가 ingestion 또는 추천으로 진입하지 않음,Data Governance,Architect/QA,8,AEG-X-001,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-01,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,GOV,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,정책·범위·실패상태 계약 확정,"REQ-IAM-001, VS-01 SLICE_SPEC, ADR/Decision Log",사용자 결과 'MFA·RBAC·업무분장과 승인 경계'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-02,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DATA,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,데이터 시점·스키마·정합성 계약,"MIG-IAM-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-01-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-03,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DOMAIN,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,도메인 불변조건·상태전이 구현,"src/Modules/IdentityAccess/ManageIdentityAndRoles/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-01-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-04,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,BE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vertical Slice API/Application/SQL 구현,IAM-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-01-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-05,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,ASYNC,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-01-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-06,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,FE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vue feature·Zod·Query·컴포넌트 구현,UI-IAM-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-01-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-07,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,TESTOPS,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,회귀·관제·Runbook·Rollback 증거,T-IAM-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-01-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-01,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,GOV,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,정책·범위·실패상태 계약 확정,"REQ-SEC-001, VS-02 SLICE_SPEC, ADR/Decision Log",사용자 결과 '상장·상폐·상품구조·거래가능성의 PIT 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-02,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DATA,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,데이터 시점·스키마·정합성 계약,"MIG-SEC-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-02-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-03,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DOMAIN,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/SynchronizeSecurityMaster/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-02-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-04,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,BE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vertical Slice API/Application/SQL 구현,"SEC-01/02,DAT-01; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-02-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-05,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,ASYNC,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Event/Job/Inbox·재처리 구현,"J01; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-02-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-06,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,FE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SEC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-02-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-07,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,TESTOPS,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,회귀·관제·Runbook·Rollback 증거,T-SEC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-02-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-010,S2,W5-6,Cross,Cross-cutting,Read Model,PROJECTION,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,projection owner/version/watermark/rebuild/staleness 고도화,projection owner/version/watermark/rebuild/staleness,"write model 직접 UI join 0, rebuild 결과 hash 동일",BE/Data,Architect/QA,8,AEG-X-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-01,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,GOV,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,정책·범위·실패상태 계약 확정,"REQ-DAT-001, VS-03 SLICE_SPEC, ADR/Decision Log",사용자 결과 '원시·조정 OHLCV·FX·금리의 revision 적재'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-02,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,데이터 시점·스키마·정합성 계약,"MIG-MD-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-03-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-03,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DOMAIN,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,도메인 불변조건·상태전이 구현,"src/Modules/MarketData/IngestMarketDataPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-03-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-04,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,BE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vertical Slice API/Application/SQL 구현,DAT-02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-03-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-05,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,ASYNC,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Event/Job/Inbox·재처리 구현,"J02; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-03-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-06,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,FE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-03-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-07,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,TESTOPS,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,회귀·관제·Runbook·Rollback 증거,T-DQ-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-03-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-01,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,GOV,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,정책·범위·실패상태 계약 확정,"REQ-CA-001, VS-04 SLICE_SPEC, ADR/Decision Log",사용자 결과 '분할·배당·증자·합병·상폐의 가격·수량·원가 일관성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-03",G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-02,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DATA,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,데이터 시점·스키마·정합성 계약,"MIG-CA-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-04-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-03,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DOMAIN,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/ApplyCorporateActions/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-04-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-04,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,BE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vertical Slice API/Application/SQL 구현,DAT-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-04-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-05,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,ASYNC,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Event/Job/Inbox·재처리 구현,"J03; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-04-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-06,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,FE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-02; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-04-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-07,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,TESTOPS,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,회귀·관제·Runbook·Rollback 증거,T-CA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-04-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-01,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,GOV,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,정책·범위·실패상태 계약 확정,"REQ-FND-001, VS-05 SLICE_SPEC, ADR/Decision Log",사용자 결과 '공시·재무·컨센서스 공개시각과 정정 이력'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-02,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DATA,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,데이터 시점·스키마·정합성 계약,"MIG-FND-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-05-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-03,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DOMAIN,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,도메인 불변조건·상태전이 구현,"src/Modules/FundamentalsPIT/IngestFundamentalsPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-05-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-04,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,BE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vertical Slice API/Application/SQL 구현,DAT-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-05-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-05,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,ASYNC,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Event/Job/Inbox·재처리 구현,"J04; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-05-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-06,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,FE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vue feature·Zod·Query·컴포넌트 구현,UI-FND-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-05-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-07,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,TESTOPS,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,회귀·관제·Runbook·Rollback 증거,T-FND-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-05-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-01,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,GOV,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,정책·범위·실패상태 계약 확정,"REQ-COST-001, VS-06 SLICE_SPEC, ADR/Decision Log",사용자 결과 '계좌·시장·상품별 Fee/Tax/FX valid-time 계약'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-02,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DATA,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,데이터 시점·스키마·정합성 계약,"MIG-COST-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-06-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-03,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DOMAIN,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainFeeTaxFxSchedule/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-06-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-04,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,BE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vertical Slice API/Application/SQL 구현,COST-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-06-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-05,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,ASYNC,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Event/Job/Inbox·재처리 구현,"J04C; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-06-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-06,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,FE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vue feature·Zod·Query·컴포넌트 구현,UI-COST-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-06-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-07,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,TESTOPS,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,회귀·관제·Runbook·Rollback 증거,T-COST-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-06-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-01,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,GOV,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,정책·범위·실패상태 계약 확정,"REQ-LED-001, VS-08 SLICE_SPEC, ADR/Decision Log",사용자 결과 '현금·체결·Lot·Cycle 불변 원장과 대사 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-06",G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-02,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DATA,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,데이터 시점·스키마·정합성 계약,"MIG-LED-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-08-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-03,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DOMAIN,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainPortfolioLedger/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-08-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-04,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,BE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vertical Slice API/Application/SQL 구현,POR-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-08-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-05,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,ASYNC,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Event/Job/Inbox·재처리 구현,"J12L; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-08-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-06,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,FE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vue feature·Zod·Query·컴포넌트 구현,UI-POR-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-08-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-07,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,TESTOPS,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,회귀·관제·Runbook·Rollback 증거,T-LED-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-08-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-011,S4,W9-10,Cross,Cross-cutting,Algorithm,GOLDEN,REQ-ALG-GOLDEN,Cross,Cross,Cross,Cross,Cross,Python↔C# Golden vector 고도화,Python↔C# Golden vector·epsilon·rounding 계약,정책 ID별 경계·우선순위·cost×2 결과 허용오차 내 동일,Quant/QA,Architect/QA,10,VS-09,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-01,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,GOV,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,정책·범위·실패상태 계약 확정,"REQ-EVD-001, VS-09 SLICE_SPEC, ADR/Decision Log",사용자 결과 'Dataset/Model/Config/Code SHA가 동결된 Evidence'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-02,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,데이터 시점·스키마·정합성 계약,"MIG-EVD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-09-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-03,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DOMAIN,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,도메인 불변조건·상태전이 구현,"src/Modules/ResearchFactors/BuildEvidenceSnapshot/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-09-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-04,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,BE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vertical Slice API/Application/SQL 구현,EVD-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-09-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-05,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,ASYNC,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Event/Job/Inbox·재처리 구현,"J06; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-09-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-06,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,FE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-09-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-07,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,TESTOPS,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,회귀·관제·Runbook·Rollback 증거,T-EVD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-09-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-01,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,GOV,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,정책·범위·실패상태 계약 확정,"REQ-SELL-001, VS-10 SLICE_SPEC, ADR/Decision Log",사용자 결과 '우선순위가 보존된 HOLD/부분매도/전량매도 결정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-09,VS-13",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-02,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DATA,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,데이터 시점·스키마·정합성 계약,"MIG-SIG-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-10-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-03,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DOMAIN,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/GenerateSellDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-10-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-04,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,BE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vertical Slice API/Application/SQL 구현,SIG-SELL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-10-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-05,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ASYNC,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Event/Job/Inbox·재처리 구현,"J08S; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-10-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-06,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SELL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-10-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-07,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,TESTOPS,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,회귀·관제·Runbook·Rollback 증거,T-SELL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-10-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-012,S5,W11-12,Cross,Cross-cutting,Research,REPRO,REQ-REPRO-001,Cross,Cross,Cross,Cross,Cross,dataset/code/config/environment manifest와 artifact hash 고도화,dataset/code/config/environment manifest와 artifact hash,"동일 manifest·seed 결과 재현, 실패 artifact 보존",Quant/Data,Architect/QA,12,AEG-X-009,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-01,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,GOV,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,정책·범위·실패상태 계약 확정,"REQ-RE-001, VS-11 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비가치훼손 매도의 재진입 계약·단계·만료'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-10,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-02,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DATA,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,데이터 시점·스키마·정합성 계약,"MIG-RE-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-11-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-03,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DOMAIN,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/ManageReentryWatch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-11-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-04,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,BE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vertical Slice API/Application/SQL 구현,RE-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-11-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-05,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ASYNC,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Event/Job/Inbox·재처리 구현,"J09; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-11-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-06,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,FE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RE-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-11-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-07,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,TESTOPS,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,회귀·관제·Runbook·Rollback 증거,T-RE-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-11-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-01,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,GOV,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,정책·범위·실패상태 계약 확정,"REQ-BKT-001, VS-19 SLICE_SPEC, ADR/Decision Log",사용자 결과 '동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06,VS-09",G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-02,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DATA,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,데이터 시점·스키마·정합성 계약,"MIG-BKT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-19-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-03,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DOMAIN,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/RunFrozenBacktest/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-19-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-04,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,BE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vertical Slice API/Application/SQL 구현,BKT-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-19-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-05,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,ASYNC,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Event/Job/Inbox·재처리 구현,"J-BKT; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-19-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-06,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,FE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BKT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-19-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-07,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,TESTOPS,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,회귀·관제·Runbook·Rollback 증거,T-BKT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-19-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-01,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,GOV,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,정책·범위·실패상태 계약 확정,"REQ-CLI-001, VS-07 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 목표·위험성향·제한상품의 버전 관리'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-02,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DATA,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,데이터 시점·스키마·정합성 계약,"MIG-CLI-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-07-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-03,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DOMAIN,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ManageClientIPS/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-07-02,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-04,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,BE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vertical Slice API/Application/SQL 구현,CLI-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-07-03,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-05,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,ASYNC,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-07-04,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-06,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,FE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLI-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-07-05,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-07,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,TESTOPS,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,회귀·관제·Runbook·Rollback 증거,T-CLI-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-07-06,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-01,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,GOV,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,정책·범위·실패상태 계약 확정,"REQ-REC-001, VS-14 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-10,VS-12,VS-13",MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-02,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DATA,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,데이터 시점·스키마·정합성 계약,"MIG-REC-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-14-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-03,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DOMAIN,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/GenerateDailyRecommendations/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-14-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-04,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vertical Slice API/Application/SQL 구현,SIG-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-14-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-05,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,ASYNC,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Event/Job/Inbox·재처리 구현,"J08; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-14-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-06,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,FE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-14-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-07,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,TESTOPS,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,회귀·관제·Runbook·Rollback 증거,T-REC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-14-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-01,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,GOV,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,정책·범위·실패상태 계약 확정,"REQ-REV-001, VS-15 SLICE_SPEC, ADR/Decision Log",사용자 결과 'maker-checker 승인·보류·기각과 낙관적 동시성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-14,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-02,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DATA,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,데이터 시점·스키마·정합성 계약,"MIG-REV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-15-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-03,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DOMAIN,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ReviewRecommendation/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-15-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-04,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,BE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vertical Slice API/Application/SQL 구현,SIG-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-15-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-05,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,ASYNC,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-06,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,FE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-15-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-07,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,TESTOPS,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,회귀·관제·Runbook·Rollback 증거,T-REV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-15-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-013,S8,W17-18,Cross,Cross-cutting,Audit,TRACE,REQ-AUDIT-E2E,Cross,Cross,Cross,Cross,Cross,Evidence→Decision→Review→Publish→Outcome trace API 고도화,Evidence→Decision→Review→Publish→Outcome trace API,"publication/decision 기준 누락 링크 0, correction event 보존",Compliance/BE,Architect/QA,8,VS-18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-01,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,GOV,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,정책·범위·실패상태 계약 확정,"REQ-PUB-001, VS-16 SLICE_SPEC, ADR/Decision Log",사용자 결과 '승인·유효·데이터 정상 제안만 고객 공개'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-15,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-02,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DATA,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,데이터 시점·스키마·정합성 계약,"MIG-PUB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-16-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-03,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DOMAIN,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/PublishClientAdvice/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-16-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-04,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vertical Slice API/Application/SQL 구현,SIG-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-16-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-05,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,ASYNC,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Event/Job/Inbox·재처리 구현,"J-PUB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-16-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-06,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,FE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-ADV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-16-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-07,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,TESTOPS,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,회귀·관제·Runbook·Rollback 증거,T-PUB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-16-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-01,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,GOV,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,정책·범위·실패상태 계약 확정,"REQ-CLD-001, VS-17 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 수락·거절·보류와 attribution 연결'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-16,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-02,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DATA,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,데이터 시점·스키마·정합성 계약,"MIG-CLD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-17-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-03,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DOMAIN,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/RecordClientDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-17-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-04,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,BE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vertical Slice API/Application/SQL 구현,SIG-06; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-17-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-05,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,ASYNC,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-17-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-06,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,FE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-17-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-07,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,TESTOPS,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,회귀·관제·Runbook·Rollback 증거,T-CLD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-17-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-01,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,정책·범위·실패상태 계약 확정,"REQ-EVA-001, VS-18 SLICE_SPEC, ADR/Decision Log",사용자 결과 '1/5/20/63/126/252일 결과·매도·재진입 품질 평가'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-10,VS-11,VS-16,VS-17",G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-02,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,데이터 시점·스키마·정합성 계약,"MIG-EVA-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-18-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-03,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DOMAIN,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/EvaluateDecisionOutcome/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-18-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-04,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vertical Slice API/Application/SQL 구현,EVA-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-05,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ASYNC,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Event/Job/Inbox·재처리 구현,"J10/J11; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-18-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-06,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVA-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-18-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-07,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,TESTOPS,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,회귀·관제·Runbook·Rollback 증거,T-EVA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-18-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-01,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,GOV,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,정책·범위·실패상태 계약 확정,"REQ-RISK-001, VS-13 SLICE_SPEC, ADR/Decision Log",사용자 결과 'ES·집중·상관·자본바닥 위험 스냅샷'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-08",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-02,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DATA,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,데이터 시점·스키마·정합성 계약,"MIG-RISK-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-13-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-03,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DOMAIN,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/CalculatePortfolioRisk/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-13-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-04,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,BE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vertical Slice API/Application/SQL 구현,POR-02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-13-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-05,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,ASYNC,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Event/Job/Inbox·재처리 구현,"J07; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-13-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-06,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,FE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RISK-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-13-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-07,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,TESTOPS,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,회귀·관제·Runbook·Rollback 증거,T-RISK-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-13-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-01,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,GOV,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,정책·범위·실패상태 계약 확정,"REQ-REB-001, VS-21 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비용·세금·위험예산·제약을 만족하는 리밸런싱'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-08,VS-12,VS-13",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-02,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DATA,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,데이터 시점·스키마·정합성 계약,"MIG-REB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-21-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-03,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DOMAIN,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/BuildRebalanceProposal/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-21-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-04,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,BE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vertical Slice API/Application/SQL 구현,REB-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-21-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-05,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,ASYNC,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Event/Job/Inbox·재처리 구현,"J-REB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-21-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-06,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,FE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REB-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-21-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-07,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,TESTOPS,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,회귀·관제·Runbook·Rollback 증거,T-REB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-21-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-01,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,GOV,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,정책·범위·실패상태 계약 확정,"REQ-BUY-001, VS-12 SLICE_SPEC, ADR/Decision Log",사용자 결과 'PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-05,VS-06,VS-09",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-02,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DATA,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,데이터 시점·스키마·정합성 계약,"MIG-BUY-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-12-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-03,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DOMAIN,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,도메인 불변조건·상태전이 구현,"src/Modules/ValuationForecast/RankBuyCandidates/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-12-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-04,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,BE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vertical Slice API/Application/SQL 구현,BUY-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-12-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-05,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,ASYNC,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Event/Job/Inbox·재처리 구현,"J08B; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-12-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-06,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,FE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BUY-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-12-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-07,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,TESTOPS,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,회귀·관제·Runbook·Rollback 증거,T-BUY-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-12-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-01,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,GOV,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,정책·범위·실패상태 계약 확정,"REQ-RPL-001, VS-22 SLICE_SPEC, ADR/Decision Log",사용자 결과 '적합성·유동성·비용후 기회우위 대체상품 비교'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-12,VS-13",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-02,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DATA,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,데이터 시점·스키마·정합성 계약,"MIG-RPL-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-22-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-03,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DOMAIN,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/SuggestReplacementProducts/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-22-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-04,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,BE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vertical Slice API/Application/SQL 구현,RPL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-22-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-05,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,ASYNC,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Event/Job/Inbox·재처리 구현,"J-RPL; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-22-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-06,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,FE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-22-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-07,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,TESTOPS,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,회귀·관제·Runbook·Rollback 증거,T-RPL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-22-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-014,S11,W23-24,Cross,Cross-cutting,Model Risk,VALIDATION,REQ-MODEL-RISK,Cross,Cross,Cross,Cross,Cross,CSCV/PBO 고도화,CSCV/PBO·DSR·block bootstrap·시도 원장,"PBO≤20%, DSR≥95%, cost×2 utility 양수 또는 승격 차단",Quant/Risk,Architect/QA,15,AEG-X-012,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-015,S11,W23-24,Cross,Cross-cutting,Shadow,EVAL,REQ-SHADOW-001,Cross,Cross,Cross,Cross,Cross,252거래일 고도화,252거래일·복수 국면 일평가 scorecard,적중률 단독 아닌 calibration/ES/false-exit/reentry/운영무결성 판정,Quant/Ops,Architect/QA,14,VS-18,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-01,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,정책·범위·실패상태 계약 확정,"REQ-MOD-001, VS-20 SLICE_SPEC, ADR/Decision Log",사용자 결과 '모델 승격 증거·승인·롤백·챔피언/챌린저'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-18,VS-19",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-02,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DATA,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,데이터 시점·스키마·정합성 계약,"MIG-MOD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-20-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-03,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DOMAIN,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/PromoteModelVersion/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-20-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-04,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,BE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vertical Slice API/Application/SQL 구현,MOD-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-20-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-05,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ASYNC,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Event/Job/Inbox·재처리 구현,"J-MOD; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-20-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-06,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-MOD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-20-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-07,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,TESTOPS,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,회귀·관제·Runbook·Rollback 증거,T-MOD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-20-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-01,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,GOV,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,정책·범위·실패상태 계약 확정,"REQ-RPT-001, VS-24 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 리포트·SignalR·Telegram 운영 경보'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-16,VS-18",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-02,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DATA,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,데이터 시점·스키마·정합성 계약,"MIG-RPT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-24-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-03,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DOMAIN,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,도메인 불변조건·상태전이 구현,"src/Modules/ReportingNotifications/ReportAndNotify/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-24-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-04,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,BE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vertical Slice API/Application/SQL 구현,RPT-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-24-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-05,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,ASYNC,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Event/Job/Inbox·재처리 구현,"J11R; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-24-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-06,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,FE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-24-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-07,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,TESTOPS,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,회귀·관제·Runbook·Rollback 증거,T-RPT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-24-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-016,S12,W25-26,Cross,Cross-cutting,Broker,CAPABILITY,REQ-KIS-OFF,Cross,Cross,Cross,Cross,Cross,KIS 주문 제출 startup/CI/runtime 차단 고도화,KIS 주문 제출 startup/CI/runtime 차단,"외부 주문 호출 0, capability override 감사·kill-switch 통과",Security/Ops,Architect/QA,7,AEG-X-005,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-01,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,GOV,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,정책·범위·실패상태 계약 확정,"REQ-RECON-001, VS-23 SLICE_SPEC, ADR/Decision Log",사용자 결과 '브로커·내부 주문·체결·보유·현금 break와 승인 정정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-16",Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-02,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,데이터 시점·스키마·정합성 계약,"MIG-EXE-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-23-01,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-03,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DOMAIN,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,도메인 불변조건·상태전이 구현,"src/Modules/ExecutionReconciliation/ReconcilePositionsAndFills/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-23-02,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-04,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,BE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vertical Slice API/Application/SQL 구현,"EXE-01/02,REC-01/02; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-23-03,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-05,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,ASYNC,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Event/Job/Inbox·재처리 구현,"J12; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-23-04,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-06,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,FE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RECON-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-23-05,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-07,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,TESTOPS,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,회귀·관제·Runbook·Rollback 증거,T-RECON-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-23-06,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-017,S13,W27-28,Cross,Cross-cutting,DR,OPS,REQ-DR-001,Cross,Cross,Cross,Cross,Cross,RPO/RTO 고도화,RPO/RTO·backup/restore·region/host failure rehearsal,"승인 RPO/RTO 내 복구, 원장·outbox·projection 대사 100%",SRE/DBA,Architect/QA,12,AEG-X-006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-01,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,GOV,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,정책·범위·실패상태 계약 확정,"REQ-GOV-001, VS-25 SLICE_SPEC, ADR/Decision Log",사용자 결과 '입력→결정→승인→공개→실행→평가 추적과 단계별 차단'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-01,VS-16,VS-20,VS-23",G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-02,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DATA,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,데이터 시점·스키마·정합성 계약,"MIG-GOV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-25-01,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-03,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DOMAIN,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/AuditAndKillSwitch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-25-02,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-04,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,BE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vertical Slice API/Application/SQL 구현,GOV-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-25-03,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-05,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,ASYNC,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Event/Job/Inbox·재처리 구현,"J-GOV; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-25-04,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-06,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,FE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-GOV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-25-05,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-07,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TESTOPS,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,회귀·관제·Runbook·Rollback 증거,T-GOV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-25-06,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-018,S14,W29-30,Cross,Cross-cutting,Performance,NFR,REQ-NFR-001,Cross,Cross,Cross,Cross,Cross,API P95 고도화,API P95·batch SLA·portfolio 규모·backfill 부하시험,개장 전 추천 SLA와 고객 API SLO가 동시에 충족,SRE/QA,Architect/QA,10,AEG-X-017,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-019,S14,W29-30,Cross,Cross-cutting,Cutover,RELEASE,REQ-CUT-001,Cross,Cross,Cross,Cross,Cross,dry-run/backfill/recon/rollback/release evidence 고도화,dry-run/backfill/recon/rollback/release evidence,"미승인 공개 0, duplicate 0, rollback 리허설과 승인 서명",PM/Ops,Architect/QA,10,AEG-X-018,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-020,S15,W31-32,Cross,Cross-cutting,Hypercare,OPS,REQ-HYP-001,Cross,Cross,Cross,Cross,Cross,P1/P2 triage 고도화,P1/P2 triage·daily reconciliation·debt burn-down,초기 안정화 Exit 기준·Owner·잔여 부채 승인,Ops/PM,Architect/QA,8,AEG-X-019,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-DOC-022,Current-session source coverage and SHA register,Source Coverage Matrix/Source Index,6 current attachments preserved byte-for-byte and hashes match,PM/Architect,QA/Compliance,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG22-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,T-CI-022,Offline-safe package manager and lockfile decision,packageManager/LOCKFILE_REQUIRED/CI guard,No silent dependency resolution; frozen install blocks until approved lock exists,DevOps,FE Lead,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,ARCH,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-ARCH-022,Module/Vertical Slice template pack,"templates/dotnet,vue,sql,hangfire",New slice can be generated without Generic Repository or controller-service duplication,Architect,BE/FE Leads,6,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-004,S0,W1-2,Cross,Cross-cutting,API,BE,REQ-API-001,API-CONTEXT-01,Cross,Cross,Cross,T-API-022,Correlation/Idempotency/ProblemDetails shared contract,request execution standard,400/401/403/409/422 and trace/idempotency rules consistent,BE Lead,QA/SRE,6,AEG-X-004,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-005,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-REHEARSAL,Cross,MIG-REHEARSAL,Cross,Cross,T-DB-022,DbUp fresh/upgrade/re-run/failure rehearsal script,scripts/rehearse_migrations.sh,Approved PostgreSQL runner produces 4 scenario artifacts,DBA,BE/DevOps,8,AEG-X-004,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-OUTBOX-001,Cross,MIG-0013,JOB-OUTBOX-01,Cross,T-OUTBOX-022,Outbox lease/dead-letter/replay hardening,outbox dispatcher template/runbook,Crash-before/after publish yields no lost message and idempotent downstream,BE/SRE,QA,10,AEG-X-006,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-007,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-INBOX-001,Cross,MIG-0013,JOB-INBOX-01,Cross,T-INBOX-022,Inbox duplicate/result-hash contract,inbox consumer template,Same consumer/message performs side effect once and replay hash is stable,BE/SRE,QA,8,AEG-X-007,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-008,S0,W1-2,Cross,Cross-cutting,Batch,JOB,REQ-JOB-001,Cross,MIG-0000,JOB-RUN-STD,UI-OPS-JOB,T-JOB-022,JobRun/Watermark/heartbeat scope standard,ReliableJob template,Concurrent duplicate is held; retry preserves scope/version/input hash,BE/SRE,QA/Data,8,AEG-X-008,G1,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-001,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,Separate security weight and lot weight,SellDecisionInput/context/migration,Lot ratio changes only lot weight; target security weight is exact,Quant/BE,DBA/QA,10,AEG-VS-10-03,G2-A,SOURCE+INFERENCE,P0,PLANNED +AEG22-VS10-002,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,Persist ordered policy evaluation trace,policy_trace_json/API schema,Applied/blocked/not-applicable reasons reproduce decision priority,BE/Quant,FE/QA,8,AEG22-VS10-001,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-003,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,QA,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-GOLDEN-022,Golden/boundary/monotonic/property vectors,unit/golden vectors,"Core clamp, survival bypass, priority and future PIT rejection pass",QA/Quant,BE,8,AEG22-VS10-002,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS10-004,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SIG-UI,SIG-RESEARCH-01,Cross,Cross,UI-SIG-01,T-FE-SIG-022,FE runtime contract for weights and policy trace,Zod schema/page/tests,Malformed response and lot>security input fail closed,FE Lead,QA/BE,5,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS09-001,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,Cross,MIG-EVD-001,J06,UI-EVD-01,T-EVD-022,Evidence completeness grade and required-field manifest,Evidence contract delta,Missing total-return/delisting/cost source downgrades or quarantines recommendation,Data/Quant,BE/QA,8,AEG-VS-09-02,G2-A,SOURCE,P0,PLANNED +AEG22-VS03-001,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-PIT-022,Enforce published_at cutoff and timezone,PIT query contract/data test,Lookahead count remains zero across replay and timezone boundaries,Data Architect,DBA/QA,8,AEG-VS-03-03,G1-B,SOURCE,P0,PLANNED +AEG22-VS03-002,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-LIC,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,Source license/SLA/checksum fail-closed gate,Source catalog contract,Unapproved/checksum-drift source cannot reach canonical/PIT layer,Data Governance,BE/Compliance,7,AEG22-VS03-001,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS08-001,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DB,REQ-LEDGER-001,POR-01,MIG-POR-001,LedgerEntryApplied,UI-POR-01,T-LEDGER-022,Lot weight derivation and reconciliation invariant,ledger/read-model contract,Lot market values equal security/account totals within tolerance,DBA/BE,Quant/QA,10,AEG-VS-08-03,G1,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS11-001,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ALG,ALG-REENTRY-001,SIG-02,MIG-SIG-REENTRY,J09,UI-SIG-02,T-REENTRY-022,Reentry stage uniqueness and cycle reset proof,state transition/golden tests,Each stage once; new CycleId/Lot; old floor/cost/high not reused,Quant/BE,QA/DBA,9,AEG-VS-11-03,G2,SOURCE,P0,PLANNED +AEG22-VS14-001,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-ADV-001,ADV-01,MIG-ADV-001,J08,UI-ADV-01,T-ADV-RUN-022,Run isolation and partial-failure quarantine,run manifest/error partition,One portfolio failure cannot publish invalid advice to another,BE Lead,SRE/QA,10,AEG-VS-14-04,MVP-B,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS15-001,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,SEC,REQ-REV-001,ADV-02,MIG-ADV-002,RecommendationReviewed,UI-ADV-02,T-REV-022,Maker-checker optimistic concurrency proof,review version/ETag tests,Self-approval and stale update rejected with audit evidence,BE/Security,FE/QA,8,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS16-001,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,ADV-03,MIG-ADV-003,AdvicePublished,UI-CLI-01,T-PUB-022,Publish snapshot hash and staleness gate,publication immutable snapshot,Expired/revised/quarantined evidence blocks publish,BE/Compliance,QA/FE,9,AEG-VS-16-04,G3,SOURCE,P0,PLANNED +AEG22-VS18-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-DEF-022,Version false-exit/gain-capture definitions,metric definition registry,Historical scorecard reproducible by metric version/revision,Quant/Risk,Data/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS19-001,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QUANT,REQ-BT-001,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-ENV-022,Environment digest and full experiment registry,frozen manifest,Data/code/config/seed/environment/all variants hashed,Quant/Data,Risk/QA,10,AEG-VS-19-03,G2,SOURCE,P0,PLANNED +AEG22-VS19-002,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QA,REQ-BT-002,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-XLANG-022,Python-.NET decision golden cross-check,cross-language vectors,Policy/action/ratio/target/trace match within tolerance,QA/Quant,BE,8,AEG22-VS19-001,G2,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS23-001,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,OPS,REQ-REC-001,EXE-01,MIG-EXE-001,J12,UI-OPS-REC,T-REC-CORR-022,Approved correction/reversal workflow,break/correction/audit contract,No direct edit; before/after/hash/approver/replay reconcile to zero,Ops/DBA,Compliance/QA,10,AEG-VS-23-04,Pilot-A,SOURCE,P0,PLANNED +AEG22-VS25-001,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-GOV-001,GOV-01,MIG-GOV-001,KillSwitchChanged,UI-GOV-01,T-KILL-022,Automatic-order capability tripwire,capability tests/runbook,Any AutomaticOrder/KIS drift blocks start/release/action,Security/Ops,DevOps/QA,8,AEG-VS-25-04,ALL,SOURCE,P0,PLANNED +AEG22-X-009,S11,W23-24,Cross,Cross-cutting,Frontend,FE,REQ-FE-CONTRACT,Cross,Cross,Cross,Cross,T-FE-OPENAPI-022,OpenAPI artifact diff and generated contract plan,contract generation ADR,DTO drift visible in CI; Zod remains trust boundary,BE/FE,QA/Architect,7,AEG-X-012,G3,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-010,S11,W23-24,Cross,Cross-cutting,Observability,SRE,REQ-OBS-001,Cross,Cross,Cross,UI-OPS-01,T-OBS-022,Metric cardinality/PII/redaction budget,telemetry policy/tests,No high-cardinality account/security tags or PII in telemetry,SRE/Security,BE/QA,7,AEG-X-013,G5,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-011,S14,W29-30,Cross,Cross-cutting,Performance,SRE,REQ-CAP-001,Cross,Cross,Cross,Cross,T-CAP-022,Capacity assumptions and workload pack,capacity profile,Approved volumes map to API/batch/DB SLO evidence,PM/SRE,DBA/QA,10,AEG-X-025,G6-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-012,S15,W31-32,Cross,Cross-cutting,Release,OPS,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-022,Release evidence and rollback rehearsal,release manifest/checksum/runbook,Source→requirement→code→test→artifact hashes and rollback complete,PM/SRE,QA/Compliance,8,AEG22-X-011,G6,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-031,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,Rebuild seven-file current-session source coverage,Source matrix·SHA index,7개 첨부 원본·크기·SHA-256·역할이 패키지와 1:1 일치,PM/QA,Architect,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG-X-032,S0,W1-2,Cross,Cross-cutting,CI/CD,DEVEX,REQ-PLAT-CI,Cross,Cross,Cross,Cross,T-CI-003,Correct stale CI validator and duplicate YAML key,Gitea ci.yml,"validate_v123 실행, 중복 working-directory 0, static/scaffold tests 연결",DevOps,QA,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-033,S0,W1-2,Cross,Cross-cutting,Architecture,SCAFFOLD,REQ-ARCH-SCAFFOLD,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,Implement deterministic fail-closed slice scaffolder,scaffold_slice.py·templates·tests,"dry-run deterministic, 기존 파일 overwrite 0, 미승인 placeholder 명시",Architect,BE/FE,7,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-034,S0,W1-2,Cross,Cross-cutting,Contract,CONTRACT,REQ-CONTRACT-001,Cross,Cross,Cross,Cross,T-CONTRACT-001,Create machine-readable policy/event/metric contract registry,contracts/**,"JSON parse, C# 상수 교차검증, 이벤트 schema v2, metric definition version",Architect/Quant,QA/Risk,7,AEG-X-003,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-035,S0,W1-2,Cross,Cross-cutting,Validation,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-STATIC-123,Extend static validator for semantic version and contract drift,validate_v123.py,"WBS 250, 7첨부, 0015, registry, context filter, CI key 검사 통과",QA,Architect,6,AEG-X-034,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-08,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-CONTRACT-001,Centralize approved sell policy constants,SellPolicyContract.cs,정책 ID·우선순위·임계값 중복 제거 및 JSON registry와 일치,Quant/BE,Risk/QA,6,AEG-X-034,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-09,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-ZERO-RATIO,Fix positive-edge zero-ratio opportunity sell defect,OpportunityCostPolicy.cs·tests,"edge>0·ratio=0에서 HOLD, trace=BLOCKED, 자동 10% 매도 0",BE/Quant,QA/Risk,5,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-10,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Data integrity,REQ-SIG-SELL,SIG-01,MIG-0015,-,-,T-SIG-SEM-001,Version lot/security weight semantics and block legacy contexts,0015 migration·context reader,weight_semantics_version=2만 결정 입력 사용; legacy backfill 추정 사용 0,DBA/BE,Quant/QA,8,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-11,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Evidence,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-EVT-002,Persist decision and policy-trace contract versions,API·DB·event v2,decision_contract_version과 policy_trace_schema_version이 DB/API/event/hash에 포함,BE,DBA/FE/QA,7,AEG-VS-10-10,G2-A,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-12,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Frontend,REQ-SIG-SELL,SIG-02,MIG-0015,-,UI-SIG-TRACE,T-FE-SIG-TRACE,Componentize ordered policy trace display,PolicyTracePanel.vue·Zod,우선순위/Disposition/요청·적용비율/Core clamp를 runtime contract로 표시,FE,UX/QA,5,AEG-VS-10-11,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-08,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,Metric governance,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-METRIC-001,Version false-exit and reentry metric definitions,outcome-metrics.v1.json,"분모/분자/평가창/집계/정의버전 명시, 연 2% 목표와 직접비교 금지",Quant/Risk,Data/QA,6,AEG-X-034,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-036,S1,W3-4,Cross,Cross-cutting,Security,AUTH,REQ-IAM-001,Cross,Cross,Cross,Cross,T-AUTH-ADR,Keep OIDC/JWT provider decision fail-closed,Decision Log,공급자/claims 미결정 시 Development 외 인증 성공 0,Security,PM/BE,3,AEG-X-005,G5,SOURCE,P0,PLANNED +AEG-X-037,S2,W5-6,Cross,Cross-cutting,Data governance,PIT,REQ-DAT-SOURCE,Cross,Cross,Cross,Cross,T-DATA-LICENSE,Reconfirm total-return/delisting/consensus source decisions,Decision Log·source catalog,미승인 source 추천 진입 0; DECISION_REQUIRED 유지,Data Governance,Legal/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-038,S3,W7-8,Cross,Cross-cutting,Cost data,PIT,REQ-COST-001,Cross,Cross,Cross,Cross,T-COST-PIT,Reconfirm Fee/Tax/FX valid-time schedule decisions,Decision Log·data contract,current 단일값 사용 0; 미결정 계좌/venue 추천 보류,Ops/Tax,DBA/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-039,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-013,Resolve survival cooldown bypass rule,Decision record·Golden vectors,승인 전 기존 fail-closed 유지; 승인 후 정책·모델카드·OOS 동시변경,Investment Committee,Quant/Risk/BE,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P0,PLANNED +AEG-X-040,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-014,Resolve hard impairment 80-100% severity mapping,Decision record·evidence grading,severity source 미승인 시 100% 보수값 유지; 임의 80% 적용 금지,Investment Committee,Compliance/Quant,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P1,PLANNED +AEG-X-041,S11,W23-24,Cross,Cross-cutting,Supply chain,SECURITY,REQ-SEC-SBOM,Cross,Cross,Cross,Cross,T-SBOM-001,Add SBOM/license/vulnerability release evidence contract,Release Evidence template,실제 scanner 미실행은 PASS 표기 금지; artifact 경로와 allowlist 필수,Security/DevOps,Legal/QA,5,AEG-X-032,G5,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-042,S14,W29-30,Cross,Cross-cutting,Capacity,NFR,REQ-NFR-CAP,Cross,Cross,Cross,Cross,T-CAP-001,Approve load volumes before index or partition optimization,Capacity ADR,고객/계좌/종목/배치량 결정 전 투기적 index·partition 추가 0,PM/SRE,DBA/BE,5,DEC-011,G6-A,DECISION_REQUIRED,P1,PLANNED +AEG-X-043,S15,W31-32,Cross,Cross-cutting,Release,EVIDENCE,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-123,Assemble v12.3 release evidence and checksum manifest,Validation evidence·manifest·SHA256,실행/미실행을 구분하고 패키지 전 파일 hash·첨부 hash가 일치,QA/Release,PM/Architect,7,AEG-X-035,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED diff --git a/docs/v12_3/08_TECH_DEBT_REGISTER.csv b/docs/v12_3/08_TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..90a6dc37 --- /dev/null +++ b/docs/v12_3/08_TECH_DEBT_REGISTER.csv @@ -0,0 +1,41 @@ +ID,Priority,Debt,Impact,Remediation,Gate,Owner,Status +TD-001,P0,도구체인 실빌드 미검증,C# 컴파일/패키지 호환 결함 가능,승인 .NET 10 runner에서 restore/build/test,G0,DevOps,OPEN +TD-002,P0,pnpm-lock.yaml 부재,FE 공급망·재현성 미확보,승인 네트워크에서 pnpm install 후 lock review/commit,G0,FE Lead,OPEN +TD-003,P0,PostgreSQL migration rehearsal 미실행,fresh/upgrade/re-run/복구 실패 가능,PostgreSQL 승인 버전 4시나리오 자동화,G0,DBA,OPEN +TD-004,P0,원시 연구 데이터 권리·checksum·환경 lock 미완전,제3자 clean-room 재현 불가,Source catalog/license/raw checksum/container digest 확보,G1,Data Governance,OPEN +TD-005,P0,KR 검증 종료 2021-04-16,최근 시장국면 검증 공백,2026 현재까지 PIT 총수익·상폐·기업행사 보충 후 frozen OOS,G4,Quant/Data,OPEN +TD-006,P0,실제 OIDC/JWT 공급자 미결정,외부 Pilot 접근통제 불가,"Auth ADR, key rotation, claims/RBAC E2E",G5,Security,OPEN +TD-007,P0,총수익·상폐수익·컨센서스 공급계약 미확정,생존편향·성과왜곡,공식/상용 source 계약·SLA·재배포 권리 승인,G1,Data Governance,OPEN +TD-008,P0,Fee/Tax/FX PIT 표 미확정,비용후 기대효용 왜곡,valid_from/to 계좌·venue·상품·side·band schedule,G1,DBA/Quant,OPEN +TD-009,P0,Outbox/Inbox crash/replay 실증 미완료,side effect 누락·중복,lease/dead-letter/replay chaos test,G3,BE/SRE,IN_PROGRESS +TD-010,P1,JobRun·Watermark 표준의 일부 구현만 존재,배치 재처리·감사 불완전,공통 JobRun scope/version/hash/heartbeat 정책 적용,G1,BE/SRE,IN_PROGRESS +TD-011,P1,Architecture test가 정적 문자열 규칙 중심,금지 의존 누락 가능,assembly/namespace/schema/API fitness function 확대,G0,Architect,IN_PROGRESS +TD-012,P1,OpenAPI→FE contract 자동생성 미도입,DTO drift·홀루시네이션 위험,OpenAPI artifact diff + generated client/schema gate,G3,BE/FE,OPEN +TD-013,P1,PII redaction·Telegram 보안 테스트 미완성,고객정보 노출 가능,classification/redaction test와 secret scan,G5,Security/SRE,OPEN +TD-014,P1,Model promotion workflow 미완성,무단 모델 활성화 위험,model card/maker-checker/effective_at/rollback 구현,G4,Risk/BE,OPEN +TD-015,P1,Read Model rebuild runner 미완성,stale projection 복구 불가,projection version/watermark/rebuild/diff 도구,G3,BE/Data,IN_PROGRESS +TD-016,P1,SLO/RPO/RTO 미승인,운영 Go 판단 불가,부하시험·백업복구·DR ADR 승인,G5,SRE/DBA,OPEN +TD-017,P2,공통 UI 컴포넌트 승격 기준 미운영,중복 또는 과도한 추상화,3회 반복+동일 의미/변경축 확인 후 승격,S10,FE Lead,OPEN +TD-018,P1,PBO/DSR 전체 탐색·시도 원장 미완성,과최적화 위험,전체 실험 registry+CSCV/PBO/DSR/block bootstrap,G4,Quant/Risk,OPEN +TD-019,P1,자산유형별 재진입 확인팩터 공급원 미완성,재진입 품질 저하,asset policy contract+PIT source+missing evidence downgrade,G2,Quant/Data,OPEN +TD-020,P0,자동주문/KIS 제출은 금지 상태,오활성화 사고 위험,Options ValidateOnStart+CI config scan+runtime kill switch 유지,ALL,Security/Ops,MITIGATED +TD-021,P1,정책 임계값이 문서·YAML·C#에 중복될 가능성,계약 drift,승인 config registry+schema+hash+generated constants,G2,Quant/BE,OPEN +TD-022,P1,DB immutable trigger와 correction event 운영절차 미실증,정정/감사 장애 가능,maker-checker correction replay와 audit trace E2E,G3,DBA/Compliance,OPEN +TD-023,P2,프런트 서버상태/Pinia 책임 경계의 팀 규율 미검증,중복 캐시·stale UI,lint/review checklist+query key registry,MVP-B,FE Lead,OPEN +TD-024,P1,Dependency vulnerability/license 자동검사 미구성,공급망 리스크,NuGet/npm SBOM·license allowlist·vulnerability gate,G5,Security/DevOps,OPEN +TD-025,P1,성능 규모 가정 미확정,배치 SLA/DB index 과·소설계,portfolio/security/client volume 결정·capacity test,G6-A,PM/SRE,OPEN +TD-026,P0,Security/Lot weight field ambiguity in v12.1,Partial-lot sell could miscalculate target security weight,MIG-0014 + domain/API/FE golden vectors,G2-A,Quant/BE,IN_PROGRESS +TD-027,P1,Only final sell policy reason was persisted,Blocked/not-applicable priority path was not auditable,Persist ordered policy_trace_json and internal trace contract,G2-A,BE/Quant,IN_PROGRESS +TD-028,P0,Current-session attachment set differs from prior package manifest,Source coverage claim can become stale,Rebuild source index from six current attachments and verify SHA,G0,PM/QA,MITIGATED +TD-029,P1,Request execution contract remains endpoint-local,Error/idempotency/correlation behavior can drift,Adopt reviewed request execution template after characterization tests,G0,BE Lead,OPEN +TD-030,P0,Outbox dispatcher runtime implementation is incomplete,Stored events may not publish or may duplicate,Lease/dead-letter/replay implementation and crash tests,G3,BE/SRE,OPEN +TD-031,P0,Inbox result-hash/replay proof is incomplete,Duplicate downstream side effects remain possible,Consumer-specific transaction and crash/replay tests,G3,BE/SRE,OPEN +TD-032,P1,Outcome metric definitions are not fully versioned,Historical false-exit/gain-capture can drift,outcome-metrics.v1 registry added; Quant/Risk approval and DB scorecard binding remain,G3,Quant/Risk,IN_PROGRESS +TD-033,P1,Module and feature scaffolding depended on manual copying,Pattern drift and vibe-coding hallucination,deterministic scaffold_slice.py + reviewed templates + tests,G0,Architect,MITIGATED +TD-034,P0,v12.2 legacy weight backfill could be treated as explicit lot semantics,Historic context may create incorrect partial-lot target weight,MIG-0015 semantics version; reader accepts version 2 only; rebuild required,G2-A,DBA/BE/Quant,MITIGATED +TD-035,P0,Opportunity edge with zero requested ratio was clamped to 10% sell,Missing quantity decision could become unintended sell,Fail closed with OPPORTUNITY_RATIO_NOT_POSITIVE and Golden test,G2-A,BE/Quant,IN_PROGRESS +TD-036,P1,CI referenced v12.1 validator and contained duplicate working-directory key,Latest controls could be skipped and YAML behavior ambiguous,"Use validate_v123, single working-directory, scaffold tests",G0,DevOps/QA,MITIGATED +TD-037,P1,Policy values duplicated between documents and C# magic numbers,Threshold and priority drift,SellPolicyContract + machine-readable registry + static cross-check,G2,Quant/BE,IN_PROGRESS +TD-038,P1,Previous package did not include v12.2 itself as a new source attachment,Cumulative source chain incomplete for next delta,Seven-file source coverage and SHA index,G0,PM/QA,MITIGATED +TD-039,P0,pnpm lockfile still cannot be generated in isolated environment,Frontend dependency resolution is not reproducible,Generate and review pnpm-lock.yaml on approved connected runner; frozen CI only,G0,FE Lead/DevOps,OPEN +TD-040,P0,v12.3 C# and PostgreSQL changes are statically validated only,"Compile, package compatibility and migration runtime defects may remain",Run .NET 10 build/test and PostgreSQL fresh/upgrade/re-run/failure rehearsal,G0,DevOps/DBA/QA,OPEN diff --git a/docs/v12_3/09_TRACEABILITY_MATRIX.csv b/docs/v12_3/09_TRACEABILITY_MATRIX.csv new file mode 100644 index 00000000..97fe0d27 --- /dev/null +++ b/docs/v12_3/09_TRACEABILITY_MATRIX.csv @@ -0,0 +1,34 @@ +Requirement_ID,Slice_ID,Policy_or_Data_ID,API_ID,DB_ID,Job_Event_ID,UI_ID,Test_ID,WBS_Range,Release_Gate,Evidence_Status +REQ-PLAT-001,VS-00,DATA/DOMAIN-CONTRACT,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,AEG-VS-00-01..AEG-VS-00-07,G0,SOURCE+DESIGN_PROPOSAL +REQ-IAM-001,VS-01,DATA/DOMAIN-CONTRACT,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,AEG-VS-01-01..AEG-VS-01-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-SEC-001,VS-02,DATA/DOMAIN-CONTRACT,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,AEG-VS-02-01..AEG-VS-02-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-DAT-001,VS-03,DATA/DOMAIN-CONTRACT,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,AEG-VS-03-01..AEG-VS-03-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-CA-001,VS-04,DATA/DOMAIN-CONTRACT,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,AEG-VS-04-01..AEG-VS-04-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-FND-001,VS-05,DATA/DOMAIN-CONTRACT,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,AEG-VS-05-01..AEG-VS-05-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-COST-001,VS-06,DATA/DOMAIN-CONTRACT,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,AEG-VS-06-01..AEG-VS-06-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-CLI-001,VS-07,DATA/DOMAIN-CONTRACT,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,AEG-VS-07-01..AEG-VS-07-07,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-LED-001,VS-08,DATA/DOMAIN-CONTRACT,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,AEG-VS-08-01..AEG-VS-08-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-EVD-001,VS-09,DATA/DOMAIN-CONTRACT,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,AEG-VS-09-01..AEG-VS-09-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-SELL-001,VS-10,"ALG-SELL-001~005,ALG-SELL-PORT-001",SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,AEG-VS-10-01..AEG-VS-10-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-RE-001,VS-11,ALG-REENTRY-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,AEG-VS-11-01..AEG-VS-11-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-BUY-001,VS-12,ALG-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,AEG-VS-12-01..AEG-VS-12-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RISK-001,VS-13,ALG-PORT-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,AEG-VS-13-01..AEG-VS-13-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-REC-001,VS-14,DATA/DOMAIN-CONTRACT,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,AEG-VS-14-01..AEG-VS-14-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-REV-001,VS-15,DATA/DOMAIN-CONTRACT,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,AEG-VS-15-01..AEG-VS-15-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-PUB-001,VS-16,DATA/DOMAIN-CONTRACT,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,AEG-VS-16-01..AEG-VS-16-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-CLD-001,VS-17,DATA/DOMAIN-CONTRACT,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,AEG-VS-17-01..AEG-VS-17-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-EVA-001,VS-18,DATA/DOMAIN-CONTRACT,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,AEG-VS-18-01..AEG-VS-18-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-BKT-001,VS-19,DATA/DOMAIN-CONTRACT,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,AEG-VS-19-01..AEG-VS-19-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-MOD-001,VS-20,DATA/DOMAIN-CONTRACT,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,AEG-VS-20-01..AEG-VS-20-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-REB-001,VS-21,DATA/DOMAIN-CONTRACT,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,AEG-VS-21-01..AEG-VS-21-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-RPL-001,VS-22,DATA/DOMAIN-CONTRACT,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,AEG-VS-22-01..AEG-VS-22-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RECON-001,VS-23,DATA/DOMAIN-CONTRACT,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,AEG-VS-23-01..AEG-VS-23-07,Pilot-A,SOURCE+DESIGN_PROPOSAL +REQ-RPT-001,VS-24,DATA/DOMAIN-CONTRACT,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,AEG-VS-24-01..AEG-VS-24-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-GOV-001,VS-25,DATA/DOMAIN-CONTRACT,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,AEG-VS-25-01..AEG-VS-25-07,G5,SOURCE+DESIGN_PROPOSAL +REQ-SIG-WEIGHT-022,VS-10,ALG-SELL-002~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,AEG22-VS10-001~004,G2-A,SOURCE+INFERENCE +REQ-SIG-TRACE-022,VS-10,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL +REQ-DAT-LIC-022,VS-03,DQ-01~08,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,AEG22-VS03-002,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-REL-022,Cross,DOC-NR-03/06,Cross,Cross,Cross,Cross,T-REL-022,AEG22-X-012,G6,DESIGN_PROPOSAL +REQ-CONTRACT-001,Cross/VS-10/VS-18,sell-policy.v1/outcome-metrics.v1,SIG-01/02,MIG-0015,EVT-SIG-001/J10,UI-SIG-TRACE/UI-EVAL-01,T-CONTRACT-001/T-EVAL-METRIC-001,"AEG-X-034,AEG-VS-10-08..12,AEG-VS-18-08",G2-A/G3,SOURCE+DESIGN_PROPOSAL +REQ-ARCH-SCAFFOLD,Cross,AGENTS/SLICE_SPEC,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,AEG-X-033,G0,DESIGN_PROPOSAL +REQ-SOURCE-123,Cross,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,"AEG-X-031,AEG-X-043",G0/G6,SOURCE diff --git a/docs/v12_3/10_DECISION_LOG.csv b/docs/v12_3/10_DECISION_LOG.csv new file mode 100644 index 00000000..0284f0dd --- /dev/null +++ b/docs/v12_3/10_DECISION_LOG.csv @@ -0,0 +1,22 @@ +Decision_ID,Status,Decision_or_Question,Basis,Owner,Gate,Approved_or_Due +DEC-001,APPROVED,투자자문형→Shadow→Pilot; 자동주문 OFF,v10.0·v12.2,운영사/준법,ALL,2026-08-01 +DEC-002,APPROVED,알고리즘 상태 RESEARCH_CANDIDATE_NOT_PRODUCTION,v10.0·v12.2,투자위/리스크,G4,2026-08-01 +DEC-003,APPROVED,Modular Monolith+Vertical Slice; 조기 microservice 금지,v10.0,Architect,G0,2026-08-01 +DEC-004,APPROVED,PIT/revision/hash/lineage와 immutable Evidence 우선,v10.0·v12.2,Data/Quant,G1,2026-08-01 +DEC-005,APPROVED,매도 우선순위: impairment→survival→floor→concentration→opportunity→reentry,v12.2,투자위/Quant,G2,2026-08-01 +DEC-006,APPROVED,SellRatioOfLot와 portfolio weight/core floor 단위 분리,v12.0 Delta,Quant/Architect,G2-A,2026-08-02 +DEC-007,DECISION_REQUIRED,생산 OIDC/JWT 공급자와 claims mapping,자료 미지원,Security/PM,G5,미정 +DEC-008,DECISION_REQUIRED,PIT 총수익·상폐·컨센서스 공급원/라이선스,자료 미지원,Data Governance/Legal,G1,미정 +DEC-009,DECISION_REQUIRED,계좌·시장·venue별 Fee/Tax/FX schedule,자료 미지원,Ops/Tax/Quant,G1,미정 +DEC-010,DECISION_REQUIRED,SLO/RPO/RTO와 운영 용량 기준,자료 미지원,SRE/PM,G5,미정 +DEC-011,DECISION_REQUIRED,고객/계좌/상품 규모와 성능 테스트 볼륨,자료 미지원,PM/SRE,G6-A,미정 +DEC-012,DECISION_REQUIRED,한국 최신 PIT 데이터 확보 범위와 재검증 일정,자료 미지원,Quant/Data,G4,미정 +DEC-013,APPROVED,Lot-relative sell ratio uses CurrentLotPortfolioWeight; target security weight subtracts LotWeight×Ratio,v10/v12.1 unit-separation intent and data-consistency correction,Quant/Architect,G2-A,2026-08-02 +DEC-014,APPROVED,Ordered policy trace is immutable internal decision evidence; customer view receives curated explanation,Explainability and audit delta,Quant/Compliance/Architect,G2-A/G3,2026-08-02 +DEC-015,APPROVED,v12.2 preserves all six current-session attachments byte-for-byte and treats v12.1 as baseline,Non-regression source control,PM/Architect,G0,2026-08-02 +DEC-016,DECISION_REQUIRED,Select production OpenAPI client generation tool and ownership,Toolchain/network approval required,BE/FE/DevOps,G3,Before S11 +DEC-017,DECISION_REQUIRED,Approve .NET/PostgreSQL/pnpm runner image digests,Real build and migration evidence prerequisite,DevOps/Security,G0,Before coding start +DEC-013,DECISION_REQUIRED,자본바닥/생존 매도가 same-direction cooldown을 우회하는가,v10 우선순위는 명확하나 cooldown 예외는 첨부 근거에 명시되지 않음,투자위/리스크/Quant,G2,Before VS-10 production path +DEC-014,DECISION_REQUIRED,Hard impairment 80~100%를 어떤 증거등급/심각도로 매핑하는가,v10 범위는 80~100%; 현재 구현은 보수적으로 100%,투자위/준법/Quant,G2,Before policy parameter change +DEC-015,APPROVED,v12.2 이전 ambiguous weight context는 추정 사용하지 않고 semantics v2로 재구축한다,PIT·재현성·DECISION_REQUIRED fail-closed 원칙,Data Architect/Quant/Architect,G2-A,2026-08-02 +DEC-016,APPROVED,정책·이벤트·성과지표 계약은 버전과 hash를 가진 machine-readable artifact로 관리한다,"DOC-NR-05/06, v12.1 TD-021/032",Architect/Quant/Risk,G2/G3,2026-08-02 diff --git a/docs/v12_3/11_VIBE_CODING_HALLUCINATION_CONTROL.md b/docs/v12_3/11_VIBE_CODING_HALLUCINATION_CONTROL.md new file mode 100644 index 00000000..23fc05de --- /dev/null +++ b/docs/v12_3/11_VIBE_CODING_HALLUCINATION_CONTROL.md @@ -0,0 +1,7 @@ +# 바이브코딩·홀루시네이션 통제 + +모든 작업을 SOURCE, ASSUMPTION, UNKNOWN, DECISION_REQUIRED로 분류한다. UNKNOWN과 DECISION_REQUIRED는 코드 기본값으로 해결하지 않는다. + +`scaffold_slice.py`는 dry-run이 기본이며 기존 파일을 덮어쓰지 않는다. 생성된 코드는 SCAFFOLD_ONLY이고 Request/Response/Zod/SQL/수용기준이 승인되기 전 Route를 활성화하지 않는다. + +실행하지 않은 .NET build, pnpm frozen build, PostgreSQL rehearsal, Shadow/PBO/DSR은 PASS로 기록하지 않는다. 새 library·table·threshold·index는 ADR/Decision 없이 도입하지 않는다. diff --git a/docs/v12_3/12_GATES_AND_20_DAY_RESTART.md b/docs/v12_3/12_GATES_AND_20_DAY_RESTART.md new file mode 100644 index 00000000..4fb5fd3c --- /dev/null +++ b/docs/v12_3/12_GATES_AND_20_DAY_RESTART.md @@ -0,0 +1,10 @@ +# Gate와 20영업일 재착수 + +- D1~D3: Source Coverage, Version Matrix, Decision Log, 자동주문 OFF. +- D4~D6: .NET/Node/pnpm lock, secret/env, Gitea CI. +- D7~D10: DbUp fresh/upgrade/re-run/failure, Auth, Outbox/Inbox, Architecture. +- D11~D14: SecurityMaster·MarketData·PIT·기업행사·DQ, semantics v2 rebuild. +- D15~D17: Evidence·6 Sell Policy·Reentry Golden·C#↔Python. +- D18~D20: Research/Production Decision API·FE contract·OTel E2E. + +G0는 실빌드·lockfile·migration rehearsal 전 통과하지 않는다. G2는 policy/config/data/code hash와 Golden/OOS, G3는 maker-checker·Outbox/Inbox chaos·immutable publish, G4는 252거래일 Shadow/PBO/DSR, G5는 OIDC/JWT·DR·SLO/RPO/RTO를 요구한다. diff --git a/docs/v12_3/13_PROCESS_SIMPLIFICATION.md b/docs/v12_3/13_PROCESS_SIMPLIFICATION.md new file mode 100644 index 00000000..c659fec9 --- /dev/null +++ b/docs/v12_3/13_PROCESS_SIMPLIFICATION.md @@ -0,0 +1,5 @@ +# 프로세스 단순화 + +단일 흐름은 `Idea → Decision Required 해소 → Slice Ready → Walking Skeleton → Contract/Golden → Implement → Review → Release Evidence → Observe → Debt/Outcome`이다. + +작업 완료는 코드 작성이 아니라 Requirement/Policy/Data/API/DB/Job/UI/Test/Metric/Runbook이 연결된 상태다. 문서를 늘리기보다 9개 Source of Truth, Slice Spec, Traceability, Release Evidence를 갱신한다. diff --git a/docs/v12_3/14_PACKAGE_CONTENTS.md b/docs/v12_3/14_PACKAGE_CONTENTS.md new file mode 100644 index 00000000..07c89ddb --- /dev/null +++ b/docs/v12_3/14_PACKAGE_CONTENTS.md @@ -0,0 +1,9 @@ +# 패키지 구성 + +- v10/v11/v11.1/v12.1/v12.2 및 연구 원본 첨부 7개 원본 보존. +- .NET 10 / ASP.NET Core 10 Modular Monolith·Vertical Slice 템플릿. +- Vue 3/Vite 8 기능 템플릿과 Zod runtime contract. +- DbUp migration 0015, 정책/이벤트/성과지표 machine-readable contracts. +- 26 Slice, 250 WBS, 40 기술부채, Traceability, Decision Log. +- 정적검증·연구정책·스캐폴더 테스트와 DOCX 제안서. +- PACKAGE_MANIFEST.json 및 SHA256SUMS.txt. diff --git a/docs/v12_3/15_VALIDATION_MATRIX.csv b/docs/v12_3/15_VALIDATION_MATRIX.csv new file mode 100644 index 00000000..dd377572 --- /dev/null +++ b/docs/v12_3/15_VALIDATION_MATRIX.csv @@ -0,0 +1,9 @@ +Validation,Environment,Status,Required_Action,Gate +Static package validation,Current container,PASS 17 / WARN 4 / FAIL 0,Run scripts/validate_v123.py,G0 +Python research hardening tests,Current container,PASS 4 / FAIL 0,Run python -m unittest -v in research/hardening,G2 +Python scaffolder tests,Current container,PASS 2 / FAIL 0,Run python -m unittest -v scripts.tests.test_scaffold_slice,G0 +DOCX render and visual QA,LibreOffice renderer,PASS 6 pages / no layout defects,Render and inspect every page,G0 +.NET 10 restore/build/test,SDK unavailable in current container,NOT_EXECUTED,Approved .NET 10 runner,G0 +pnpm frozen typecheck/test/build/e2e,pnpm/lockfile unavailable,NOT_EXECUTED,Generate reviewed lockfile and run approved connected runner,G0/G3 +PostgreSQL DbUp rehearsal,psql/docker unavailable,NOT_EXECUTED,fresh/upgrade/re-run/failure rehearsal on approved PostgreSQL,G0 +252-session Shadow/PBO/DSR,Evidence period unavailable,NOT_EXECUTED,Accumulate multi-regime Shadow and independent validation,G4 diff --git a/docs/v12_3/K-ArtSell_Aegis_v12_3_∞ïñφûëΩ▓Ç∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx b/docs/v12_3/K-ArtSell_Aegis_v12_3_∞ïñφûëΩ▓Ç∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx new file mode 100644 index 00000000..24dea3f9 Binary files /dev/null and b/docs/v12_3/K-ArtSell_Aegis_v12_3_∞ïñφûëΩ▓Ç∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx differ diff --git a/docs/v12_4/00_EXECUTIVE_CONTINUOUS_MODEL_OPERATIONS.md b/docs/v12_4/00_EXECUTIVE_CONTINUOUS_MODEL_OPERATIONS.md new file mode 100644 index 00000000..8b73a90d --- /dev/null +++ b/docs/v12_4/00_EXECUTIVE_CONTINUOUS_MODEL_OPERATIONS.md @@ -0,0 +1,43 @@ +# K-ArtSell Aegis v12.4 지속 모델 운영·개선 통합 고도화 제안 + +상태: **IMPLEMENTATION_TEMPLATE / STATIC_VALIDATION_REQUIRED / BUILD_AND_DB_REHEARSAL_REQUIRED** +운영 경계: **RESEARCH_CANDIDATE_NOT_PRODUCTION · 투자자문형 우선 · 자동주문/KIS 제출 OFF** + +## 경영진 결론 + +v12.4는 기존 패키지를 다시 쓰거나 요약본으로 대체하지 않는다. v10.0의 `Baseline Preservation + Delta + Supersession + Traceability`, v12.1의 실행준비 기준, v12.3의 정책·데이터 의미 버전을 그대로 보존한다. 이번 Delta는 **모델이 시간이 지나면서 스스로 생산 설정을 바꾸는 자동학습 체계가 아니라, 동결된 증거를 정기적으로 수집·평가하고 개선 제안을 생성하여 사람이 승인하도록 하는 지속 모델 운영 체계**다. + +제품의 핵심 흐름은 다음과 같다. + +`Source/License → Raw/PIT/Revision/DQ → Frozen Evidence/VersionSet → Decision → Outcome → Daily Scorecard → Drift → Champion/Challenger → Frozen OOS/PBO/DSR → Improvement Proposal → Independent Validation → Maker-Checker Review → Shadow/Pilot` + +이 흐름 어디에도 자동 모델 승격, 자동 임계값 수정, 자동 롤백, 자동 주문 또는 KIS 제출은 없다. + +## v12.4 전략적 Delta + +1. **지속 평가 스케줄러**: 15분 Dispatcher가 DB schedule을 lease하여 일·주·월·분기 작업을 동적으로 queue에 배치한다. 각 요청은 `Dataset/Model/Config/Code/Contract VersionSet`을 동결한다. +2. **평가 주기 표준화**: J10/J11/J17은 일, J18/J24는 주, J19/J21/J22는 월, J20/J23은 분기 cadence를 기본으로 한다. +3. **개선과 승격 분리**: J21은 개선 제안만 만들고 J22는 승격 증거 패킷만 만든다. 실제 변경은 Model Change, Golden, Frozen OOS, 독립검증, maker-checker 승인 후 별도 Release다. +4. **성과지표 계약 v2**: false-exit, reentry capture, net expected utility, calibration, PBO, DSR의 분자·분모·평가창·집계·PIT·revision을 버전 관리한다. +5. **데이터 정정 재평가**: revision 발생 시 과거 결과를 overwrite하지 않고 영향 결정을 찾아 새 Outcome/Evaluation/Correction evidence를 생성한다. +6. **운영 복원력**: schedule lease, dynamic queue, idempotency, Outbox, BusinessHold, dead-letter, rollback drill, OTel 추적을 단일 운영계약으로 연결한다. +7. **FE 운영 화면**: 모델 운영 계획, 자동화 경계, drift, champion/challenger, OOS, 개선 제안, 승격 Gate를 역할별 읽기·검토 화면으로 분리한다. + +## 과유불급 통제 + +- 26개 Vertical Slice는 확대하지 않는다. 지속 모델 운영은 VS-18, VS-19, VS-20, VS-23, VS-25에 귀속한다. +- 전면 Event Sourcing, 조기 Microservice, 범용 Workflow Engine, AutoML, 실시간 온라인 학습을 도입하지 않는다. +- 모든 테이블을 불변으로 만들지 않는다. Evidence/Observation/Review는 append-only, schedule lease와 운영 상태는 명시적 mutable state로 분리한다. +- Drift 임계값, false-exit 정의, 보존기간처럼 첨부 근거가 부족한 항목은 `DECISION_REQUIRED`로 남긴다. + +## 완료 정의 + +v12.4의 완료는 파일 존재가 아니다. 다음 증거가 연결되어야 한다. + +`Source → Requirement → Schedule/Metric Contract → API/DB/Job/UI → Test → PR → Release Evidence → Operating Evidence` + +현재 패키지는 정적 검증과 템플릿 제공 단계이며, .NET 10 실빌드·PostgreSQL migration rehearsal·pnpm frozen build·252거래일 Shadow는 별도 승인 환경에서 수행해야 한다. + + +### v12.4 request lifecycle audit clarification +`evaluation.model_operation_request`는 실행 상태와 시각을 트랜잭션으로 갱신할 수 있는 lifecycle aggregate다. 모든 상태 전이는 `evaluation.model_operation_status_event`에 append-only로 기록하여 실행 이력과 재처리 증거를 보존한다. diff --git a/docs/v12_4/01_SOURCE_COVERAGE_MATRIX.csv b/docs/v12_4/01_SOURCE_COVERAGE_MATRIX.csv new file mode 100644 index 00000000..93aff63a --- /dev/null +++ b/docs/v12_4/01_SOURCE_COVERAGE_MATRIX.csv @@ -0,0 +1,9 @@ +Attachment,Bytes,SHA256,Role,V12_4_Status,V12_4_Use,Mutation +K-ArtSell_12_2_complete_package(1).zip,2513047,1e9df605a91f227fb5ff4ea057e55f4319e62060fbaf8e64551756ee2931c5ea,연구 코드·CSV·정량 감사·구성안 기준선,RETAINED_AS_ORIGINAL,기준선 보존; 지속 모델 운영 Delta만 추가,NONE +K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx,64063,eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3,v12.1 실행준비·202 WBS·기술부채 기준,RETAINED_AS_ORIGINAL,기준선 보존; 지속 모델 운영 Delta만 추가,NONE +K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,402134,d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6,최상위 비회귀·26 Slice·J01~J12·36개월 운영 기준,RETAINED_AS_ORIGINAL,기준선 보존; 지속 모델 운영 Delta만 추가,NONE +KArtSell_Aegis_v11_1_hardening(1).zip,89397,01b3d3025dfb3a6cafcff4d751851240a6087c2329e5c1472ec31703f209ccbd,보안·불변성·기술부채 하드닝 Delta,RETAINED_AS_ORIGINAL,기준선 보존; 지속 모델 운영 Delta만 추가,NONE +KArtSell_Aegis_v12_1_execution_ready_complete(1).zip,28233180,e5f9896474f32706d28df29cbdb5e3e74dbcc983e74c73f7067c377ee7aea260,실행준비 누적 구현 패키지,RETAINED_AS_ORIGINAL,기준선 보존; 지속 모델 운영 Delta만 추가,NONE +KArtSell_Aegis_v12_2_strategic_complete(1).zip,34363575,482cf8caf9fd37c54cfc99797b450d7b7c334df7d5c982e6d391f9b5e9994d74,전략적 통합 고도화·231 WBS 기준,RETAINED_AS_ORIGINAL,기준선 보존; 지속 모델 운영 Delta만 추가,NONE +KArtSell_Aegis_v12_3_delivery_hardening_complete(1).zip,68284150,f03c4372507d658bc7e621acf3a7ad13af29428a701226e5ea572290424420a9,의미 버전·정책계약·250 WBS 기준선,RETAINED_AS_ORIGINAL,기준선 보존; 지속 모델 운영 Delta만 추가,NONE +KArtSell_v11_implementation_acceleration(1).zip,56738,2bd5713b98104bf7ac45362105d9b3175d5ca818c06753e572aaf79a936658a2,최초 .NET/Vue walking skeleton,RETAINED_AS_ORIGINAL,기준선 보존; 지속 모델 운영 Delta만 추가,NONE diff --git a/docs/v12_4/02_CONTINUOUS_MODEL_LIFECYCLE.md b/docs/v12_4/02_CONTINUOUS_MODEL_LIFECYCLE.md new file mode 100644 index 00000000..bb9758bc --- /dev/null +++ b/docs/v12_4/02_CONTINUOUS_MODEL_LIFECYCLE.md @@ -0,0 +1,53 @@ +# 지속 모델 평가·개선 생명주기 + +## 1. 상태기계 + +`RESEARCH → CHALLENGER → SHADOW → CANDIDATE → APPROVED → RETIRED/ROLLED_BACK` + +상태 변경은 이벤트와 승인 기록으로만 수행한다. 스케줄러는 상태를 변경하지 않는다. 스케줄러가 생성할 수 있는 것은 평가 요청, 관측값, 평가 스냅샷, 개선 제안, 검토 패킷, 롤백 훈련 증거뿐이다. + +## 2. 일일 루프 + +1. J10이 만기가 도래한 1/5/20/63/126/252 거래일 Outcome을 계산한다. +2. J11이 운영 무결성, calibration, 매수·매도·재진입, 비용후 기대효용을 cohort별로 집계한다. +3. J17이 승인 baseline 대비 Data/Feature/Prediction/Calibration drift를 평가한다. +4. 결측·지연·정의 불일치가 있으면 `BUSINESS_HOLD`; 계산 오류나 무결성 위반은 `FAIL/QUARANTINED`로 분리한다. + +## 3. 주간 루프 + +- J18은 Champion과 Challenger를 동일 Dataset, Cost, Cohort, Window로 비교한다. +- J24는 source revision이 영향을 주는 Decision/Outcome을 찾아 재평가 제안을 만든다. +- 비교 표본이 다르거나 VersionSet이 불일치하면 결과를 승격 근거로 사용하지 않는다. + +## 4. 월간 루프 + +- J19는 동결 manifest로 Walk-forward OOS를 재현한다. +- J21은 Scorecard, Drift, Attribution, Data Gap, 기술부채를 근거로 개선 제안을 만든다. +- J22는 승격 후보가 있을 때 Gate 증거 패킷을 만든다. +- 개선 제안은 `DATA_REMEDIATION`, `FEATURE_REVIEW`, `THRESHOLD_REVIEW`, `POLICY_REFACTORING`, `CALIBRATION_REVIEW`, `RISK_LIMIT_REVIEW`, `TECH_DEBT_REPAYMENT`으로 분류한다. + +## 5. 분기 루프 + +- J20은 전체 실험 원장에 대해 CSCV/PBO/DSR, parameter stability, block bootstrap, 비용 2배 stress를 수행한다. +- J23은 승인 Champion과 fallback manifest를 사용해 rollback drill을 수행한다. +- 독립 검증자와 운영 Secondary가 실제로 수행한 evidence가 없으면 Gate는 통과하지 않는다. + +## 6. 개선 제안 처리 + +`DRAFT → REVIEW_REQUIRED → APPROVED_FOR_RESEARCH / REJECTED / EXPIRED` + +`APPROVED_FOR_RESEARCH`는 생산 승격이 아니다. 연구 branch에서만 변경을 허용하며, Model Change 문서, Golden, OOS, 보안·데이터 영향, rollback을 다시 작성한다. + +## 7. 승격 Gate + +필수 최소조건은 첨부 기준을 보존한다. + +- Shadow 252거래일 이상, 서로 다른 시장국면 2개 이상 +- 운영 무결성 오류 0 +- 비용후 기대효용 양수와 calibration 안정 +- false-exit 연 2% 이하와 reentry capture 65% 이상 +- PBO 20% 이하, DSR 95% 이상 +- 비용 2배에서도 기대효용 양수 +- 독립검증, 투자위, 리스크, 준법, 보안, 운영 승인 + +지표 정의가 미승인인 경우 수치가 좋아도 Gate는 `HOLD`다. diff --git a/docs/v12_4/03_SCHEDULER_AND_CALENDAR_CONTRACT.md b/docs/v12_4/03_SCHEDULER_AND_CALENDAR_CONTRACT.md new file mode 100644 index 00000000..0ee2d13f --- /dev/null +++ b/docs/v12_4/03_SCHEDULER_AND_CALENDAR_CONTRACT.md @@ -0,0 +1,36 @@ +# Scheduler·시장캘린더·재처리 계약 + +## Dispatcher 패턴 + +Hangfire Recurring Job은 `model-operations-dispatcher-v1` 하나만 15분마다 실행한다. Dispatcher는 `evaluation.model_operation_schedule`에서 due row를 `FOR UPDATE SKIP LOCKED`로 lease하고 작업별 queue에 enqueue한다. + +- lease: 14분 +- batch limit: 50 +- schedule key: `operationCode + scopeKey + scheduleVersion` +- request idempotency: `operationCode + scopeKey + scheduleVersion + due timestamp` +- queue: q-evaluation, q-research, q-control, q-backfill + +이 구조는 시장별·모델별 recurring job 난립을 막고 schedule 변경 이력을 DB와 계약 파일에서 추적한다. + +## 거래일·DST 처리 + +v12.4 코드 템플릿은 단순 cadence를 제공하지만 생산 구현은 `MarketCalendar`가 다음 조건을 판정해야 한다. + +- KRX, NYSE, NASDAQ의 휴장·반일장·DST +- 시장 종가와 source data completeness +- `published_at` 이후 최초 tradable session +- 동일 session 재실행 idempotency +- 장기 장애 후 catch-up 한도와 우선순위 + +시장 캘린더 구현 전에는 시간대 hard-code를 생산 기준으로 사용하지 않는다. 이는 TD-042로 차단한다. + +## 오류 분류 + +- `TRANSIENT`: 네트워크·DB 일시 오류. 승인 backoff로 제한 재시도. +- `BUSINESS_HOLD`: 승인 Dataset/Model/Metric Definition 또는 표본 미충족. 재시도 폭주 금지. +- `QUARANTINED`: PIT/DQ/VersionSet/무결성 위반. 수동 승인 전 후속작업 차단. +- `POISON`: 동일 입력 반복 실패. dead-letter와 Runbook 실행. + +## 재처리 + +재처리는 현재 row overwrite가 아니다. 새 request, observation, snapshot, proposal을 생성하고 before/after DatasetId와 content hash를 연결한다. 대량 backfill은 승인된 scope, through-watermark, dry-run diff가 있어야 한다. diff --git a/docs/v12_4/04_ALGORITHM_IMPROVEMENT_GOVERNANCE.md b/docs/v12_4/04_ALGORITHM_IMPROVEMENT_GOVERNANCE.md new file mode 100644 index 00000000..84364464 --- /dev/null +++ b/docs/v12_4/04_ALGORITHM_IMPROVEMENT_GOVERNANCE.md @@ -0,0 +1,43 @@ +# 알고리즘 지속 개선·보완·고도화 거버넌스 + +## 고정 불변조건 + +매도 우선순위는 다음을 유지한다. + +`HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION/LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION` + +상위 위험은 하위 점수로 상쇄하지 않는다. Hard impairment는 자동 재진입 금지다. 비가치훼손 매도는 ReentryWatch, 새 CycleId·Lot, 단계 간 10거래일, 126거래일 만료를 유지한다. + +## 개선 후보 생성 기준 + +J21은 다음 근거가 있을 때만 제안을 만든다. + +- Data gap 또는 source revision이 성과 왜곡을 유발 +- calibration, drift, false-exit, reentry delay가 승인 baseline에서 악화 +- 동일 비용·cohort에서 Challenger가 일관된 우위 +- OOS/PBO/DSR/cost stress가 취약점을 확인 +- 반복 운영 오류나 기술부채가 모델 품질을 방해 + +제안에는 문제, 원인 가설, 근거, 반대증거, 기대효과, 위험, 필요한 데이터, 필수 테스트, Owner, 만료일이 포함되어야 한다. + +## 금지 + +- 한 번의 월간 성과나 단일 종목 승자를 근거로 임계값 변경 +- 적중률만 최적화 +- 전체 실험 시도를 숨긴 채 최고 결과만 제출 +- 최신 revision을 과거 시점에 소급 적용 +- AI가 source 없이 팩터·수식·threshold를 생성 +- 자동 코드 PR, 자동 merge, 자동 model/config activation + +## 정공법 변경 절차 + +1. `DECISION_REQUIRED` 해소 +2. Model Change 문서와 정책/지표 계약 버전 증가 +3. Characterization/Golden 작성 +4. 연구 branch 구현 +5. Frozen OOS, cost2x, missing/delisting/CA/FX stress +6. Champion/Challenger Shadow +7. 독립검증 +8. maker-checker 승인 +9. 제한적 Shadow/Pilot Release +10. Outcome 관측과 rollback 준비 diff --git a/docs/v12_4/05_DATA_EVIDENCE_AND_HISTORY.md b/docs/v12_4/05_DATA_EVIDENCE_AND_HISTORY.md new file mode 100644 index 00000000..d0f360e3 --- /dev/null +++ b/docs/v12_4/05_DATA_EVIDENCE_AND_HISTORY.md @@ -0,0 +1,31 @@ +# 데이터 정합성·증거·이력 실행계약 + +## 계층 + +- L0 Source Catalog/License/SLA +- L1 Raw payload/event/published/ingested/hash +- L2 Canonical PIT/revision/valid time/tradable session +- L3 DQ/Quarantine/Lineage/Dataset Manifest +- L4 Feature/Forecast/Risk/Evidence VersionSet +- L5 Decision/Review/Publish/Outcome/Evaluation +- L6 Read Model/Projection Version/Watermark/Staleness +- L7 Backtest/ModelCard/Promotion/Release Evidence + +## 정규화 + +Dataset Manifest, Model Version, Metric Definition, Schedule, Request, Observation, Proposal, Review를 분리한다. 동일 의미를 여러 JSON blob에 중복 저장하지 않고 FK와 hash로 연결한다. 금융 원장과 평가 관측은 source key와 version key를 가진다. + +## 역정규화 + +운영 대시보드용 cohort scorecard와 model health view만 역정규화한다. ProjectionVersion, SourceWatermark, BuiltAt, StaleAt, Rebuild 명령, diff 검증이 필수다. + +## 불변성과 mutable state 구분 + +- append-only: ModelOperationRequest, MetricObservation, EvaluationSnapshot, ImprovementProposal 원문, Promotion Review 결정, Rollback Drill evidence +- mutable: schedule `next_due_at`, lease, enabled, dashboard projection checkpoint + +정정은 원문 삭제가 아니라 새 observation/snapshot과 correction/supersession link로 처리한다. + + +### v12.4 request lifecycle audit clarification +`evaluation.model_operation_request`는 실행 상태와 시각을 트랜잭션으로 갱신할 수 있는 lifecycle aggregate다. 모든 상태 전이는 `evaluation.model_operation_status_event`에 append-only로 기록하여 실행 이력과 재처리 증거를 보존한다. diff --git a/docs/v12_4/06_BE_FE_HANGFIRE_IMPLEMENTATION.md b/docs/v12_4/06_BE_FE_HANGFIRE_IMPLEMENTATION.md new file mode 100644 index 00000000..aaea21fa --- /dev/null +++ b/docs/v12_4/06_BE_FE_HANGFIRE_IMPLEMENTATION.md @@ -0,0 +1,51 @@ +# BE·FE·Hangfire 구현 표준 + +## Backend + +새 `KArtSell.Modules.ModelOperations` 모듈은 다음 책임만 가진다. + +- Domain: cadence, automation mode, promotion evidence gate +- Application: 승인 VersionSet 조회, 평가 request 생성 +- Infrastructure: Dapper schedule lease, request+Outbox transaction +- Scheduling: 15분 dispatcher와 queue dispatch +- Feature: 운영 계획 조회 API + +실제 Outcome, Drift, OOS, PBO/DSR 계산은 VS-18/19/20의 별도 handler로 구현한다. Scheduler 내부에 퀀트 수식을 넣지 않는다. + +## SOLID 적용 + +- SRP: Dispatcher는 due job 배치만, evaluator는 계산만, reviewer는 승인만 수행한다. +- OCP: `ModelOperationRegistry`와 operation handler 계약으로 작업 추가. reflection plugin framework는 금지한다. +- LSP: evaluator 교체 시 PIT, 단위, window, idempotency contract test를 통과한다. +- ISP: ContextReader, ScheduleRepository, RequestRepository를 좁은 port로 유지한다. +- DIP: Domain은 Hangfire, Dapper, Npgsql, FastEndpoints를 참조하지 않는다. + +## Frontend + +`/ops/model-operations`는 운영 계획과 자동화 경계를 먼저 제공한다. 후속 화면은 다음 단위로 컴포넌트화한다. + +- AutomationBoundaryPanel +- ModelOperationTable +- MetricDefinitionBadge +- DriftObservationPanel +- ChampionChallengerComparison +- FrozenEvidenceVersionSet +- ImprovementProposalReview +- PromotionGatePanel +- RollbackDrillEvidence + +TanStack Query는 서버 상태, Pinia는 세션·권한·UI 선호, vue-router는 scope/cohort/window/filter를 소유한다. 모든 response는 Zod runtime validation 후 사용한다. + +## Hangfire + +- Dispatcher: q-control, 15분, 동시실행 금지 +- Evaluation: q-evaluation +- Frozen research: q-research +- Governance packet/drill: q-control +- Revision replay: q-backfill + +연구 queue가 고객 추천 SLA를 침범하지 않도록 worker/connection/resource quota를 분리한다. + + +### v12.4 request lifecycle audit clarification +`evaluation.model_operation_request`는 실행 상태와 시각을 트랜잭션으로 갱신할 수 있는 lifecycle aggregate다. 모든 상태 전이는 `evaluation.model_operation_status_event`에 append-only로 기록하여 실행 이력과 재처리 증거를 보존한다. diff --git a/docs/v12_4/06_MODEL_EVALUATION_METRIC_CATALOGUE.csv b/docs/v12_4/06_MODEL_EVALUATION_METRIC_CATALOGUE.csv new file mode 100644 index 00000000..09491d37 --- /dev/null +++ b/docs/v12_4/06_MODEL_EVALUATION_METRIC_CATALOGUE.csv @@ -0,0 +1,10 @@ +Metric_Code,Definition_Version,Purpose,Numerator,Denominator,Window,Aggregation,Threshold_or_Gate,PIT_Revision_Rule,Decision_Status +OPERATIONAL_INTEGRITY_ERRORS,2,운영 무결성,duplicate+lookahead+unauthorized publish+critical reconciliation+immutable violation,evaluation run,daily,sum,=0,original event time and correction lineage,APPROVED_BASELINE +PREDICTION_CALIBRATION,2,P10/P50/P90 보정,observed coverage or probabilistic loss,eligible predictions,20/63/126/252 trading days,cohort with CI,approved baseline 대비 안정,frozen prediction and revised outcome separated,DESIGN_PROPOSAL +NET_EXPECTED_UTILITY,2,비용후 의사결정 효용,return/carry/risk/impairment/portfolio risk/liquidity net of fee/tax/FX/slippage/reentry loss,decision or cohort,20/63/126/252 trading days,mean and lower CI,>0; opportunity lower bound >0,valid-time cost schedules,SOURCE_BASELINE +FALSE_EXIT_ANNUAL_RATE,2,비가치훼손 매도 후 후회 비용,adverse-regret exits under approved rule,eligible soft exits with complete data,"versioned, proposed 63/126 days",annualized cohort ratio,<=2%,no overwrite; delisting and missing rules versioned,DECISION_REQUIRED +REENTRY_CAPTURE_RATE,2,재진입 옵션 포착,valid stage-ready within 126 trading days,eligible non-impairment exits,126 trading days,cohort ratio,>=65%,new Cycle/Lot and unique stage,SOURCE_BASELINE +PBO,1,과최적화 위험,CSCV IS winners that fail OOS,all approved CSCV combinations,quarterly/promotion,probability,<=20%,complete experiment registry required,SOURCE_BASELINE +DSR,1,다중검정 조정 성과,deflated performance evidence,approved experiment registry,quarterly/promotion,probability/confidence,>=95%,frozen return/cost series,SOURCE_BASELINE +DOUBLE_COST_UTILITY,1,비용 민감도,net utility under 2x fee/tax/FX/slippage scenario,same OOS cohort,monthly/quarterly,cohort mean and lower CI,>0,same dataset/model/config/code,SOURCE_BASELINE +DRIFT_DATA_FEATURE_PREDICTION,1,drift 조기 경보,approved drift statistics,approved baseline and current sample,daily/weekly,by market/asset/cohort,DECISION_REQUIRED,baseline/content hash mandatory,DECISION_REQUIRED diff --git a/docs/v12_4/07_SLICE_CATALOGUE.csv b/docs/v12_4/07_SLICE_CATALOGUE.csv new file mode 100644 index 00000000..aeefeb1e --- /dev/null +++ b/docs/v12_4/07_SLICE_CATALOGUE.csv @@ -0,0 +1,27 @@ +Slice_ID,Slice,Module,Sprint,Weeks,Gate,Requirement_ID,Endpoint_ID,DB_ID,Job_ID,UI_ID,Test_ID,User_Result,Dependency,Status,V12_2_Delta +VS-00,PlatformBootstrap,Host/BuildingBlocks,S0,W1-2,G0,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,빌드·마이그레이션·관제 가능한 단일 배포 골격,-,PLANNED,"v12.3: deterministic scaffolder, contract registry, CI validator/current attachment coverage" +VS-01,ManageIdentityAndRoles,IdentityAccess,S1,W3-4,G1-A,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,MFA·RBAC·업무분장과 승인 경계,VS-00,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-02,SynchronizeSecurityMaster,SecurityMaster,S1,W3-4,G1-A,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,상장·상폐·상품구조·거래가능성의 PIT 기준,VS-00,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-03,IngestMarketDataPIT,MarketData,S2,W5-6,G1-B,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,원시·조정 OHLCV·FX·금리의 revision 적재,VS-02,PLANNED,"PIT cutoff enforcement, source/license checksum, replay contract" +VS-04,ApplyCorporateActions,SecurityMaster,S2,W5-6,G1-B,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,분할·배당·증자·합병·상폐의 가격·수량·원가 일관성,"VS-02,VS-03",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-05,IngestFundamentalsPIT,FundamentalsPIT,S3,W7-8,G1,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,공시·재무·컨센서스 공개시각과 정정 이력,VS-02,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,S3,W7-8,G1,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,계좌·시장·상품별 Fee/Tax/FX valid-time 계약,VS-02,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-07,ManageClientIPS,ClientAdvisory,S6,W13-14,MVP-A,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,고객 목표·위험성향·제한상품의 버전 관리,VS-01,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-08,MaintainPortfolioLedger,PortfolioRisk,S3,W7-8,G1,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,현금·체결·Lot·Cycle 불변 원장과 대사 기준,"VS-02,VS-06",PLANNED,Security/Lot weight separation and immutable ledger semantics +VS-09,BuildEvidenceSnapshot,ResearchFactors,S4,W9-10,G2-A,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Dataset/Model/Config/Code SHA가 동결된 Evidence,"VS-03,VS-04,VS-05,VS-06",PLANNED,Evidence completeness grade and VersionSet hash +VS-10,GenerateSellDecision,SignalEngine,S4,W9-10,G2-A,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,우선순위가 보존된 HOLD/부분매도/전량매도 결정,"VS-08,VS-09,VS-13",PLANNED,"v12.3: centralized policy contract, zero-ratio opportunity fail-closed, semantics v2 context gate" +VS-11,ManageReentryWatch,SignalEngine,S5,W11-12,G2,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,비가치훼손 매도의 재진입 계약·단계·만료,VS-10,PLANNED,Reentry stage uniqueness and cycle/lot reset evidence +VS-12,RankBuyCandidates,ValuationForecast,S10,W21-22,Portfolio Gate,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위,"VS-03,VS-05,VS-06,VS-09",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-13,CalculatePortfolioRisk,PortfolioRisk,S9,W19-20,Portfolio-A,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,ES·집중·상관·자본바닥 위험 스냅샷,"VS-03,VS-08",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-14,GenerateDailyRecommendations,ClientAdvisory,S7,W15-16,MVP-B,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지,"VS-07,VS-10,VS-12,VS-13",PLANNED,Run-level idempotency and partial-failure quarantine +VS-15,ReviewRecommendation,ClientAdvisory,S7,W15-16,MVP-B,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,maker-checker 승인·보류·기각과 낙관적 동시성,VS-14,PLANNED,maker-checker concurrency and review evidence +VS-16,PublishClientAdvice,ClientAdvisory,S8,W17-18,G3,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,승인·유효·데이터 정상 제안만 고객 공개,VS-15,PLANNED,publish snapshot hash and staleness block +VS-17,RecordClientDecision,ClientAdvisory,S8,W17-18,G3,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,고객 수락·거절·보류와 attribution 연결,VS-16,PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,S8,W17-18,G3,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,1/5/20/63/126/252일 결과·매도·재진입 품질 평가,"VS-10,VS-11,VS-16,VS-17",PLANNED,v12.3: versioned outcome metric registry; Quant/Risk approval remains required; v12.4 continuous-model-operations integration +VS-19,RunFrozenBacktest,BacktestingEvaluation,S5,W11-12,G2,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현,"VS-03,VS-04,VS-05,VS-06,VS-09",PLANNED,frozen manifest/environment lock and cross-language golden; v12.4 continuous-model-operations integration +VS-20,PromoteModelVersion,GovernanceAudit,S11,W23-24,G4-A,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,모델 승격 증거·승인·롤백·챔피언/챌린저,"VS-18,VS-19",PLANNED,v12.1 contract retained; implementation when Ready Gate passes; v12.4 continuous-model-operations integration +VS-21,BuildRebalanceProposal,PortfolioRisk,S9,W19-20,Portfolio-A,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,비용·세금·위험예산·제약을 만족하는 리밸런싱,"VS-07,VS-08,VS-12,VS-13",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-22,SuggestReplacementProducts,PortfolioRisk,S10,W21-22,Portfolio Gate,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,적합성·유동성·비용후 기회우위 대체상품 비교,"VS-07,VS-12,VS-13",PLANNED,v12.1 contract retained; implementation when Ready Gate passes +VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,S12,W25-26,Pilot-A,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,브로커·내부 주문·체결·보유·현금 break와 승인 정정,"VS-08,VS-16",PLANNED,reconciliation break workflow and approved correction +VS-24,ReportAndNotify,ReportingNotifications,S11,W23-24,G4-A,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,고객 리포트·SignalR·Telegram 운영 경보,"VS-16,VS-18",PLANNED,v12.1 contract retained; implementation when Ready Gate passes; v12.4 continuous-model-operations integration +VS-25,AuditAndKillSwitch,GovernanceAudit,S13,W27-28,G5,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,입력→결정→승인→공개→실행→평가 추적과 단계별 차단,"VS-01,VS-16,VS-20,VS-23",PLANNED,"capability guard, audit correction, kill-switch rehearsal; v12.4 continuous-model-operations integration" diff --git a/docs/v12_4/08_CONTINUOUS_MODEL_JOB_CATALOGUE.csv b/docs/v12_4/08_CONTINUOUS_MODEL_JOB_CATALOGUE.csv new file mode 100644 index 00000000..4f5f6473 --- /dev/null +++ b/docs/v12_4/08_CONTINUOUS_MODEL_JOB_CATALOGUE.csv @@ -0,0 +1,11 @@ +Job_ID,Name,Cadence,Trigger_or_Precondition,Queue,Automation_Mode,Frozen_Context,Output,Primary_Owner,Secondary,Gate,Failure_Mode,Status +J10,OutcomeEvaluationRun,DAILY,market session closed and total-return data complete,q-evaluation,EVALUATION_ONLY,Dataset/Model/Config/Code/Contract,1/5/20/63/126/252 OutcomeObservation,Quant/Ops,Data/QA,G3,BUSINESS_HOLD on missing PIT/TR,TEMPLATE +J11,DailyScorecardBuild,DAILY,J10 due windows complete,q-evaluation,EVALUATION_ONLY,Metric definition/cohort versions,daily scorecard and alerts,Quant/Ops,Risk/SRE,G3,HOLD on sample/lag/definition mismatch,TEMPLATE +J17,DriftDetectionRun,DAILY,approved baseline and minimum sample available,q-evaluation,EVALUATION_ONLY,baseline manifest/version,data/feature/prediction/calibration drift,Quant/Risk,Data/SRE,G4,HOLD only; no automatic model change,TEMPLATE +J18,ChampionChallengerEvaluation,WEEKLY,same frozen dataset/cost/cohort available,q-evaluation,EVALUATION_ONLY,paired model VersionSets,paired comparison with confidence intervals,Quant/Risk,IndependentValidation/QA,G4,QUARANTINE on cohort mismatch,TEMPLATE +J19,FrozenOosBacktest,MONTHLY,dataset rights/hash/seed/environment manifest approved,q-research,EVALUATION_ONLY,frozen research manifest,walk-forward OOS artifacts,Quant/Data,QA/Risk,G4,FAIL artifact retained,TEMPLATE +J20,RobustnessPboDsrRun,QUARTERLY,complete experiment registry and OOS outputs,q-research,EVALUATION_ONLY,experiment registry/version,PBO/DSR/stability/cost2x report,Quant/Risk,IndependentValidation,G4,HOLD on incomplete attempt ledger,TEMPLATE +J21,ModelImprovementProposalBuild,MONTHLY,scorecard/drift/attribution/debt evidence complete,q-research,PROPOSAL_ONLY,all cited evidence hashes,review-required improvement proposals,Quant Lead,Risk/Architect,G4,no code/config/model mutation,TEMPLATE +J22,PromotionEvidenceReviewBuild,MONTHLY,candidate requests review and all gates calculated,q-control,PROPOSAL_ONLY,promotion-gate v1 evidence bundle,maker-checker review packet,Risk/InvestmentCommittee,Compliance/QA,G4,PENDING/HOLD; no activation,TEMPLATE +J23,ModelRollbackDrill,QUARTERLY,approved champion/fallback manifests and runbook,q-control,DRILL_ONLY,champion/fallback VersionSets,RTO/RPO and restore evidence,SRE/Risk,Module Owner/QA,G5,no real order submission,TEMPLATE +J24,DataRevisionRevalidation,WEEKLY+EVENT,approved revision lineage and impact index,q-backfill,EVALUATION_ONLY,before/after dataset versions,replay impact and correction proposal,Data/Quant,DBA/QA,G3,no overwrite; correction evidence only,TEMPLATE diff --git a/docs/v12_4/09_DETAILED_WBS_MASTER.csv b/docs/v12_4/09_DETAILED_WBS_MASTER.csv new file mode 100644 index 00000000..ec88481c --- /dev/null +++ b/docs/v12_4/09_DETAILED_WBS_MASTER.csv @@ -0,0 +1,289 @@ +WBS_ID,Sprint,Weeks,Slice_ID,Slice,Module,Workstream,Requirement_ID,API_ID,DB_Migration_ID,Job_Event_ID,UI_ID,Test_ID,Task,Artifact,Acceptance_Evidence,Primary_Owner,Secondary,PD,Dependency,Gate,Evidence_Class,Risk,Status +AEG-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,Cross,Version Coverage Matrix 고도화,Version Coverage Matrix·Supersession Registry,모든 첨부와 v10/v12/v12.1의 Retained/Improved/Superseded 상태 100%,PM/Architect,Architect/QA,5,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,Cross,global.json 고도화,global.json·Directory.Packages·node/packageManager·lock 정책,승인 runner에서 dotnet restore/build/test 및 pnpm frozen build 재현,DevOps,Architect/QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,Cross,모듈/namespace/schema/API 금지 의존 Architecture tests 고도화,모듈/namespace/schema/API 금지 의존 Architecture tests,"Domain 기술의존 0, 모듈 직접 DB 접근 0, ID 중복 0",Architect/QA,Architect/QA,7,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-004,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/re-run/failure 복구 rehearsal 고도화,DbUp fresh/upgrade/re-run/failure 복구 rehearsal,PostgreSQL 승인 버전에서 4 시나리오와 checksum 변경 차단 통과,DBA/BE,Architect/QA,8,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-005,S0,W1-2,Cross,Cross-cutting,Security,SEC,REQ-SEC-BASE,Cross,Cross,Cross,Cross,Cross,"OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed 고도화","OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed","비개발 무인증 접근 0, secret/log/prompt 노출 0",Security/BE,Architect/QA,7,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,ASYNC,REQ-ASYNC-001,Cross,Cross,Cross,Cross,Cross,Outbox publisher 고도화,Outbox publisher·Inbox lease·dead-letter·replay,"duplicate 0, crash-before/after-publish 시나리오와 replay hash 통과",BE/SRE,Architect/QA,10,AEG-X-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-007,S0,W1-2,Cross,Cross-cutting,Observability,OPS,REQ-OBS-001,Cross,Cross,Cross,Cross,Cross,Serilog/OTel correlation 고도화,Serilog/OTel correlation·metric naming·Telegram redaction,"trace→job→decision→outbox 연결, PII redaction test 통과",SRE/Security,Architect/QA,7,AEG-X-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-008,S0,W1-2,Cross,Cross-cutting,API Contract,CONTRACT,REQ-API-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact 고도화,OpenAPI artifact·ProblemDetails taxonomy·FE contract generation,OpenAPI diff와 breaking change approval 없이는 Release 차단,BE/FE Architect,Architect/QA,8,AEG-X-003,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-01,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,GOV,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,정책·범위·실패상태 계약 확정,"REQ-PLAT-001, VS-00 SLICE_SPEC, ADR/Decision Log",사용자 결과 '빌드·마이그레이션·관제 가능한 단일 배포 골격'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-02,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DATA,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,데이터 시점·스키마·정합성 계약,"MIG-0000/0013, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-00-01,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-03,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DOMAIN,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,도메인 불변조건·상태전이 구현,"src/Modules/Host/BuildingBlocks/PlatformBootstrap/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-00-02,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-04,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,BE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vertical Slice API/Application/SQL 구현,HEALTH-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-00-03,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-05,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,ASYNC,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-00-04,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-06,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,FE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vue feature·Zod·Query·컴포넌트 구현,UI-PLAT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-00-05,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-07,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,TESTOPS,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,회귀·관제·Runbook·Rollback 증거,T-ARCH-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-00-06,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-009,S1,W3-4,Cross,Cross-cutting,Data Governance,DATA,REQ-DATA-SOURCE,Cross,Cross,Cross,Cross,Cross,Source catalog/license/SLA/timezone/unit/checksum 고도화,Source catalog/license/SLA/timezone/unit/checksum,승인 없는 source가 ingestion 또는 추천으로 진입하지 않음,Data Governance,Architect/QA,8,AEG-X-001,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-01,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,GOV,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,정책·범위·실패상태 계약 확정,"REQ-IAM-001, VS-01 SLICE_SPEC, ADR/Decision Log",사용자 결과 'MFA·RBAC·업무분장과 승인 경계'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-02,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DATA,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,데이터 시점·스키마·정합성 계약,"MIG-IAM-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-01-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-03,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DOMAIN,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,도메인 불변조건·상태전이 구현,"src/Modules/IdentityAccess/ManageIdentityAndRoles/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-01-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-04,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,BE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vertical Slice API/Application/SQL 구현,IAM-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-01-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-05,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,ASYNC,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-01-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-06,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,FE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vue feature·Zod·Query·컴포넌트 구현,UI-IAM-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-01-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-07,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,TESTOPS,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,회귀·관제·Runbook·Rollback 증거,T-IAM-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-01-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-01,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,GOV,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,정책·범위·실패상태 계약 확정,"REQ-SEC-001, VS-02 SLICE_SPEC, ADR/Decision Log",사용자 결과 '상장·상폐·상품구조·거래가능성의 PIT 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-02,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DATA,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,데이터 시점·스키마·정합성 계약,"MIG-SEC-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-02-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-03,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DOMAIN,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/SynchronizeSecurityMaster/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-02-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-04,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,BE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vertical Slice API/Application/SQL 구현,"SEC-01/02,DAT-01; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-02-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-05,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,ASYNC,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Event/Job/Inbox·재처리 구현,"J01; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-02-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-06,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,FE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SEC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-02-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-07,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,TESTOPS,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,회귀·관제·Runbook·Rollback 증거,T-SEC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-02-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-010,S2,W5-6,Cross,Cross-cutting,Read Model,PROJECTION,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,projection owner/version/watermark/rebuild/staleness 고도화,projection owner/version/watermark/rebuild/staleness,"write model 직접 UI join 0, rebuild 결과 hash 동일",BE/Data,Architect/QA,8,AEG-X-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-01,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,GOV,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,정책·범위·실패상태 계약 확정,"REQ-DAT-001, VS-03 SLICE_SPEC, ADR/Decision Log",사용자 결과 '원시·조정 OHLCV·FX·금리의 revision 적재'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-02,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,데이터 시점·스키마·정합성 계약,"MIG-MD-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-03-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-03,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DOMAIN,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,도메인 불변조건·상태전이 구현,"src/Modules/MarketData/IngestMarketDataPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-03-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-04,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,BE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vertical Slice API/Application/SQL 구현,DAT-02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-03-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-05,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,ASYNC,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Event/Job/Inbox·재처리 구현,"J02; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-03-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-06,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,FE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-03-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-07,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,TESTOPS,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,회귀·관제·Runbook·Rollback 증거,T-DQ-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-03-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-01,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,GOV,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,정책·범위·실패상태 계약 확정,"REQ-CA-001, VS-04 SLICE_SPEC, ADR/Decision Log",사용자 결과 '분할·배당·증자·합병·상폐의 가격·수량·원가 일관성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-03",G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-02,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DATA,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,데이터 시점·스키마·정합성 계약,"MIG-CA-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-04-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-03,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DOMAIN,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/ApplyCorporateActions/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-04-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-04,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,BE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vertical Slice API/Application/SQL 구현,DAT-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-04-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-05,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,ASYNC,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Event/Job/Inbox·재처리 구현,"J03; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-04-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-06,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,FE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-02; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-04-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-07,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,TESTOPS,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,회귀·관제·Runbook·Rollback 증거,T-CA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-04-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-01,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,GOV,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,정책·범위·실패상태 계약 확정,"REQ-FND-001, VS-05 SLICE_SPEC, ADR/Decision Log",사용자 결과 '공시·재무·컨센서스 공개시각과 정정 이력'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-02,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DATA,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,데이터 시점·스키마·정합성 계약,"MIG-FND-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-05-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-03,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DOMAIN,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,도메인 불변조건·상태전이 구현,"src/Modules/FundamentalsPIT/IngestFundamentalsPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-05-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-04,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,BE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vertical Slice API/Application/SQL 구현,DAT-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-05-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-05,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,ASYNC,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Event/Job/Inbox·재처리 구현,"J04; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-05-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-06,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,FE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vue feature·Zod·Query·컴포넌트 구현,UI-FND-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-05-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-07,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,TESTOPS,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,회귀·관제·Runbook·Rollback 증거,T-FND-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-05-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-01,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,GOV,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,정책·범위·실패상태 계약 확정,"REQ-COST-001, VS-06 SLICE_SPEC, ADR/Decision Log",사용자 결과 '계좌·시장·상품별 Fee/Tax/FX valid-time 계약'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-02,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DATA,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,데이터 시점·스키마·정합성 계약,"MIG-COST-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-06-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-03,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DOMAIN,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainFeeTaxFxSchedule/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-06-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-04,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,BE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vertical Slice API/Application/SQL 구현,COST-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-06-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-05,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,ASYNC,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Event/Job/Inbox·재처리 구현,"J04C; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-06-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-06,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,FE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vue feature·Zod·Query·컴포넌트 구현,UI-COST-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-06-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-07,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,TESTOPS,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,회귀·관제·Runbook·Rollback 증거,T-COST-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-06-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-01,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,GOV,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,정책·범위·실패상태 계약 확정,"REQ-LED-001, VS-08 SLICE_SPEC, ADR/Decision Log",사용자 결과 '현금·체결·Lot·Cycle 불변 원장과 대사 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-06",G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-02,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DATA,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,데이터 시점·스키마·정합성 계약,"MIG-LED-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-08-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-03,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DOMAIN,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainPortfolioLedger/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-08-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-04,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,BE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vertical Slice API/Application/SQL 구현,POR-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-08-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-05,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,ASYNC,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Event/Job/Inbox·재처리 구현,"J12L; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-08-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-06,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,FE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vue feature·Zod·Query·컴포넌트 구현,UI-POR-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-08-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-07,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,TESTOPS,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,회귀·관제·Runbook·Rollback 증거,T-LED-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-08-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-011,S4,W9-10,Cross,Cross-cutting,Algorithm,GOLDEN,REQ-ALG-GOLDEN,Cross,Cross,Cross,Cross,Cross,Python↔C# Golden vector 고도화,Python↔C# Golden vector·epsilon·rounding 계약,정책 ID별 경계·우선순위·cost×2 결과 허용오차 내 동일,Quant/QA,Architect/QA,10,VS-09,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-01,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,GOV,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,정책·범위·실패상태 계약 확정,"REQ-EVD-001, VS-09 SLICE_SPEC, ADR/Decision Log",사용자 결과 'Dataset/Model/Config/Code SHA가 동결된 Evidence'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-02,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,데이터 시점·스키마·정합성 계약,"MIG-EVD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-09-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-03,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DOMAIN,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,도메인 불변조건·상태전이 구현,"src/Modules/ResearchFactors/BuildEvidenceSnapshot/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-09-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-04,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,BE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vertical Slice API/Application/SQL 구현,EVD-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-09-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-05,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,ASYNC,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Event/Job/Inbox·재처리 구현,"J06; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-09-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-06,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,FE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-09-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-07,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,TESTOPS,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,회귀·관제·Runbook·Rollback 증거,T-EVD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-09-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-01,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,GOV,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,정책·범위·실패상태 계약 확정,"REQ-SELL-001, VS-10 SLICE_SPEC, ADR/Decision Log",사용자 결과 '우선순위가 보존된 HOLD/부분매도/전량매도 결정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-09,VS-13",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-02,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DATA,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,데이터 시점·스키마·정합성 계약,"MIG-SIG-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-10-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-03,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DOMAIN,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/GenerateSellDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-10-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-04,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,BE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vertical Slice API/Application/SQL 구현,SIG-SELL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-10-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-05,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ASYNC,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Event/Job/Inbox·재처리 구현,"J08S; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-10-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-06,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SELL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-10-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-07,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,TESTOPS,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,회귀·관제·Runbook·Rollback 증거,T-SELL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-10-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-012,S5,W11-12,Cross,Cross-cutting,Research,REPRO,REQ-REPRO-001,Cross,Cross,Cross,Cross,Cross,dataset/code/config/environment manifest와 artifact hash 고도화,dataset/code/config/environment manifest와 artifact hash,"동일 manifest·seed 결과 재현, 실패 artifact 보존",Quant/Data,Architect/QA,12,AEG-X-009,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-01,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,GOV,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,정책·범위·실패상태 계약 확정,"REQ-RE-001, VS-11 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비가치훼손 매도의 재진입 계약·단계·만료'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-10,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-02,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DATA,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,데이터 시점·스키마·정합성 계약,"MIG-RE-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-11-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-03,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DOMAIN,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/ManageReentryWatch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-11-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-04,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,BE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vertical Slice API/Application/SQL 구현,RE-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-11-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-05,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ASYNC,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Event/Job/Inbox·재처리 구현,"J09; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-11-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-06,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,FE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RE-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-11-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-07,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,TESTOPS,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,회귀·관제·Runbook·Rollback 증거,T-RE-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-11-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-01,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,GOV,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,정책·범위·실패상태 계약 확정,"REQ-BKT-001, VS-19 SLICE_SPEC, ADR/Decision Log",사용자 결과 '동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06,VS-09",G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-02,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DATA,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,데이터 시점·스키마·정합성 계약,"MIG-BKT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-19-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-03,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DOMAIN,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/RunFrozenBacktest/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-19-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-04,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,BE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vertical Slice API/Application/SQL 구현,BKT-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-19-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-05,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,ASYNC,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Event/Job/Inbox·재처리 구현,"J-BKT; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-19-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-06,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,FE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BKT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-19-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-07,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,TESTOPS,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,회귀·관제·Runbook·Rollback 증거,T-BKT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-19-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-01,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,GOV,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,정책·범위·실패상태 계약 확정,"REQ-CLI-001, VS-07 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 목표·위험성향·제한상품의 버전 관리'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-02,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DATA,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,데이터 시점·스키마·정합성 계약,"MIG-CLI-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-07-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-03,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DOMAIN,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ManageClientIPS/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-07-02,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-04,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,BE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vertical Slice API/Application/SQL 구현,CLI-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-07-03,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-05,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,ASYNC,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-07-04,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-06,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,FE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLI-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-07-05,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-07,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,TESTOPS,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,회귀·관제·Runbook·Rollback 증거,T-CLI-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-07-06,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-01,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,GOV,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,정책·범위·실패상태 계약 확정,"REQ-REC-001, VS-14 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-10,VS-12,VS-13",MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-02,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DATA,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,데이터 시점·스키마·정합성 계약,"MIG-REC-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-14-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-03,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DOMAIN,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/GenerateDailyRecommendations/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-14-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-04,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vertical Slice API/Application/SQL 구현,SIG-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-14-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-05,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,ASYNC,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Event/Job/Inbox·재처리 구현,"J08; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-14-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-06,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,FE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-14-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-07,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,TESTOPS,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,회귀·관제·Runbook·Rollback 증거,T-REC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-14-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-01,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,GOV,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,정책·범위·실패상태 계약 확정,"REQ-REV-001, VS-15 SLICE_SPEC, ADR/Decision Log",사용자 결과 'maker-checker 승인·보류·기각과 낙관적 동시성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-14,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-02,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DATA,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,데이터 시점·스키마·정합성 계약,"MIG-REV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-15-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-03,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DOMAIN,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ReviewRecommendation/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-15-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-04,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,BE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vertical Slice API/Application/SQL 구현,SIG-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-15-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-05,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,ASYNC,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-06,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,FE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-15-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-07,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,TESTOPS,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,회귀·관제·Runbook·Rollback 증거,T-REV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-15-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-013,S8,W17-18,Cross,Cross-cutting,Audit,TRACE,REQ-AUDIT-E2E,Cross,Cross,Cross,Cross,Cross,Evidence→Decision→Review→Publish→Outcome trace API 고도화,Evidence→Decision→Review→Publish→Outcome trace API,"publication/decision 기준 누락 링크 0, correction event 보존",Compliance/BE,Architect/QA,8,VS-18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-01,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,GOV,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,정책·범위·실패상태 계약 확정,"REQ-PUB-001, VS-16 SLICE_SPEC, ADR/Decision Log",사용자 결과 '승인·유효·데이터 정상 제안만 고객 공개'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-15,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-02,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DATA,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,데이터 시점·스키마·정합성 계약,"MIG-PUB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-16-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-03,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DOMAIN,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/PublishClientAdvice/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-16-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-04,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vertical Slice API/Application/SQL 구현,SIG-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-16-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-05,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,ASYNC,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Event/Job/Inbox·재처리 구현,"J-PUB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-16-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-06,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,FE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-ADV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-16-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-07,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,TESTOPS,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,회귀·관제·Runbook·Rollback 증거,T-PUB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-16-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-01,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,GOV,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,정책·범위·실패상태 계약 확정,"REQ-CLD-001, VS-17 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 수락·거절·보류와 attribution 연결'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-16,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-02,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DATA,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,데이터 시점·스키마·정합성 계약,"MIG-CLD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-17-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-03,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DOMAIN,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/RecordClientDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-17-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-04,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,BE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vertical Slice API/Application/SQL 구현,SIG-06; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-17-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-05,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,ASYNC,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-17-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-06,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,FE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-17-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-07,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,TESTOPS,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,회귀·관제·Runbook·Rollback 증거,T-CLD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-17-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-01,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,정책·범위·실패상태 계약 확정,"REQ-EVA-001, VS-18 SLICE_SPEC, ADR/Decision Log",사용자 결과 '1/5/20/63/126/252일 결과·매도·재진입 품질 평가'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-10,VS-11,VS-16,VS-17",G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-02,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,데이터 시점·스키마·정합성 계약,"MIG-EVA-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-18-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-03,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DOMAIN,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/EvaluateDecisionOutcome/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-18-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-04,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vertical Slice API/Application/SQL 구현,EVA-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-05,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ASYNC,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Event/Job/Inbox·재처리 구현,"J10/J11; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-18-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-06,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVA-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-18-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-07,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,TESTOPS,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,회귀·관제·Runbook·Rollback 증거,T-EVA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-18-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-01,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,GOV,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,정책·범위·실패상태 계약 확정,"REQ-RISK-001, VS-13 SLICE_SPEC, ADR/Decision Log",사용자 결과 'ES·집중·상관·자본바닥 위험 스냅샷'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-08",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-02,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DATA,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,데이터 시점·스키마·정합성 계약,"MIG-RISK-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-13-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-03,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DOMAIN,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/CalculatePortfolioRisk/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-13-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-04,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,BE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vertical Slice API/Application/SQL 구현,POR-02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-13-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-05,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,ASYNC,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Event/Job/Inbox·재처리 구현,"J07; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-13-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-06,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,FE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RISK-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-13-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-07,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,TESTOPS,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,회귀·관제·Runbook·Rollback 증거,T-RISK-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-13-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-01,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,GOV,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,정책·범위·실패상태 계약 확정,"REQ-REB-001, VS-21 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비용·세금·위험예산·제약을 만족하는 리밸런싱'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-08,VS-12,VS-13",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-02,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DATA,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,데이터 시점·스키마·정합성 계약,"MIG-REB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-21-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-03,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DOMAIN,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/BuildRebalanceProposal/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-21-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-04,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,BE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vertical Slice API/Application/SQL 구현,REB-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-21-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-05,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,ASYNC,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Event/Job/Inbox·재처리 구현,"J-REB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-21-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-06,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,FE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REB-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-21-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-07,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,TESTOPS,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,회귀·관제·Runbook·Rollback 증거,T-REB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-21-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-01,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,GOV,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,정책·범위·실패상태 계약 확정,"REQ-BUY-001, VS-12 SLICE_SPEC, ADR/Decision Log",사용자 결과 'PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-05,VS-06,VS-09",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-02,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DATA,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,데이터 시점·스키마·정합성 계약,"MIG-BUY-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-12-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-03,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DOMAIN,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,도메인 불변조건·상태전이 구현,"src/Modules/ValuationForecast/RankBuyCandidates/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-12-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-04,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,BE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vertical Slice API/Application/SQL 구현,BUY-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-12-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-05,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,ASYNC,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Event/Job/Inbox·재처리 구현,"J08B; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-12-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-06,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,FE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BUY-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-12-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-07,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,TESTOPS,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,회귀·관제·Runbook·Rollback 증거,T-BUY-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-12-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-01,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,GOV,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,정책·범위·실패상태 계약 확정,"REQ-RPL-001, VS-22 SLICE_SPEC, ADR/Decision Log",사용자 결과 '적합성·유동성·비용후 기회우위 대체상품 비교'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-12,VS-13",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-02,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DATA,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,데이터 시점·스키마·정합성 계약,"MIG-RPL-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-22-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-03,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DOMAIN,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/SuggestReplacementProducts/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-22-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-04,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,BE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vertical Slice API/Application/SQL 구현,RPL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-22-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-05,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,ASYNC,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Event/Job/Inbox·재처리 구현,"J-RPL; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-22-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-06,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,FE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-22-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-07,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,TESTOPS,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,회귀·관제·Runbook·Rollback 증거,T-RPL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-22-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-014,S11,W23-24,Cross,Cross-cutting,Model Risk,VALIDATION,REQ-MODEL-RISK,Cross,Cross,Cross,Cross,Cross,CSCV/PBO 고도화,CSCV/PBO·DSR·block bootstrap·시도 원장,"PBO≤20%, DSR≥95%, cost×2 utility 양수 또는 승격 차단",Quant/Risk,Architect/QA,15,AEG-X-012,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-015,S11,W23-24,Cross,Cross-cutting,Shadow,EVAL,REQ-SHADOW-001,Cross,Cross,Cross,Cross,Cross,252거래일 고도화,252거래일·복수 국면 일평가 scorecard,적중률 단독 아닌 calibration/ES/false-exit/reentry/운영무결성 판정,Quant/Ops,Architect/QA,14,VS-18,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-01,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,정책·범위·실패상태 계약 확정,"REQ-MOD-001, VS-20 SLICE_SPEC, ADR/Decision Log",사용자 결과 '모델 승격 증거·승인·롤백·챔피언/챌린저'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-18,VS-19",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-02,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DATA,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,데이터 시점·스키마·정합성 계약,"MIG-MOD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-20-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-03,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DOMAIN,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/PromoteModelVersion/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-20-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-04,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,BE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vertical Slice API/Application/SQL 구현,MOD-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-20-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-05,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ASYNC,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Event/Job/Inbox·재처리 구현,"J-MOD; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-20-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-06,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-MOD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-20-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-07,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,TESTOPS,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,회귀·관제·Runbook·Rollback 증거,T-MOD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-20-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-01,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,GOV,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,정책·범위·실패상태 계약 확정,"REQ-RPT-001, VS-24 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 리포트·SignalR·Telegram 운영 경보'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-16,VS-18",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-02,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DATA,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,데이터 시점·스키마·정합성 계약,"MIG-RPT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-24-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-03,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DOMAIN,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,도메인 불변조건·상태전이 구현,"src/Modules/ReportingNotifications/ReportAndNotify/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-24-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-04,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,BE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vertical Slice API/Application/SQL 구현,RPT-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-24-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-05,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,ASYNC,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Event/Job/Inbox·재처리 구현,"J11R; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-24-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-06,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,FE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-24-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-07,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,TESTOPS,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,회귀·관제·Runbook·Rollback 증거,T-RPT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-24-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-016,S12,W25-26,Cross,Cross-cutting,Broker,CAPABILITY,REQ-KIS-OFF,Cross,Cross,Cross,Cross,Cross,KIS 주문 제출 startup/CI/runtime 차단 고도화,KIS 주문 제출 startup/CI/runtime 차단,"외부 주문 호출 0, capability override 감사·kill-switch 통과",Security/Ops,Architect/QA,7,AEG-X-005,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-01,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,GOV,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,정책·범위·실패상태 계약 확정,"REQ-RECON-001, VS-23 SLICE_SPEC, ADR/Decision Log",사용자 결과 '브로커·내부 주문·체결·보유·현금 break와 승인 정정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-16",Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-02,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,데이터 시점·스키마·정합성 계약,"MIG-EXE-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-23-01,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-03,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DOMAIN,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,도메인 불변조건·상태전이 구현,"src/Modules/ExecutionReconciliation/ReconcilePositionsAndFills/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-23-02,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-04,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,BE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vertical Slice API/Application/SQL 구현,"EXE-01/02,REC-01/02; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-23-03,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-05,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,ASYNC,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Event/Job/Inbox·재처리 구현,"J12; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-23-04,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-06,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,FE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RECON-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-23-05,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-07,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,TESTOPS,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,회귀·관제·Runbook·Rollback 증거,T-RECON-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-23-06,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-017,S13,W27-28,Cross,Cross-cutting,DR,OPS,REQ-DR-001,Cross,Cross,Cross,Cross,Cross,RPO/RTO 고도화,RPO/RTO·backup/restore·region/host failure rehearsal,"승인 RPO/RTO 내 복구, 원장·outbox·projection 대사 100%",SRE/DBA,Architect/QA,12,AEG-X-006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-01,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,GOV,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,정책·범위·실패상태 계약 확정,"REQ-GOV-001, VS-25 SLICE_SPEC, ADR/Decision Log",사용자 결과 '입력→결정→승인→공개→실행→평가 추적과 단계별 차단'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-01,VS-16,VS-20,VS-23",G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-02,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DATA,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,데이터 시점·스키마·정합성 계약,"MIG-GOV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-25-01,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-03,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DOMAIN,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/AuditAndKillSwitch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-25-02,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-04,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,BE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vertical Slice API/Application/SQL 구현,GOV-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-25-03,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-05,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,ASYNC,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Event/Job/Inbox·재처리 구현,"J-GOV; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-25-04,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-06,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,FE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-GOV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-25-05,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-07,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TESTOPS,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,회귀·관제·Runbook·Rollback 증거,T-GOV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-25-06,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-018,S14,W29-30,Cross,Cross-cutting,Performance,NFR,REQ-NFR-001,Cross,Cross,Cross,Cross,Cross,API P95 고도화,API P95·batch SLA·portfolio 규모·backfill 부하시험,개장 전 추천 SLA와 고객 API SLO가 동시에 충족,SRE/QA,Architect/QA,10,AEG-X-017,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-019,S14,W29-30,Cross,Cross-cutting,Cutover,RELEASE,REQ-CUT-001,Cross,Cross,Cross,Cross,Cross,dry-run/backfill/recon/rollback/release evidence 고도화,dry-run/backfill/recon/rollback/release evidence,"미승인 공개 0, duplicate 0, rollback 리허설과 승인 서명",PM/Ops,Architect/QA,10,AEG-X-018,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-020,S15,W31-32,Cross,Cross-cutting,Hypercare,OPS,REQ-HYP-001,Cross,Cross,Cross,Cross,Cross,P1/P2 triage 고도화,P1/P2 triage·daily reconciliation·debt burn-down,초기 안정화 Exit 기준·Owner·잔여 부채 승인,Ops/PM,Architect/QA,8,AEG-X-019,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-DOC-022,Current-session source coverage and SHA register,Source Coverage Matrix/Source Index,6 current attachments preserved byte-for-byte and hashes match,PM/Architect,QA/Compliance,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG22-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,T-CI-022,Offline-safe package manager and lockfile decision,packageManager/LOCKFILE_REQUIRED/CI guard,No silent dependency resolution; frozen install blocks until approved lock exists,DevOps,FE Lead,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,ARCH,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-ARCH-022,Module/Vertical Slice template pack,"templates/dotnet,vue,sql,hangfire",New slice can be generated without Generic Repository or controller-service duplication,Architect,BE/FE Leads,6,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-004,S0,W1-2,Cross,Cross-cutting,API,BE,REQ-API-001,API-CONTEXT-01,Cross,Cross,Cross,T-API-022,Correlation/Idempotency/ProblemDetails shared contract,request execution standard,400/401/403/409/422 and trace/idempotency rules consistent,BE Lead,QA/SRE,6,AEG-X-004,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-005,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-REHEARSAL,Cross,MIG-REHEARSAL,Cross,Cross,T-DB-022,DbUp fresh/upgrade/re-run/failure rehearsal script,scripts/rehearse_migrations.sh,Approved PostgreSQL runner produces 4 scenario artifacts,DBA,BE/DevOps,8,AEG-X-004,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-OUTBOX-001,Cross,MIG-0013,JOB-OUTBOX-01,Cross,T-OUTBOX-022,Outbox lease/dead-letter/replay hardening,outbox dispatcher template/runbook,Crash-before/after publish yields no lost message and idempotent downstream,BE/SRE,QA,10,AEG-X-006,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-007,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-INBOX-001,Cross,MIG-0013,JOB-INBOX-01,Cross,T-INBOX-022,Inbox duplicate/result-hash contract,inbox consumer template,Same consumer/message performs side effect once and replay hash is stable,BE/SRE,QA,8,AEG-X-007,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-008,S0,W1-2,Cross,Cross-cutting,Batch,JOB,REQ-JOB-001,Cross,MIG-0000,JOB-RUN-STD,UI-OPS-JOB,T-JOB-022,JobRun/Watermark/heartbeat scope standard,ReliableJob template,Concurrent duplicate is held; retry preserves scope/version/input hash,BE/SRE,QA/Data,8,AEG-X-008,G1,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-001,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,Separate security weight and lot weight,SellDecisionInput/context/migration,Lot ratio changes only lot weight; target security weight is exact,Quant/BE,DBA/QA,10,AEG-VS-10-03,G2-A,SOURCE+INFERENCE,P0,PLANNED +AEG22-VS10-002,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,Persist ordered policy evaluation trace,policy_trace_json/API schema,Applied/blocked/not-applicable reasons reproduce decision priority,BE/Quant,FE/QA,8,AEG22-VS10-001,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-003,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,QA,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-GOLDEN-022,Golden/boundary/monotonic/property vectors,unit/golden vectors,"Core clamp, survival bypass, priority and future PIT rejection pass",QA/Quant,BE,8,AEG22-VS10-002,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS10-004,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SIG-UI,SIG-RESEARCH-01,Cross,Cross,UI-SIG-01,T-FE-SIG-022,FE runtime contract for weights and policy trace,Zod schema/page/tests,Malformed response and lot>security input fail closed,FE Lead,QA/BE,5,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS09-001,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,Cross,MIG-EVD-001,J06,UI-EVD-01,T-EVD-022,Evidence completeness grade and required-field manifest,Evidence contract delta,Missing total-return/delisting/cost source downgrades or quarantines recommendation,Data/Quant,BE/QA,8,AEG-VS-09-02,G2-A,SOURCE,P0,PLANNED +AEG22-VS03-001,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-PIT-022,Enforce published_at cutoff and timezone,PIT query contract/data test,Lookahead count remains zero across replay and timezone boundaries,Data Architect,DBA/QA,8,AEG-VS-03-03,G1-B,SOURCE,P0,PLANNED +AEG22-VS03-002,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-LIC,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,Source license/SLA/checksum fail-closed gate,Source catalog contract,Unapproved/checksum-drift source cannot reach canonical/PIT layer,Data Governance,BE/Compliance,7,AEG22-VS03-001,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS08-001,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DB,REQ-LEDGER-001,POR-01,MIG-POR-001,LedgerEntryApplied,UI-POR-01,T-LEDGER-022,Lot weight derivation and reconciliation invariant,ledger/read-model contract,Lot market values equal security/account totals within tolerance,DBA/BE,Quant/QA,10,AEG-VS-08-03,G1,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS11-001,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ALG,ALG-REENTRY-001,SIG-02,MIG-SIG-REENTRY,J09,UI-SIG-02,T-REENTRY-022,Reentry stage uniqueness and cycle reset proof,state transition/golden tests,Each stage once; new CycleId/Lot; old floor/cost/high not reused,Quant/BE,QA/DBA,9,AEG-VS-11-03,G2,SOURCE,P0,PLANNED +AEG22-VS14-001,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-ADV-001,ADV-01,MIG-ADV-001,J08,UI-ADV-01,T-ADV-RUN-022,Run isolation and partial-failure quarantine,run manifest/error partition,One portfolio failure cannot publish invalid advice to another,BE Lead,SRE/QA,10,AEG-VS-14-04,MVP-B,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS15-001,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,SEC,REQ-REV-001,ADV-02,MIG-ADV-002,RecommendationReviewed,UI-ADV-02,T-REV-022,Maker-checker optimistic concurrency proof,review version/ETag tests,Self-approval and stale update rejected with audit evidence,BE/Security,FE/QA,8,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS16-001,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,ADV-03,MIG-ADV-003,AdvicePublished,UI-CLI-01,T-PUB-022,Publish snapshot hash and staleness gate,publication immutable snapshot,Expired/revised/quarantined evidence blocks publish,BE/Compliance,QA/FE,9,AEG-VS-16-04,G3,SOURCE,P0,PLANNED +AEG22-VS18-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-DEF-022,Version false-exit/gain-capture definitions,metric definition registry,Historical scorecard reproducible by metric version/revision,Quant/Risk,Data/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS19-001,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QUANT,REQ-BT-001,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-ENV-022,Environment digest and full experiment registry,frozen manifest,Data/code/config/seed/environment/all variants hashed,Quant/Data,Risk/QA,10,AEG-VS-19-03,G2,SOURCE,P0,PLANNED +AEG22-VS19-002,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QA,REQ-BT-002,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-XLANG-022,Python-.NET decision golden cross-check,cross-language vectors,Policy/action/ratio/target/trace match within tolerance,QA/Quant,BE,8,AEG22-VS19-001,G2,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS23-001,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,OPS,REQ-REC-001,EXE-01,MIG-EXE-001,J12,UI-OPS-REC,T-REC-CORR-022,Approved correction/reversal workflow,break/correction/audit contract,No direct edit; before/after/hash/approver/replay reconcile to zero,Ops/DBA,Compliance/QA,10,AEG-VS-23-04,Pilot-A,SOURCE,P0,PLANNED +AEG22-VS25-001,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-GOV-001,GOV-01,MIG-GOV-001,KillSwitchChanged,UI-GOV-01,T-KILL-022,Automatic-order capability tripwire,capability tests/runbook,Any AutomaticOrder/KIS drift blocks start/release/action,Security/Ops,DevOps/QA,8,AEG-VS-25-04,ALL,SOURCE,P0,PLANNED +AEG22-X-009,S11,W23-24,Cross,Cross-cutting,Frontend,FE,REQ-FE-CONTRACT,Cross,Cross,Cross,Cross,T-FE-OPENAPI-022,OpenAPI artifact diff and generated contract plan,contract generation ADR,DTO drift visible in CI; Zod remains trust boundary,BE/FE,QA/Architect,7,AEG-X-012,G3,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-010,S11,W23-24,Cross,Cross-cutting,Observability,SRE,REQ-OBS-001,Cross,Cross,Cross,UI-OPS-01,T-OBS-022,Metric cardinality/PII/redaction budget,telemetry policy/tests,No high-cardinality account/security tags or PII in telemetry,SRE/Security,BE/QA,7,AEG-X-013,G5,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-011,S14,W29-30,Cross,Cross-cutting,Performance,SRE,REQ-CAP-001,Cross,Cross,Cross,Cross,T-CAP-022,Capacity assumptions and workload pack,capacity profile,Approved volumes map to API/batch/DB SLO evidence,PM/SRE,DBA/QA,10,AEG-X-025,G6-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-012,S15,W31-32,Cross,Cross-cutting,Release,OPS,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-022,Release evidence and rollback rehearsal,release manifest/checksum/runbook,Source→requirement→code→test→artifact hashes and rollback complete,PM/SRE,QA/Compliance,8,AEG22-X-011,G6,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-031,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,Rebuild seven-file current-session source coverage,Source matrix·SHA index,7개 첨부 원본·크기·SHA-256·역할이 패키지와 1:1 일치,PM/QA,Architect,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG-X-032,S0,W1-2,Cross,Cross-cutting,CI/CD,DEVEX,REQ-PLAT-CI,Cross,Cross,Cross,Cross,T-CI-003,Correct stale CI validator and duplicate YAML key,Gitea ci.yml,"validate_v123 실행, 중복 working-directory 0, static/scaffold tests 연결",DevOps,QA,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-033,S0,W1-2,Cross,Cross-cutting,Architecture,SCAFFOLD,REQ-ARCH-SCAFFOLD,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,Implement deterministic fail-closed slice scaffolder,scaffold_slice.py·templates·tests,"dry-run deterministic, 기존 파일 overwrite 0, 미승인 placeholder 명시",Architect,BE/FE,7,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-034,S0,W1-2,Cross,Cross-cutting,Contract,CONTRACT,REQ-CONTRACT-001,Cross,Cross,Cross,Cross,T-CONTRACT-001,Create machine-readable policy/event/metric contract registry,contracts/**,"JSON parse, C# 상수 교차검증, 이벤트 schema v2, metric definition version",Architect/Quant,QA/Risk,7,AEG-X-003,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-035,S0,W1-2,Cross,Cross-cutting,Validation,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-STATIC-123,Extend static validator for semantic version and contract drift,validate_v123.py,"WBS 250, 7첨부, 0015, registry, context filter, CI key 검사 통과",QA,Architect,6,AEG-X-034,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-08,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-CONTRACT-001,Centralize approved sell policy constants,SellPolicyContract.cs,정책 ID·우선순위·임계값 중복 제거 및 JSON registry와 일치,Quant/BE,Risk/QA,6,AEG-X-034,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-09,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-ZERO-RATIO,Fix positive-edge zero-ratio opportunity sell defect,OpportunityCostPolicy.cs·tests,"edge>0·ratio=0에서 HOLD, trace=BLOCKED, 자동 10% 매도 0",BE/Quant,QA/Risk,5,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-10,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Data integrity,REQ-SIG-SELL,SIG-01,MIG-0015,-,-,T-SIG-SEM-001,Version lot/security weight semantics and block legacy contexts,0015 migration·context reader,weight_semantics_version=2만 결정 입력 사용; legacy backfill 추정 사용 0,DBA/BE,Quant/QA,8,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-11,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Evidence,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-EVT-002,Persist decision and policy-trace contract versions,API·DB·event v2,decision_contract_version과 policy_trace_schema_version이 DB/API/event/hash에 포함,BE,DBA/FE/QA,7,AEG-VS-10-10,G2-A,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-12,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Frontend,REQ-SIG-SELL,SIG-02,MIG-0015,-,UI-SIG-TRACE,T-FE-SIG-TRACE,Componentize ordered policy trace display,PolicyTracePanel.vue·Zod,우선순위/Disposition/요청·적용비율/Core clamp를 runtime contract로 표시,FE,UX/QA,5,AEG-VS-10-11,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-08,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,Metric governance,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-METRIC-001,Version false-exit and reentry metric definitions,outcome-metrics.v1.json,"분모/분자/평가창/집계/정의버전 명시, 연 2% 목표와 직접비교 금지",Quant/Risk,Data/QA,6,AEG-X-034,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-036,S1,W3-4,Cross,Cross-cutting,Security,AUTH,REQ-IAM-001,Cross,Cross,Cross,Cross,T-AUTH-ADR,Keep OIDC/JWT provider decision fail-closed,Decision Log,공급자/claims 미결정 시 Development 외 인증 성공 0,Security,PM/BE,3,AEG-X-005,G5,SOURCE,P0,PLANNED +AEG-X-037,S2,W5-6,Cross,Cross-cutting,Data governance,PIT,REQ-DAT-SOURCE,Cross,Cross,Cross,Cross,T-DATA-LICENSE,Reconfirm total-return/delisting/consensus source decisions,Decision Log·source catalog,미승인 source 추천 진입 0; DECISION_REQUIRED 유지,Data Governance,Legal/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-038,S3,W7-8,Cross,Cross-cutting,Cost data,PIT,REQ-COST-001,Cross,Cross,Cross,Cross,T-COST-PIT,Reconfirm Fee/Tax/FX valid-time schedule decisions,Decision Log·data contract,current 단일값 사용 0; 미결정 계좌/venue 추천 보류,Ops/Tax,DBA/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-039,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-013,Resolve survival cooldown bypass rule,Decision record·Golden vectors,승인 전 기존 fail-closed 유지; 승인 후 정책·모델카드·OOS 동시변경,Investment Committee,Quant/Risk/BE,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P0,PLANNED +AEG-X-040,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-014,Resolve hard impairment 80-100% severity mapping,Decision record·evidence grading,severity source 미승인 시 100% 보수값 유지; 임의 80% 적용 금지,Investment Committee,Compliance/Quant,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P1,PLANNED +AEG-X-041,S11,W23-24,Cross,Cross-cutting,Supply chain,SECURITY,REQ-SEC-SBOM,Cross,Cross,Cross,Cross,T-SBOM-001,Add SBOM/license/vulnerability release evidence contract,Release Evidence template,실제 scanner 미실행은 PASS 표기 금지; artifact 경로와 allowlist 필수,Security/DevOps,Legal/QA,5,AEG-X-032,G5,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-042,S14,W29-30,Cross,Cross-cutting,Capacity,NFR,REQ-NFR-CAP,Cross,Cross,Cross,Cross,T-CAP-001,Approve load volumes before index or partition optimization,Capacity ADR,고객/계좌/종목/배치량 결정 전 투기적 index·partition 추가 0,PM/SRE,DBA/BE,5,DEC-011,G6-A,DECISION_REQUIRED,P1,PLANNED +AEG-X-043,S15,W31-32,Cross,Cross-cutting,Release,EVIDENCE,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-123,Assemble v12.3 release evidence and checksum manifest,Validation evidence·manifest·SHA256,실행/미실행을 구분하고 패키지 전 파일 hash·첨부 hash가 일치,QA/Release,PM/Architect,7,AEG-X-035,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-001,지속 모델 운영 자동화 경계 확정,model-operations.v1·promotion-gate.v1 계약,"EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY 외 모드 0, AUTO_PROMOTE/AUTO_ORDER 0",Risk/Architect,Compliance/Quant,4,DEC-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-002,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-002,성과지표 정의 v2 확정,outcome-metrics.v2·Metric Definition Registry,각 지표의 분자·분모·평가창·집계·비용·PIT·revision 정의와 content hash 보존,Quant/Risk,Data/QA,6,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-003,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10,UI-MO-01,T-MO-003,평가 Dataset Manifest와 Model Registry 계약,evaluation.dataset_manifest·governance.model_version_registry,"요청 시점 Dataset/Model/Config/Code/Contract VersionSet 동결, 미승인 context는 BusinessHold",Data Architect/Quant,DBA/Risk,6,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-004,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DB,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-004,Model Operations 증분 migration 구현,0016_continuous_model_operations.sql,fresh/upgrade/re-run/failure에서 schedule/request/metric/proposal/review/drill schema와 제약 통과,DBA/BE,QA/Data,8,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-005,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-005,15분 Scheduler Dispatcher와 lease 구현,ModelOperationsDispatcherJob·DapperModelScheduleRepository,"FOR UPDATE SKIP LOCKED, 14분 lease, batch 50, dynamic queue, crash/retry 중복 request 0",BE/SRE,DBA/QA,8,AEG-MO-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-006,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,ModelOperationRequested,UI-MO-01,T-MO-006,평가 요청·Outbox 동일 트랜잭션 구현,ModelOperationRequestService·Repository·event v1,"동일 idempotency key의 request/outbox side effect 1회, VersionSet 누락 시 저장 0",BE Lead,SRE/QA,8,AEG-MO-005,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-007,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-007,명시적 ModelOperationRegistry 구현,ModelOperationDefinition·contract drift test,"Job code/주기/queue/mode/owner/gate 중복 0, JSON/C# drift 0",BE/Architect,Quant/QA,5,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-008,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-001,모델 운영 계획 조회 API·Zod 구현,GET /internal/v1/model-operations/plan·schema.ts,"응답 runtime validation, 자동승격 모드 파싱 거부, RBAC 401/403 검증",BE/FE,Security/QA,6,AEG-MO-007,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-009,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-002,모델 운영 대시보드 기본 화면,ModelOperationsPage·BoundaryPanel·OperationTable,일/주/월/분기 작업과 EVALUATION/PROPOSAL/DRILL 경계가 명확하고 로딩/오류/빈상태 접근성 검증,FE/UX,QA/Risk,7,AEG-MO-008,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-010,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-01,MIG-0016,J10,UI-MO-02,T-MO-EVAL-001,1/5/20/63/126/252일 Outcome evaluator 구현,versioned OutcomeObservation·attribution,거래일창·benchmark·FX·delisting·no-fill·partial-fill·revision replay Golden 통과,Quant/BE,Data/QA,12,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-011,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-02,MIG-0016,J11,UI-MO-02,T-MO-EVAL-002,Daily Scorecard와 cohort aggregation,DailyScorecard·cohort metric snapshots,운영오류·calibration·매수·매도·재진입·비용후 효용의 sample/lag/version 표시,Quant/BE,Risk/QA,9,AEG-MO-010,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-012,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-DRIFT-001,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,Data/Feature/Prediction/Calibration drift evaluator,DriftObservation·baseline manifest·alert,"baseline version, PSI/KS/calibration drift와 sample minimum이 승인되고 임계 초과 시 HOLD만 생성",Quant/Risk,Data/SRE,10,AEG-MO-011,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-013,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-CC-001,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,Champion/Challenger 동일 cohort 비교,paired comparison·model card delta,동일 Dataset/Cost/Cohort/Window에서 효과·위험·false-exit·reentry 차이와 신뢰구간 보존,Quant/Risk,IndependentValidation/QA,12,AEG-MO-012,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-014,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-OOS-001,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,월간 Frozen Walk-forward OOS 실행,manifest/hash/seed/environment·OOS artifacts,"동일 manifest 허용오차 내 동일, lookahead 0, 상폐/CA/TR/cost2x 포함, 실패 artifact 보존",Quant/Data,QA/Risk,14,AEG-MO-003,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-015,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-ROBUST-001,BACKTEST-02,MIG-0016,J20,UI-MO-04,T-MO-ROBUST-001,분기 PBO/DSR/Parameter Stability/Block Bootstrap,experiment registry·CSCV/PBO/DSR report,"전체 시도 원장 기준 PBO≤20%, DSR≥95%, 비용2배 양수 여부를 재현하며 기준 미달 시 HOLD",Quant/Risk,IndependentValidation/QA,15,AEG-MO-014,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-016,S11,W23-24,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-05,MIG-0016,J11/J21,UI-MO-02,T-MO-ATTR-001,False-exit·Reentry attribution 정의 확정,metric definition v2·decision log,분자/분모/기준가격/benchmark/평가창/중도상폐/결측 처리 승인 전 생산 KPI 사용 차단,Quant/Risk,InvestmentCommittee/Data,7,DEC-032,G4,SOURCE+DECISION_REQUIRED,P0,PLANNED +AEG-MO-017,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-01,MIG-0016,J21,UI-MO-05,T-MO-IMP-001,월간 개선 제안 생성 규칙,ModelImprovementProposal·ranking rubric,데이터·정책·calibration·risk·기술부채 제안을 구분하고 자동 코드/임계값 변경 0,Quant Lead,Risk/Architect,8,AEG-MO-012~016,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-018,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-02,MIG-0016,J21,UI-MO-05,T-MO-IMP-002,개선 제안 반대증거·만료·중복 통제,proposal schema·content hash·expiry,근거/반대증거/기대효과/위험/필수테스트/Owner/만료가 없으면 REVIEW_REQUIRED 생성 금지,Risk/Architect,Quant/QA,7,AEG-MO-017,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-019,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-PROMOTE-001,GOV-MO-03,MIG-0016,J22,UI-MO-06,T-MO-GATE-001,PromotionGateEvaluator와 증거 패킷,promotion-gate.v1·PromotionGateResult,252일/2국면/효용/calibration/false-exit/reentry/PBO/DSR/cost2x/운영오류를 모두 평가하되 human approval=true,Risk/BE,Quant/QA,9,AEG-MO-015~018,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-020,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,SEC,REQ-MO-PROMOTE-001,GOV-MO-04,MIG-0016,J22,UI-MO-06,T-MO-GATE-002,모델 승격 maker-checker·업무분장,model_promotion_review·RBAC,"maker≠checker, 개발자 단독승격 0, 독립검증·준법·보안 evidence 누락 시 승인 불가",Risk/Security,Compliance/QA,8,AEG-MO-019,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-021,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MO-FE-001,GOV-MO-05,MIG-0016,J17~J22,UI-MO-03~06,T-MO-FE-003,Drift·비교·OOS·제안·Gate 화면 컴포넌트,DriftPanel·ComparisonPanel·EvidenceGatePanel,version/sample/window/data warning/반대증거/readonly 상태를 표시하고 내부점수 고객 노출 0,FE/UX,Risk/QA,12,AEG-MO-012~020,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-022,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-01,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001,Data revision 영향 인덱스와 재평가 요청,decision↔dataset/revision impact index,정정 source/revision이 영향 decision/window를 결정적으로 산출하고 승인 없는 대량 replay 0,Data/BE,DBA/Quant,10,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-023,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-002,Revision-aware correction evidence,new observation/snapshot·Supersession link,"과거 evidence overwrite 0, before/after hash·사유·승인자·영향 KPI가 보존",Data/Compliance,Quant/QA,8,AEG-MO-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-024,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-ROLLBACK-001,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,분기 Model rollback drill,model_rollback_drill·Runbook evidence,fallback manifest 복원·Capability 차단·RTO 측정·Secondary 수행·실주문 0,SRE/Risk,Module Owner/QA,10,AEG-MO-020,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-025,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OBS,REQ-MO-OPS-001,MO-OPS-01,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-001,Scheduler·평가 관제 표준,OTel metrics·Serilog correlation·alerts,due lag/lease conflict/request duplicate/context hold/runtime/backlog/error가 trace→schedule→request→artifact로 연결,SRE/BE,Security/QA,8,AEG-MO-005~006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-026,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-02,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-002,Error taxonomy·retry·dead-letter·BusinessHold,Runbook·retry matrix·dead-letter procedure,"transient/business/poison 분리, blind retry 0, same scope 중복 side effect 0",SRE/BE,Ops/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-027,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-MO-OPS-001,MO-OPS-03,MIG-0016,J10~J24,UI-MO-09,T-MO-SEC-001,모델 evidence·알림 PII/secret 보안,classification/redaction/secret scan,계좌·고객·토큰·원시 payload가 log/trace/Telegram/prompt에 노출 0,Security/SRE,Compliance/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-028,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-04,MIG-0016,J10~J24,UI-MO-09,T-MO-CAP-001,평가 Queue 격리·용량·SLA 시험,capacity report·queue quotas,q-research가 고객 batch SLA를 침범하지 않고 backlog/CPU/DB lock/IO 한도와 degradation 정책 승인,SRE/DBA,Quant/QA,10,AEG-MO-025,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-029,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-SCHED-001,MO-TEST-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-CONC-001,Scheduler concurrency·crash·clock 회귀,integration/chaos tests,"다중 worker lease 경쟁, enqueue 전후 crash, clock skew, DST/휴장, 장기 downtime catch-up에서 중복 0",QA/SRE,BE/DBA,12,AEG-MO-005,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-030,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-EVAL-001,MO-TEST-02,MIG-0016,J10~J22,UI-MO-02~06,T-MO-GOLDEN-001,Python/.NET metric Golden 교차검증,Golden vectors·tolerance registry,동일 frozen input에서 Python 연구와 .NET 평가가 승인 허용오차 내 일치하고 차이 artifact 보존,QA/Quant,BE/Data,12,AEG-MO-010~020,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-031,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-FE-001,MO-TEST-03,MIG-0016,J10~J24,UI-MO-01~09,T-MO-E2E-001,모델 운영 Playwright E2E,role/state/evidence flows,"Quant/Risk/Auditor 권한, loading/empty/stale/warn/hold/review/expired/readonly와 접근성 통과",QA/FE,Security/UX,8,AEG-MO-009~021,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-032,S14,W29-30,Cross,Cross-cutting,Toolchain,CI,REQ-MO-OPS-001,Cross,MIG-0016,Cross,Cross,T-MO-CI-001,Gitea CI에 v12.4 validator·ModelOps tests·contract drift 추가,ci.yml·validate_v124.py,"static/JSON/CSV/WBS/contract/Python tests green, .NET/pnpm/DB evidence 없이는 PASS 주장 금지",DevOps/QA,Architect/Security,8,AEG-MO-001~031,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-033,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-OPS-001,Cross,Cross,Cross,Cross,Cross,모델 운영 Release Evidence 템플릿,MODEL_EVALUATION_EVIDENCE.md·IMPROVEMENT_PROPOSAL.md,"Source/Assumption/Unknown/DecisionRequired, 명령·hash·sample·window·approval·rollback가 누락 없이 연결",PM/Risk,QA/Architect,5,AEG-MO-032,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-034,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-IMPROVE-001,Cross,Cross,Cross,Cross,Cross,바이브코딩 모델 변경 작업 패킷,MODEL_CHANGE + evaluation packet,AI가 임계값·팩터·모델·스케줄을 추정하지 않고 승인 source와 실제 test artifact 없으면 PR 차단,Architect/Quant,Risk/QA,6,AEG-MO-033,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-035,S15,W31-32,Cross,Cross-cutting,Release,CUTOVER,REQ-MO-OPS-001,Cross,MIG-0016,J10~J24,UI-MO-01~09,T-MO-REL-001,20영업일 ModelOps 단계 배포,runbook·feature/capability config·rollback,DISABLED→EVALUATION_ONLY→PROPOSAL_ONLY 순으로 승격하고 자동 model/order mutation은 계속 OFF,Release/SRE,Risk/Compliance,8,AEG-MO-032~034,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-036,MNT,Monthly,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,MNT,REQ-MO-EVAL-001,EVAL-MNT-01,MIG-0016,J10/J11/J17,UI-MO-02/03,T-MO-MNT-001,월간 성과·drift·false-exit·reentry 리뷰,monthly model health pack,metric version/sample/lag/drift/반대증거/기술부채와 개선 제안이 투자위 회의록에 연결,Quant/Risk,Ops/QA,4,Go-Live,MNT,SOURCE+OPERATING_EVIDENCE,P1,PLANNED +AEG-MO-037,MNT,Quarterly,VS-19/20,RunFrozenBacktest/PromoteModelVersion,BacktestingEvaluation/GovernanceAudit,MNT,REQ-MO-ROBUST-001,GOV-MNT-01,MIG-0016,J18~J23,UI-MO-04~08,T-MO-MNT-002,분기 OOS·PBO/DSR·승격/롤백 검토,quarterly independent validation pack,"복합 Gate 우회 0, 기준 미달 모델은 HOLD/REJECTED, rollback drill evidence 존재",Risk/InvestmentCommittee,IndependentValidation/Compliance,8,AEG-MO-036,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-MO-038,MNT,Release,Cross,Cross-cutting,GovernanceAudit,MNT,REQ-MO-IMPROVE-001,Cross,Cross,ModelChanged,Cross,T-MO-MNT-003,모델/정책/지표 변경 비회귀 릴리스,Model Change·Golden·Frozen OOS·Supersession,"문서/JSON/C#/DB/API/FE/test hash 정렬, 이전 계약 원문 보존, 자동승격/자동주문 OFF",Architect/Risk,Quant/QA/SRE,6,Approved Model Change,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED diff --git a/docs/v12_4/10_TECH_DEBT_REGISTER.csv b/docs/v12_4/10_TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..a8de00c6 --- /dev/null +++ b/docs/v12_4/10_TECH_DEBT_REGISTER.csv @@ -0,0 +1,53 @@ +ID,Priority,Debt,Impact,Remediation,Gate,Owner,Status +TD-001,P0,도구체인 실빌드 미검증,C# 컴파일/패키지 호환 결함 가능,승인 .NET 10 runner에서 restore/build/test,G0,DevOps,OPEN +TD-002,P0,pnpm-lock.yaml 부재,FE 공급망·재현성 미확보,승인 네트워크에서 pnpm install 후 lock review/commit,G0,FE Lead,OPEN +TD-003,P0,PostgreSQL migration rehearsal 미실행,fresh/upgrade/re-run/복구 실패 가능,PostgreSQL 승인 버전 4시나리오 자동화,G0,DBA,OPEN +TD-004,P0,원시 연구 데이터 권리·checksum·환경 lock 미완전,제3자 clean-room 재현 불가,Source catalog/license/raw checksum/container digest 확보,G1,Data Governance,OPEN +TD-005,P0,KR 검증 종료 2021-04-16,최근 시장국면 검증 공백,2026 현재까지 PIT 총수익·상폐·기업행사 보충 후 frozen OOS,G4,Quant/Data,OPEN +TD-006,P0,실제 OIDC/JWT 공급자 미결정,외부 Pilot 접근통제 불가,"Auth ADR, key rotation, claims/RBAC E2E",G5,Security,OPEN +TD-007,P0,총수익·상폐수익·컨센서스 공급계약 미확정,생존편향·성과왜곡,공식/상용 source 계약·SLA·재배포 권리 승인,G1,Data Governance,OPEN +TD-008,P0,Fee/Tax/FX PIT 표 미확정,비용후 기대효용 왜곡,valid_from/to 계좌·venue·상품·side·band schedule,G1,DBA/Quant,OPEN +TD-009,P0,Outbox/Inbox crash/replay 실증 미완료,side effect 누락·중복,lease/dead-letter/replay chaos test,G3,BE/SRE,IN_PROGRESS +TD-010,P1,JobRun·Watermark 표준의 일부 구현만 존재,배치 재처리·감사 불완전,공통 JobRun scope/version/hash/heartbeat 정책 적용,G1,BE/SRE,IN_PROGRESS +TD-011,P1,Architecture test가 정적 문자열 규칙 중심,금지 의존 누락 가능,assembly/namespace/schema/API fitness function 확대,G0,Architect,IN_PROGRESS +TD-012,P1,OpenAPI→FE contract 자동생성 미도입,DTO drift·홀루시네이션 위험,OpenAPI artifact diff + generated client/schema gate,G3,BE/FE,OPEN +TD-013,P1,PII redaction·Telegram 보안 테스트 미완성,고객정보 노출 가능,classification/redaction test와 secret scan,G5,Security/SRE,OPEN +TD-014,P1,Model promotion workflow 미완성,무단 모델 활성화 위험,model card/maker-checker/effective_at/rollback 구현,G4,Risk/BE,OPEN +TD-015,P1,Read Model rebuild runner 미완성,stale projection 복구 불가,projection version/watermark/rebuild/diff 도구,G3,BE/Data,IN_PROGRESS +TD-016,P1,SLO/RPO/RTO 미승인,운영 Go 판단 불가,부하시험·백업복구·DR ADR 승인,G5,SRE/DBA,OPEN +TD-017,P2,공통 UI 컴포넌트 승격 기준 미운영,중복 또는 과도한 추상화,3회 반복+동일 의미/변경축 확인 후 승격,S10,FE Lead,OPEN +TD-018,P1,PBO/DSR 전체 탐색·시도 원장 미완성,과최적화 위험,전체 실험 registry+CSCV/PBO/DSR/block bootstrap,G4,Quant/Risk,OPEN +TD-019,P1,자산유형별 재진입 확인팩터 공급원 미완성,재진입 품질 저하,asset policy contract+PIT source+missing evidence downgrade,G2,Quant/Data,OPEN +TD-020,P0,자동주문/KIS 제출은 금지 상태,오활성화 사고 위험,Options ValidateOnStart+CI config scan+runtime kill switch 유지,ALL,Security/Ops,MITIGATED +TD-021,P1,정책 임계값이 문서·YAML·C#에 중복될 가능성,계약 drift,승인 config registry+schema+hash+generated constants,G2,Quant/BE,OPEN +TD-022,P1,DB immutable trigger와 correction event 운영절차 미실증,정정/감사 장애 가능,maker-checker correction replay와 audit trace E2E,G3,DBA/Compliance,OPEN +TD-023,P2,프런트 서버상태/Pinia 책임 경계의 팀 규율 미검증,중복 캐시·stale UI,lint/review checklist+query key registry,MVP-B,FE Lead,OPEN +TD-024,P1,Dependency vulnerability/license 자동검사 미구성,공급망 리스크,NuGet/npm SBOM·license allowlist·vulnerability gate,G5,Security/DevOps,OPEN +TD-025,P1,성능 규모 가정 미확정,배치 SLA/DB index 과·소설계,portfolio/security/client volume 결정·capacity test,G6-A,PM/SRE,OPEN +TD-026,P0,Security/Lot weight field ambiguity in v12.1,Partial-lot sell could miscalculate target security weight,MIG-0014 + domain/API/FE golden vectors,G2-A,Quant/BE,IN_PROGRESS +TD-027,P1,Only final sell policy reason was persisted,Blocked/not-applicable priority path was not auditable,Persist ordered policy_trace_json and internal trace contract,G2-A,BE/Quant,IN_PROGRESS +TD-028,P0,Current-session attachment set differs from prior package manifest,Source coverage claim can become stale,Rebuild source index from six current attachments and verify SHA,G0,PM/QA,MITIGATED +TD-029,P1,Request execution contract remains endpoint-local,Error/idempotency/correlation behavior can drift,Adopt reviewed request execution template after characterization tests,G0,BE Lead,OPEN +TD-030,P0,Outbox dispatcher runtime implementation is incomplete,Stored events may not publish or may duplicate,Lease/dead-letter/replay implementation and crash tests,G3,BE/SRE,OPEN +TD-031,P0,Inbox result-hash/replay proof is incomplete,Duplicate downstream side effects remain possible,Consumer-specific transaction and crash/replay tests,G3,BE/SRE,OPEN +TD-032,P1,Outcome metric definitions are not fully versioned,Historical false-exit/gain-capture can drift,outcome-metrics.v1 registry added; Quant/Risk approval and DB scorecard binding remain,G3,Quant/Risk,IN_PROGRESS +TD-033,P1,Module and feature scaffolding depended on manual copying,Pattern drift and vibe-coding hallucination,deterministic scaffold_slice.py + reviewed templates + tests,G0,Architect,MITIGATED +TD-034,P0,v12.2 legacy weight backfill could be treated as explicit lot semantics,Historic context may create incorrect partial-lot target weight,MIG-0015 semantics version; reader accepts version 2 only; rebuild required,G2-A,DBA/BE/Quant,MITIGATED +TD-035,P0,Opportunity edge with zero requested ratio was clamped to 10% sell,Missing quantity decision could become unintended sell,Fail closed with OPPORTUNITY_RATIO_NOT_POSITIVE and Golden test,G2-A,BE/Quant,IN_PROGRESS +TD-036,P1,CI referenced v12.1 validator and contained duplicate working-directory key,Latest controls could be skipped and YAML behavior ambiguous,"Use validate_v123, single working-directory, scaffold tests",G0,DevOps/QA,MITIGATED +TD-037,P1,Policy values duplicated between documents and C# magic numbers,Threshold and priority drift,SellPolicyContract + machine-readable registry + static cross-check,G2,Quant/BE,IN_PROGRESS +TD-038,P1,Previous package did not include v12.2 itself as a new source attachment,Cumulative source chain incomplete for next delta,Seven-file source coverage and SHA index,G0,PM/QA,MITIGATED +TD-039,P0,pnpm lockfile still cannot be generated in isolated environment,Frontend dependency resolution is not reproducible,Generate and review pnpm-lock.yaml on approved connected runner; frozen CI only,G0,FE Lead/DevOps,OPEN +TD-040,P0,v12.3 C# and PostgreSQL changes are statically validated only,"Compile, package compatibility and migration runtime defects may remain",Run .NET 10 build/test and PostgreSQL fresh/upgrade/re-run/failure rehearsal,G0,DevOps/DBA/QA,OPEN +TD-041,P0,v12.4 ModelOperations .NET 실빌드 미검증,scheduler/API/DI/SQL compile 또는 runtime 결함 가능,승인 .NET 10 runner에서 restore/build/test와 PostgreSQL integration 실행,G0/G3,DevOps/BE,OPEN +TD-042,P0,시장별 거래일·휴장·DST 기반 due 계산 미구현,평가 시점 지연 또는 잘못된 세션 평가,MarketCalendar 기반 next_due resolver와 KRX/NYSE/NASDAQ Golden calendar,G3,Data/BE,OPEN +TD-043,P0,false-exit 정확한 adverse-regret 정의 미승인,연 2% 목표의 재현성과 비교 가능성 훼손,분자/분모/가격/benchmark/window/결측 정의를 투자위 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-044,P0,승인 Dataset Manifest와 Model Registry 초기 데이터 부재,모든 scheduled request가 BusinessHold,source/license/hash/model card 승인 후 seed를 별도 승인 migration으로 추가,G3,Data Governance/Risk,OPEN +TD-045,P0,J10~J24 실제 계산 consumer는 작업요청 template 수준,스케줄은 요청을 만들지만 성과·drift·OOS artifact 미생성,VS-18/19/20별 evaluator와 Golden/integration 구현,G4,Quant/BE,OPEN +TD-046,P1,drift baseline·metric·threshold 미승인,과민 또는 지연 경보,feature/data/prediction/calibration drift별 sample minimum과 threshold 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-047,P1,Champion/Challenger cohort 할당·동일성 계약 미완료,비교 편향과 승자 선택 오류,동일 PIT dataset/cost/window/cohort matching 및 holdout 정책 승인,G4,Quant/IndependentValidation,OPEN +TD-048,P1,개선 제안 우선순위와 중복 병합 운영 미실증,제안 폭증·기술부채 누락·과유불급,impact/risk/evidence/cost rubric와 월간 triage WIP limit 운영,G4,Quant Lead/Architect,OPEN +TD-049,P0,모델 승격 maker-checker workflow와 실제 IdP claims 미연결,무단 또는 자기승인 가능,OIDC claims/RBAC/SoD E2E와 감사 원장 연결,G5,Security/Risk,OPEN +TD-050,P1,scheduler lease·enqueue crash chaos 미실증,중복/누락 request 또는 stale lease,다중 worker·DB restart·enqueue 전후 crash·clock skew chaos test,G5,SRE/BE,OPEN +TD-051,P1,모델 rollback drill 실증 없음,모델 이상 시 복구시간 불명,"분기 fallback manifest restore와 Capability hold, RTO/RPO 측정",G5,SRE/Risk,OPEN +TD-052,P1,평가 evidence 보존기간·partition·archive 정책 미결정,DB 팽창 또는 감사자료 조기 삭제,"규제/계약 기준 retention, monthly partition, legal hold, archive restore ADR",G5/G6-A,DBA/Compliance,DECISION_REQUIRED diff --git a/docs/v12_4/11_TRACEABILITY_MATRIX.csv b/docs/v12_4/11_TRACEABILITY_MATRIX.csv new file mode 100644 index 00000000..251a076c --- /dev/null +++ b/docs/v12_4/11_TRACEABILITY_MATRIX.csv @@ -0,0 +1,46 @@ +Requirement_ID,Slice_ID,Policy_or_Data_ID,API_ID,DB_ID,Job_Event_ID,UI_ID,Test_ID,WBS_Range,Release_Gate,Evidence_Status +REQ-PLAT-001,VS-00,DATA/DOMAIN-CONTRACT,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,AEG-VS-00-01..AEG-VS-00-07,G0,SOURCE+DESIGN_PROPOSAL +REQ-IAM-001,VS-01,DATA/DOMAIN-CONTRACT,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,AEG-VS-01-01..AEG-VS-01-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-SEC-001,VS-02,DATA/DOMAIN-CONTRACT,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,AEG-VS-02-01..AEG-VS-02-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-DAT-001,VS-03,DATA/DOMAIN-CONTRACT,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,AEG-VS-03-01..AEG-VS-03-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-CA-001,VS-04,DATA/DOMAIN-CONTRACT,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,AEG-VS-04-01..AEG-VS-04-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-FND-001,VS-05,DATA/DOMAIN-CONTRACT,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,AEG-VS-05-01..AEG-VS-05-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-COST-001,VS-06,DATA/DOMAIN-CONTRACT,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,AEG-VS-06-01..AEG-VS-06-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-CLI-001,VS-07,DATA/DOMAIN-CONTRACT,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,AEG-VS-07-01..AEG-VS-07-07,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-LED-001,VS-08,DATA/DOMAIN-CONTRACT,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,AEG-VS-08-01..AEG-VS-08-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-EVD-001,VS-09,DATA/DOMAIN-CONTRACT,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,AEG-VS-09-01..AEG-VS-09-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-SELL-001,VS-10,"ALG-SELL-001~005,ALG-SELL-PORT-001",SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,AEG-VS-10-01..AEG-VS-10-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-RE-001,VS-11,ALG-REENTRY-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,AEG-VS-11-01..AEG-VS-11-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-BUY-001,VS-12,ALG-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,AEG-VS-12-01..AEG-VS-12-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RISK-001,VS-13,ALG-PORT-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,AEG-VS-13-01..AEG-VS-13-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-REC-001,VS-14,DATA/DOMAIN-CONTRACT,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,AEG-VS-14-01..AEG-VS-14-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-REV-001,VS-15,DATA/DOMAIN-CONTRACT,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,AEG-VS-15-01..AEG-VS-15-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-PUB-001,VS-16,DATA/DOMAIN-CONTRACT,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,AEG-VS-16-01..AEG-VS-16-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-CLD-001,VS-17,DATA/DOMAIN-CONTRACT,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,AEG-VS-17-01..AEG-VS-17-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-EVA-001,VS-18,DATA/DOMAIN-CONTRACT,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,AEG-VS-18-01..AEG-VS-18-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-BKT-001,VS-19,DATA/DOMAIN-CONTRACT,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,AEG-VS-19-01..AEG-VS-19-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-MOD-001,VS-20,DATA/DOMAIN-CONTRACT,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,AEG-VS-20-01..AEG-VS-20-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-REB-001,VS-21,DATA/DOMAIN-CONTRACT,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,AEG-VS-21-01..AEG-VS-21-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-RPL-001,VS-22,DATA/DOMAIN-CONTRACT,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,AEG-VS-22-01..AEG-VS-22-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RECON-001,VS-23,DATA/DOMAIN-CONTRACT,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,AEG-VS-23-01..AEG-VS-23-07,Pilot-A,SOURCE+DESIGN_PROPOSAL +REQ-RPT-001,VS-24,DATA/DOMAIN-CONTRACT,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,AEG-VS-24-01..AEG-VS-24-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-GOV-001,VS-25,DATA/DOMAIN-CONTRACT,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,AEG-VS-25-01..AEG-VS-25-07,G5,SOURCE+DESIGN_PROPOSAL +REQ-SIG-WEIGHT-022,VS-10,ALG-SELL-002~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,AEG22-VS10-001~004,G2-A,SOURCE+INFERENCE +REQ-SIG-TRACE-022,VS-10,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL +REQ-DAT-LIC-022,VS-03,DQ-01~08,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,AEG22-VS03-002,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-REL-022,Cross,DOC-NR-03/06,Cross,Cross,Cross,Cross,T-REL-022,AEG22-X-012,G6,DESIGN_PROPOSAL +REQ-CONTRACT-001,Cross/VS-10/VS-18,sell-policy.v1/outcome-metrics.v1,SIG-01/02,MIG-0015,EVT-SIG-001/J10,UI-SIG-TRACE/UI-EVAL-01,T-CONTRACT-001/T-EVAL-METRIC-001,"AEG-X-034,AEG-VS-10-08..12,AEG-VS-18-08",G2-A/G3,SOURCE+DESIGN_PROPOSAL +REQ-ARCH-SCAFFOLD,Cross,AGENTS/SLICE_SPEC,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,AEG-X-033,G0,DESIGN_PROPOSAL +REQ-SOURCE-123,Cross,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,"AEG-X-031,AEG-X-043",G0/G6,SOURCE +REQ-MO-SCHED-001,VS-18/20/25,model-operations.v1,MO-PLAN-01,MIG-0016,Dispatcher/J10~J24,UI-MO-01,"T-MO-004~007,T-MO-029","AEG-MO-001,004~007,029",G3/G5,TEMPLATE +REQ-MO-EVAL-001,VS-18,outcome-metrics.v2,EVAL-01/02/05,MIG-0016,J10/J11,UI-MO-02,"T-MO-EVAL-001/002,T-MO-ATTR-001","AEG-MO-002~003,010~011,016",G3/G4,TEMPLATE +REQ-MO-DRIFT-001,VS-20,drift-contract DEC_REQUIRED,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,AEG-MO-012,G4,DECISION_REQUIRED +REQ-MO-CC-001,VS-20,champion-challenger matched cohort,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,AEG-MO-013,G4,TEMPLATE +REQ-MO-OOS-001,VS-19,Frozen Manifest/OOS,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,AEG-MO-014,G4,TEMPLATE +REQ-MO-ROBUST-001,VS-19/20,PBO/DSR/Cost2x,BACKTEST-02,MIG-0016,J20,UI-MO-04/06,"T-MO-ROBUST-001,T-MO-MNT-002","AEG-MO-015,037",G4,TEMPLATE +REQ-MO-IMPROVE-001,VS-20,ImprovementProposal,GOV-MO-01/02,MIG-0016,J21,UI-MO-05,T-MO-IMP-001/002,"AEG-MO-017~018,034,038",G4/G5,TEMPLATE +REQ-MO-PROMOTE-001,VS-20/25,promotion-gate.v1,GOV-MO-03/04,MIG-0016,J22,UI-MO-06,T-MO-GATE-001/002,AEG-MO-019~020,G4/G5,TEMPLATE +REQ-MO-ROLLBACK-001,VS-25,rollback runbook,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,AEG-MO-024,G5,TEMPLATE +REQ-MO-REPLAY-001,VS-23,PIT revision/correction,REPLAY-01/02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001/002,AEG-MO-022~023,G3,TEMPLATE +REQ-MO-FE-001,VS-18/20/25,Zod runtime contract,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01~09,"T-MO-FE-001~003,T-MO-E2E-001","AEG-MO-008~009,021,031",G3/G5,TEMPLATE +REQ-MO-OPS-001,VS-25/Cross,observability/retry/security/capacity,MO-OPS-01~04,MIG-0016,Dispatcher/J10~J24,UI-MO-09,"T-MO-OPS-001/002,T-MO-SEC-001,T-MO-CAP-001,T-MO-CI-001","AEG-MO-025~028,032~035",G5/G6,TEMPLATE diff --git a/docs/v12_4/12_DECISION_LOG.csv b/docs/v12_4/12_DECISION_LOG.csv new file mode 100644 index 00000000..7f648c86 --- /dev/null +++ b/docs/v12_4/12_DECISION_LOG.csv @@ -0,0 +1,33 @@ +Decision_ID,Status,Decision_or_Question,Basis,Owner,Gate,Approved_or_Due +DEC-001,APPROVED,투자자문형→Shadow→Pilot; 자동주문 OFF,v10.0·v12.2,운영사/준법,ALL,2026-08-01 +DEC-002,APPROVED,알고리즘 상태 RESEARCH_CANDIDATE_NOT_PRODUCTION,v10.0·v12.2,투자위/리스크,G4,2026-08-01 +DEC-003,APPROVED,Modular Monolith+Vertical Slice; 조기 microservice 금지,v10.0,Architect,G0,2026-08-01 +DEC-004,APPROVED,PIT/revision/hash/lineage와 immutable Evidence 우선,v10.0·v12.2,Data/Quant,G1,2026-08-01 +DEC-005,APPROVED,매도 우선순위: impairment→survival→floor→concentration→opportunity→reentry,v12.2,투자위/Quant,G2,2026-08-01 +DEC-006,APPROVED,SellRatioOfLot와 portfolio weight/core floor 단위 분리,v12.0 Delta,Quant/Architect,G2-A,2026-08-02 +DEC-007,DECISION_REQUIRED,생산 OIDC/JWT 공급자와 claims mapping,자료 미지원,Security/PM,G5,미정 +DEC-008,DECISION_REQUIRED,PIT 총수익·상폐·컨센서스 공급원/라이선스,자료 미지원,Data Governance/Legal,G1,미정 +DEC-009,DECISION_REQUIRED,계좌·시장·venue별 Fee/Tax/FX schedule,자료 미지원,Ops/Tax/Quant,G1,미정 +DEC-010,DECISION_REQUIRED,SLO/RPO/RTO와 운영 용량 기준,자료 미지원,SRE/PM,G5,미정 +DEC-011,DECISION_REQUIRED,고객/계좌/상품 규모와 성능 테스트 볼륨,자료 미지원,PM/SRE,G6-A,미정 +DEC-012,DECISION_REQUIRED,한국 최신 PIT 데이터 확보 범위와 재검증 일정,자료 미지원,Quant/Data,G4,미정 +DEC-013,APPROVED,Lot-relative sell ratio uses CurrentLotPortfolioWeight; target security weight subtracts LotWeight×Ratio,v10/v12.1 unit-separation intent and data-consistency correction,Quant/Architect,G2-A,2026-08-02 +DEC-014,APPROVED,Ordered policy trace is immutable internal decision evidence; customer view receives curated explanation,Explainability and audit delta,Quant/Compliance/Architect,G2-A/G3,2026-08-02 +DEC-015,APPROVED,v12.2 preserves all six current-session attachments byte-for-byte and treats v12.1 as baseline,Non-regression source control,PM/Architect,G0,2026-08-02 +DEC-016,DECISION_REQUIRED,Select production OpenAPI client generation tool and ownership,Toolchain/network approval required,BE/FE/DevOps,G3,Before S11 +DEC-017,DECISION_REQUIRED,Approve .NET/PostgreSQL/pnpm runner image digests,Real build and migration evidence prerequisite,DevOps/Security,G0,Before coding start +DEC-013,DECISION_REQUIRED,자본바닥/생존 매도가 same-direction cooldown을 우회하는가,v10 우선순위는 명확하나 cooldown 예외는 첨부 근거에 명시되지 않음,투자위/리스크/Quant,G2,Before VS-10 production path +DEC-014,DECISION_REQUIRED,Hard impairment 80~100%를 어떤 증거등급/심각도로 매핑하는가,v10 범위는 80~100%; 현재 구현은 보수적으로 100%,투자위/준법/Quant,G2,Before policy parameter change +DEC-015,APPROVED,v12.2 이전 ambiguous weight context는 추정 사용하지 않고 semantics v2로 재구축한다,PIT·재현성·DECISION_REQUIRED fail-closed 원칙,Data Architect/Quant/Architect,G2-A,2026-08-02 +DEC-016,APPROVED,정책·이벤트·성과지표 계약은 버전과 hash를 가진 machine-readable artifact로 관리한다,"DOC-NR-05/06, v12.1 TD-021/032",Architect/Quant/Risk,G2/G3,2026-08-02 +DEC-022,APPROVED,스케줄러 자동화는 EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY로 제한,v10 자동주문 OFF·v12.1 연구후보 경계,Risk/Architect,ALL,2026-08-02 +DEC-023,APPROVED,모델·정책·임계값 자동 승격/변경/롤백 금지; human maker-checker 필수,모델 거버넌스와 독립검증 Gate,InvestmentCommittee/Compliance,G4/G5,2026-08-02 +DEC-024,APPROVED,15분 Dispatcher + DB schedule/lease + dynamic queue 패턴,시장별 job 난립과 DST hard-code 방지,Architect/SRE,G3,2026-08-02 +DEC-025,APPROVED,모델 평가 요청 시 승인 Dataset/Model/Config/Code/Contract VersionSet 동결,재현성·이력성·PIT 원칙,Data/Quant,G3,2026-08-02 +DEC-026,APPROVED,성과지표는 분자/분모/평가창/집계/비용을 버전 계약으로 관리,63일 연구 통계와 연간 목표 혼용 방지,Quant/Risk,G4,2026-08-02 +DEC-027,APPROVED,일/주/월/분기 평가와 revision-trigger replay를 분리,운영 부하와 증거 적시성 균형,Quant/SRE,G3/G4,2026-08-02 +DEC-028,APPROVED,J21은 개선 제안만 생성하며 코드·모델·설정 파일을 수정하지 않음,바이브코딩·홀루시네이션·과최적화 통제,Architect/Quant,G4,2026-08-02 +DEC-029,APPROVED,"J10/J11/J17 일, J18/J24 주, J19/J21/J22 월, J20/J23 분기 기본 cadence",v10 J10/J11 및 유지보수 운영리듬 계승,Risk/Ops,G3/G5,2026-08-02 +DEC-030,DECISION_REQUIRED,평가 evidence retention/partition/archive/legal hold 기간,첨부 근거에 구체 보존기간 없음,Compliance/DBA,G5/G6-A,G5 전 +DEC-031,DECISION_REQUIRED,Data/Feature/Prediction/Calibration drift metric·sample·threshold,첨부 근거는 drift 필요성만 제시하고 수치 계약 미제공,Quant/Risk,G4,J17 구현 전 +DEC-032,DECISION_REQUIRED,False-exit adverse-regret의 정확한 가격·benchmark·window 정의,첨부의 연 2% 목표와 연구 CSV를 직접 동일시할 수 없음,InvestmentCommittee/Quant,G4,J10 생산화 전 diff --git a/docs/v12_4/13_VIBE_CODING_HALLUCINATION_CONTROL.md b/docs/v12_4/13_VIBE_CODING_HALLUCINATION_CONTROL.md new file mode 100644 index 00000000..bcda5657 --- /dev/null +++ b/docs/v12_4/13_VIBE_CODING_HALLUCINATION_CONTROL.md @@ -0,0 +1,24 @@ +# 바이브코딩·홀루시네이션 통제 v12.4 + +## 모델 운영 작업 패킷 필수 필드 + +- Requirement/Slice/Job/Metric/Policy/Decision ID +- Source/Assumption/Unknown/Decision Required +- Dataset/Model/Config/Code/Contract VersionSet +- 분자/분모/window/aggregation/cost/PIT/revision +- API/DB/Job/UI/Test/Alert/Runbook/Rollback +- 자동화 모드와 금지 작업 +- 실제 실행 명령과 artifact hash + +## AI 금지 패턴 + +- 첨부에 없는 drift threshold, false-exit 정의, 보존기간을 임의 확정 +- 성과가 개선될 것이라고 가정하고 모델 변경 +- 실행하지 않은 .NET/pnpm/DbUp/Shadow/PBO/DSR을 PASS로 기록 +- 최신 데이터로 과거 의사결정을 재구성 +- 스케줄러가 model/config/code를 직접 수정 +- 테스트 fixture에 고객 계좌·PII·token·secret 사용 + +## PR Gate + +모델 관련 PR은 동작보존 리팩터링과 정책·수식 변경을 분리한다. JSON 계약, C# registry, migration seed, API schema, Zod, Golden, WBS, Decision Log가 함께 갱신되지 않으면 병합하지 않는다. diff --git a/docs/v12_4/14_GATES_AND_ROLLOUT.md b/docs/v12_4/14_GATES_AND_ROLLOUT.md new file mode 100644 index 00000000..21e0e02c --- /dev/null +++ b/docs/v12_4/14_GATES_AND_ROLLOUT.md @@ -0,0 +1,26 @@ +# Gate·20영업일 도입 계획 + +## 단계적 Capability + +1. `DISABLED`: migration과 화면만 배포, recurring dispatcher 미등록 +2. `EVALUATION_ONLY`: J10/J11/J17/J18/J19/J20/J24 활성화 +3. `PROPOSAL_ONLY`: 운영 안정 후 J21/J22 활성화 +4. `DRILL_ONLY`: 승인 runbook으로 J23 활성화 + +어느 단계에서도 자동 모델 승격·자동주문은 활성화하지 않는다. + +## 20영업일 + +- D1~D3: v12.4 계약·Coverage·Decision 승인, 자동화 경계 확인 +- D4~D6: .NET/DB/FE toolchain과 migration fresh/upgrade/re-run/failure +- D7~D10: schedule lease, dynamic queue, idempotent request+Outbox, contract drift tests +- D11~D14: J10/J11 Outcome/Scorecard Golden, metric v2, FE plan/dashboard +- D15~D17: J17/J18/J19 drift·comparison·Frozen OOS +- D18~D20: J21/J22 proposal/review packet, J23 drill dry-run, end-to-end Release Evidence + +## Go/No-Go + +G3: schedule/request/outbox duplicate 0, PIT VersionSet 동결, revision overwrite 0 +G4: 252일·2국면·효용·calibration·false-exit·reentry·PBO/DSR·cost2x와 독립검증 +G5: RBAC/SoD, PII redaction, chaos, rollback drill, SLO/RPO/RTO +G6: 운영 용량·DR·준법·법무 승인 diff --git a/docs/v12_4/15_PACKAGE_CONTENTS.md b/docs/v12_4/15_PACKAGE_CONTENTS.md new file mode 100644 index 00000000..a2cab5d0 --- /dev/null +++ b/docs/v12_4/15_PACKAGE_CONTENTS.md @@ -0,0 +1,14 @@ +# v12.4 패키지 구성 + +- `src/KArtSell.Modules.ModelOperations/`: 지속 모델 운영 .NET 10 모듈 템플릿 +- `db/migrations/0016_continuous_model_operations.sql`: schedule, request, append-only status event, metrics, evidence, proposal, review, drill +- `contracts/schedules/model-operations.v1.json`: scheduler machine-readable 계약 +- `contracts/model-governance/promotion-gate.v1.json`: 승격 증거 Gate +- `contracts/metrics/outcome-metrics.v2.json`: 성과지표 정의 v2 +- `frontend/src/features/model-operations/`: 운영 계획 화면과 Zod 계약 +- `tests/KArtSell.ModelOperations.UnitTests/`: evidence gate와 registry 단위 테스트 +- `docs/v12_4/`: 전략, lifecycle, scheduler, algorithm, data, BE/FE, job catalogue, WBS 288건, 기술부채 52건, 추적성, Decision Log, Gate +- `attachments/current_session/`: 원본 첨부 8개 byte-for-byte 보존 +- `PACKAGE_MANIFEST.json`, `SHA256SUMS.txt`: 전체 무결성 + +본 패키지는 실행 템플릿이다. 실제 model evaluator, 승인 Dataset/Model seed, 시장캘린더, drift/false-exit 수치 계약은 WBS와 Decision Log에 따라 구현·승인해야 한다. diff --git a/docs/v12_4/16_VALIDATION_MATRIX.csv b/docs/v12_4/16_VALIDATION_MATRIX.csv new file mode 100644 index 00000000..054f50f4 --- /dev/null +++ b/docs/v12_4/16_VALIDATION_MATRIX.csv @@ -0,0 +1,11 @@ +Validation_ID,Area,Command_or_Method,Expected,Current_Status,Blocking_Gate,Evidence +VAL-124-001,Static package,python3 scripts/validate_v124.py,0 FAIL,PASS_18_WARN_4_FAIL_0,G0,STATIC_VALIDATION_V12_4.txt +VAL-124-002,Policy regression,python3 -m unittest -v in research/hardening,all pass,PASS_4_TESTS,G2,RESEARCH_VALIDATION_V12_4.txt +VAL-124-003,Scaffolder,python3 -m unittest -v scripts.tests.test_scaffold_slice,all pass,PASS_2_TESTS,G0,SCAFFOLD_VALIDATION_V12_4.txt +VAL-124-004,ModelOps domain,.NET xUnit ModelOperations.UnitTests,all pass,NOT_RUN_NO_DOTNET_SDK,G3,CI artifact required +VAL-124-005,Backend build,dotnet restore/build/test,green,NOT_RUN_NO_DOTNET_SDK,G0,CI artifact required +VAL-124-006,DbUp,fresh/upgrade/re-run/failure on PostgreSQL,all pass,NOT_RUN_NO_POSTGRESQL_CLIENT,G0/G3,DB rehearsal required +VAL-124-007,Frontend,pnpm frozen install/typecheck/test/build/e2e,green,NOT_RUN_NO_PNPM_LOCKFILE,G3,CI artifact required +VAL-124-008,Scheduler chaos,multi-worker/lease/crash/clock/DST,duplicate 0,NOT_IMPLEMENTED,G5,AEG-MO-029 +VAL-124-009,252-day Shadow,two regimes/OOS/PBO/DSR,all gates,NOT_MET,G4,operating evidence +VAL-124-010,DOCX QA,render_docx + visual review,all pages clean,PASS_13_PAGES,Release,DOCX_QA_V12_4.txt diff --git a/docs/v12_4/K-ArtSell_Aegis_v12_4_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx b/docs/v12_4/K-ArtSell_Aegis_v12_4_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx new file mode 100644 index 00000000..be2c55d3 Binary files /dev/null and b/docs/v12_4/K-ArtSell_Aegis_v12_4_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx differ diff --git a/docs/v12_5/00_EXECUTIVE_CRITICAL_REVIEW.md b/docs/v12_5/00_EXECUTIVE_CRITICAL_REVIEW.md new file mode 100644 index 00000000..4f92347d --- /dev/null +++ b/docs/v12_5/00_EXECUTIVE_CRITICAL_REVIEW.md @@ -0,0 +1,42 @@ +# K-ArtSell Aegis v12.5 실행보증 통합 고도화 - 경영진 결론 + +상태: **IMPLEMENTATION_TEMPLATE / STATIC_VALIDATED / RUNTIME_EVIDENCE_REQUIRED** +운영 경계: **RESEARCH_CANDIDATE_NOT_PRODUCTION · 투자자문형 우선 · 자동주문/KIS 제출 OFF · 자동 모델승격 OFF** + +## 단호한 결론 + +v10.0의 비회귀·PIT·불변증거·자동주문 OFF 기준과 v12.1의 실행준비 계약은 방향이 옳다. v12.4는 지속 평가 스케줄러와 모델 운영의 자동화 경계를 추가했다. 그러나 현재 패키지는 **생산시스템이 아니라 실행 가능한 방향을 가진 구현 템플릿**이다. 코드 파일과 288개 WBS가 있다는 사실은 빌드, DB migration, 데이터 권리, OOS, 보안, DR 증거를 대신하지 못한다. + +운영사가 지금 해야 할 결정은 기능 추가가 아니다. 다음 여섯 P0를 닫는 것이다. + +1. 승인된 .NET 10·pnpm·PostgreSQL 환경에서 restore/build/test/migration을 실제 수행한다. +2. KRX/OPENDART/KIS 및 총수익·상폐·컨센서스·Fee/Tax/FX의 Source/License/SLA/PIT 계약을 승인한다. +3. KRX·NYSE·NASDAQ 시장캘린더, DST, 반일장, published_at→tradable_session 계약을 구현한다. +4. Decision→Outbox→Outcome→Correction의 멱등·재처리·감사 E2E를 실증한다. +5. 252거래일 이상 Shadow와 복수 국면 OOS, PBO/DSR, cost2x를 누적한다. +6. OIDC/JWT, PII redaction, SLO/RPO/RTO, DR, maker-checker를 운영 승인한다. + +## 처절한 현재 평가 + +| 영역 | 평가 | 냉정한 판단 | +|---|---:|---| +| 문서·거버넌스 | 78/100 | 기준과 용어는 강하지만 승인 증거와 만료 관리가 부족하다. | +| 알고리즘 계약 | 62/100 | 매도 우선순위와 재진입은 명확하나 실제 최신 PIT/OOS 증거가 부족하다. | +| 데이터 생산준비 | 35/100 | PIT 철학은 옳지만 권리·총수익·상폐·캘린더·비용표가 미결이다. | +| Backend | 55/100 | 경계와 skeleton은 양호하나 실제 핵심 Slice·통합시험은 거의 없다. | +| Frontend/UX | 42/100 | 기술스택과 runtime validation 방향은 맞지만 고객·운용 여정 검증이 없다. | +| QA/Security/SRE | 38/100 | 정적 검증은 있으나 build/DB/chaos/DR/부하 증거가 없다. | +| WBS·PM | 74/100 | 추적성은 좋지만 288개 작업 다수가 반복 템플릿이며 Critical Path가 흐려진다. | +| 종합 | **52/100** | G0 이전. Pilot·성과홍보·자동화 확대는 NO-GO다. | + +점수는 첨부의 명시적 미충족 항목과 v12.4 코드·문서의 구현 범위를 바탕으로 한 v12.5 설계평가이며, 외부 인증이나 생산준비 인증이 아니다. + +## v12.5 핵심 Delta + +- ModelOperations Dispatcher를 기본 비활성화하고 승인된 ShadowEvaluation일 때만 등록한다. +- 기존 J10~J24 schedule도 migration에서 재승인을 요구하도록 비활성화한다. +- J25~J30으로 Source 계약, 시장캘린더, 증거사슬, Projection freshness, Capacity/SLA, Release Evidence를 추가한다. +- WBS를 288건에서 336건으로 확장하되 P0 실행보증 Delta 48건을 별도 식별한다. +- 기술부채를 68건으로 확장하고 Gate·Owner·상환증거를 고정한다. +- 운영·아키텍처·PM·PL·UX/AX·QA·고객·개발·데이터·DBA·컨설팅 관점의 역할별 결함을 명시한다. +- 실행하지 않은 빌드·DB·Shadow·PBO/DSR은 PASS로 주장하지 않는다. diff --git a/docs/v12_5/01_SOURCE_COVERAGE_MATRIX.csv b/docs/v12_5/01_SOURCE_COVERAGE_MATRIX.csv new file mode 100644 index 00000000..950f25c9 --- /dev/null +++ b/docs/v12_5/01_SOURCE_COVERAGE_MATRIX.csv @@ -0,0 +1,4 @@ +Attachment,Bytes,SHA256,Role,Preservation,Coverage +K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx,64063,eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3,실행준비·WBS·기술부채·템플릿 기준,BYTE_FOR_BYTE,DIRECT +K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,402134,d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6,최상위 누적 실행·안전·비회귀 기준,BYTE_FOR_BYTE,DIRECT +KArtSell_Aegis_v12_4_continuous_model_operations_complete(1).zip,136705672,d878500883779551a1bc874728121470540ce8c50d4cfd41d4012d35be9419b1,v12.4 코드·지속 모델운영·이전 누적 첨부 기준선,BYTE_FOR_BYTE,DIRECT diff --git a/docs/v12_5/02_ROLE_BASED_BRUTAL_AUDIT.md b/docs/v12_5/02_ROLE_BASED_BRUTAL_AUDIT.md new file mode 100644 index 00000000..7e5fbadc --- /dev/null +++ b/docs/v12_5/02_ROLE_BASED_BRUTAL_AUDIT.md @@ -0,0 +1,56 @@ +# 역할별 처절한 비판과 교정안 + +## 운영사 + +**비판:** 화면과 알고리즘 이름은 많지만, 누가 새벽 배치 실패를 인지하고 어떤 기준으로 고객 공개를 멈추며 몇 시간 안에 복구할지 계약이 약하다. 자동화가 늘수록 운영인력은 줄지 않고 예외처리 책임이 증가한다. +**교정:** P1/P2 장애등급, Owner/Secondary, BusinessHold/Quarantine/Poison 분기, 대사·정정·재처리 Runbook, 월별 rollback drill을 Release Gate에 묶는다. + +## 아키텍트 + +**비판:** Modular Monolith와 Vertical Slice 선택은 정공법이다. 하지만 문서상의 13개 논리 모듈과 실제 구현 2개 모듈 사이의 간극이 크다. Architecture Test가 문자열 검사에 머물면 직접 DB 접근과 잘못된 참조를 놓친다. +**교정:** assembly/namespace/schema/API ownership fitness function, 모듈별 public contract, 금지 의존 allowlist, DB schema role 분리를 CI에서 검증한다. 조기 microservice와 Generic Repository는 금지한다. + +## PM + +**비판:** 288개 WBS는 상세하지만 반복되는 7개 표준 작업이 많아 진행률이 부풀려질 수 있다. PLANNED 60%를 완료 60%로 오인할 위험이 있다. +**교정:** P0 Critical Path, Gate burn-down, Decision Required aging, Evidence completeness를 관리한다. 작업 완료는 파일 생성보다 검증 artifact 링크로 판정한다. + +## PL + +**비판:** 공통 템플릿은 생산성을 높이지만 Slice별 실패상태·경계값·권한·데이터시점이 구체화되지 않으면 복사된 구조만 남는다. +**교정:** VS-03, 08, 09, 10, 11, 14, 15/16, 18, 19, 23, 25를 먼저 실제 계약으로 완성하고 나머지는 동일 패턴을 적용한다. + +## UX/AX 디자이너 + +**비판:** 운영 AG Grid와 기술적 Evidence 화면은 있으나 고객이 “왜 매도인가, 얼마나 팔아야 하는가, 무엇이 틀릴 수 있는가, 언제 다시 보나”를 이해하는 여정이 약하다. +**교정:** 행동요약→핵심근거→반대증거→비용/세금→불확실성→다음검토→재진입 계약 순서로 정보위계를 고정한다. 고객에게 내부 점수와 모델 jargon을 노출하지 않는다. + +## QA 테스터 + +**비판:** Python 정적검증과 Golden 4건은 smoke evidence일 뿐이다. .NET compile, PostgreSQL migration, concurrency, crash, replay, timezone, delisting, corporate action, partial fill을 검증하지 않았다. +**교정:** Architecture/Data/Golden/Integration/E2E/Backtest/Failure/Replay/DR의 8중 테스트 포트폴리오와 Release Evidence를 구축한다. + +## 투자 고객 + +**비판:** 적중률과 예상수익만 보이면 오해를 유발한다. 추천과 실제 체결·고객행동·시장성과가 섞이면 성과책임이 왜곡된다. +**교정:** 추천 성과, 고객 의사결정, 실행 성과를 분리하고 비용·세금·FX·유효기간·데이터 경고를 명시한다. 수익보장 표현은 금지한다. + +## 개발자 + +**비판:** skeleton은 깔끔하지만 lockfile이 없고 실제 build가 미검증이며, 생성되지 않은 OpenAPI client 때문에 DTO drift가 발생할 수 있다. +**교정:** 승인 환경에서 lockfile 생성·review, OpenAPI artifact diff, generated client/Zod schema, Testcontainers/PostgreSQL integration, deterministic seed를 Gate로 둔다. + +## 데이터 아키텍트 + +**비판:** PIT 필드 정의는 강하지만 source priority, 충돌해결, calendar, 단위/통화, total-return, delisting return의 실제 공급계약이 없다. +**교정:** L0 Source Contract를 먼저 승인하고 Raw→Canonical PIT→DQ→Dataset Manifest를 분리한다. 수정은 revision과 supersession으로 보존한다. + +## DBA + +**비판:** DDL은 불변성 방향이 옳지만 볼륨, partition, 인덱스, vacuum, retention, query plan 근거가 없다. 모든 append-only 테이블이 무한 증가하면 운영이 무너진다. +**교정:** 데이터 규모 결정 후 월/시장 partition, BRIN/B-tree 선택, 보존·archive, index usage, migration 4시나리오, backup/restore를 실증한다. + +## 컨설턴트 + +**비판:** 문서 버전이 올라갈수록 “완성”이라는 인상을 주지만, 실제 증거가 없는 상태에서 버전 숫자는 위험한 착시다. +**교정:** 상태를 IMPLEMENTATION_TEMPLATE로 고정하고, Build/DB/Shadow/Pilot은 독립 Evidence Gate로만 승격한다. 더 많은 문서보다 Decision을 닫고 첫 End-to-End Slice를 완성한다. diff --git a/docs/v12_5/03_TARGET_ARCHITECTURE_SOLID_REFACTORING.md b/docs/v12_5/03_TARGET_ARCHITECTURE_SOLID_REFACTORING.md new file mode 100644 index 00000000..0726c493 --- /dev/null +++ b/docs/v12_5/03_TARGET_ARCHITECTURE_SOLID_REFACTORING.md @@ -0,0 +1,39 @@ +# 목표 아키텍처·SOLID·리팩터링 실행기준 + +## 구조 + +단일 배포 Modular Monolith를 유지한다. v10.0의 논리 모듈은 보존하되 Delivery 관점에서는 다음 6개 작업열로 단순화한다. + +1. Platform/Governance: Host, Identity, Capability, Audit, Outbox/Inbox +2. Reference/Data: SecurityMaster, MarketData, CorporateActions, FundamentalsPIT +3. Research/Signal: Factors, Forecast, Sell/Reentry, Frozen Backtest +4. Portfolio/Advisory: Ledger, Risk, IPS, Recommendation, Review/Publish +5. Evaluation/ModelOps: Outcome, Scorecard, Drift, Challenger, Promotion Evidence +6. Operations: Reconciliation, Reporting, Alert, DR, Release Evidence + +논리 모듈의 데이터 소유권은 바꾸지 않는다. 작업열은 PM/PL의 조정 단위다. + +## SOLID + +| 원칙 | 적용 | 금지 | +|---|---|---| +| SRP | Endpoint=HTTP, Application=orchestration, Policy=순수결정, Adapter=I/O | God Service, Job 내부 퀀트수식 | +| OCP | 명시적 Policy/Adapter/Metric Registry | reflection plugin framework | +| LSP | PIT·단위·오류·멱등 contract test | mock success만으로 교체 승인 | +| ISP | IClock, ContextReader, SourceAdapter, OutboxWriter | 대형 범용 Service/Repository | +| DIP | Domain은 FastEndpoints/Dapper/Npgsql/Hangfire를 모름 | Infrastructure type의 Domain 침투 | + +## 리팩터링 규칙 + +- 동작보존 리팩터링과 정책/수식 변경은 별도 PR로 분리한다. +- Characterization/Golden을 먼저 만든 뒤 작은 단위로 바꾼다. +- 중복 코드는 모양이 아니라 의미와 변경축이 같을 때만 공통화한다. +- 3회 반복 전 공통 컴포넌트 승격을 금지한다. +- 모든 interface 생성, 모든 테이블 event sourcing, 모든 기능 microservice화는 금지한다. +- 기술부채는 Owner, 영향, Trigger, Gate, Exit Test를 가진다. + +## Vertical Slice Done + +`REQ → Policy/Data → Endpoint/Job → DB Migration → Event/Outbox → UI → Tests → Metrics/Alert → Runbook/Rollback → Release Evidence` + +어느 한 요소가 비어 있으면 Done이 아니다. diff --git a/docs/v12_5/04_ALGORITHM_MODEL_EVALUATION.md b/docs/v12_5/04_ALGORITHM_MODEL_EVALUATION.md new file mode 100644 index 00000000..886fc534 --- /dev/null +++ b/docs/v12_5/04_ALGORITHM_MODEL_EVALUATION.md @@ -0,0 +1,43 @@ +# 알고리즘·모델평가·지속개선 고도화 + +## 고정 우선순위 + +`HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION/LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION` + +상위 사유는 하위 기대수익으로 상쇄하지 않는다. Hard impairment는 자동 재진입 금지다. 비가치훼손 매도는 ReentryWatch, 새 Cycle/Lot, 최소 10거래일, 단계 간 10거래일, 126거래일 만료를 유지한다. + +## 반드시 분리할 개념 + +- **Reason Severity**: 매도 이유의 우선순위와 terminal 여부 +- **SellRatioOfLot**: 현재 Lot에서 매도할 비율 +- **TargetPortfolioWeightAfter**: 실행 후 포트폴리오 절대비중 +- **StrategicCoreFloorWeight**: 생존 위반이 아니면 보존할 코어 비중 +- **Evidence Grade**: source completeness, freshness, revision, counter-evidence + +이 다섯 값을 하나의 점수로 합치면 설명가능성과 불변조건이 무너진다. + +## 평가 계약 + +| 주기 | 작업 | 자동화 경계 | +|---|---|---| +| 일 | Outcome due window, Scorecard, Drift, Source/Calendar/Evidence audit | 평가와 HOLD만 가능 | +| 주 | Champion/Challenger, revision impact, capacity trend | 비교와 제안만 가능 | +| 월 | Frozen OOS, improvement proposal, promotion evidence packet | 연구승인 제안만 가능 | +| 분기 | CSCV/PBO/DSR, parameter stability, cost2x, rollback drill | 사람 승인 없는 변경 금지 | +| Event | source schema/license, policy/config, release candidate 변경 | 재검증·Release Evidence 생성 | + +## 지표 정의의 함정 + +false-exit와 reentry capture는 분모가 바뀌면 숫자가 조작된다. Metric Definition에 대상 Universe, Decision reason, 평가창, benchmark, 비용, revision, exclusion, minimum sample을 버전으로 고정한다. 지표 정의 미승인은 수치가 좋아도 HOLD다. + +## 승격 최소조건 + +- Shadow 252거래일 이상, 2개 이상 시장국면, 가능하면 24개월 +- 운영 무결성 오류 0 +- 비용후 기대효용 양수와 calibration 안정 +- false-exit 연 2% 이하, reentry capture 65% 이상 +- PBO 20% 이하, DSR 95% 이상, cost2x 양수 +- 최신 PIT/총수익/상폐/기업행사/비용·세금·FX 반영 +- 독립검증, 투자위, 리스크, 준법, 보안, 운영 maker-checker 승인 + +이 조건은 연구후보를 자동으로 투자일임형으로 바꾸는 규칙이 아니라 별도 검토를 시작할 최소 Gate다. diff --git a/docs/v12_5/05_DATA_DB_INTEGRITY.md b/docs/v12_5/05_DATA_DB_INTEGRITY.md new file mode 100644 index 00000000..edadb179 --- /dev/null +++ b/docs/v12_5/05_DATA_DB_INTEGRITY.md @@ -0,0 +1,31 @@ +# 데이터 정합성·정규화·역정규화·DBA 계약 + +## 데이터 계층 + +| Layer | 내용 | 불변조건 | +|---|---|---| +| L0 | Source/License/SLA/Schema/Timezone/Unit | 승인 없는 source 사용 금지 | +| L1 | Raw payload/event/published/ingested/hash | append-only, 원문 overwrite 금지 | +| L2 | Canonical PIT/revision/valid-time/tradable-session | lookahead 0 | +| L3 | DQ/Quarantine/Lineage/Dataset Manifest | 격리 데이터 추천 금지 | +| L4 | Feature/Forecast/Risk/Evidence VersionSet | Dataset/Model/Config/Code/Contract SHA | +| L5 | Ledger/Decision/Review/Publish/Outcome | correction/reversal event | +| L6 | Read Model | ProjectionVersion/Watermark/Stale/Rebuild | +| L7 | Backtest/ModelCard/Release Evidence | artifact hash/environment manifest | + +## 정규화 + +원장, Lot, Fill, Cash, 기업행사, 비용표, Model Version, Metric Definition, Schedule, Request, Observation, Proposal, Review는 별도 엔터티로 관리한다. source key와 valid-time을 unique constraint로 보호한다. JSON은 원본 증거와 설명 bundle에 사용하되 핵심 조회키와 상태를 JSON에 숨기지 않는다. + +## 역정규화 + +운영 Dashboard와 고객 리포트 Read Model에만 허용한다. 반드시 Owner, ProjectionVersion, SourceWatermark, BuiltAt, StaleAt, Rebuild command, diff 검증이 있어야 한다. Write Model을 화면에서 직접 조합하지 않는다. + +## DBA P0 + +- 승인된 규모에 따라 partition/index/retention을 결정한다. 근거 없는 선제 partition은 금지한다. +- migration fresh/upgrade/re-run/failure-recovery 4시나리오를 자동화한다. +- append-only trigger와 correction workflow를 maker-checker E2E로 실증한다. +- PIT 핵심 테이블의 `published_at <= decision_cutoff`를 query/test 모두에서 검증한다. +- total return, delisting return, split/dividend/right/merger가 Lot·현금·원가에 일관되게 반영되는 Golden을 만든다. +- backup/restore와 RPO/RTO를 실제 측정한다. diff --git a/docs/v12_5/06_BE_FE_HANGFIRE_IMPLEMENTATION.md b/docs/v12_5/06_BE_FE_HANGFIRE_IMPLEMENTATION.md new file mode 100644 index 00000000..0d8ac4f0 --- /dev/null +++ b/docs/v12_5/06_BE_FE_HANGFIRE_IMPLEMENTATION.md @@ -0,0 +1,33 @@ +# Backend·Frontend·Hangfire 구현 표준 + +## Backend + +- FastEndpoints는 HTTP 계약·Auth·Validator·ProblemDetails만 담당한다. +- Application은 멱등키, transaction, Context loading, orchestration을 담당한다. +- Domain Policy는 순수 함수와 상태전이로 구현한다. +- Dapper SQL은 명시 컬럼·명시 transaction·PIT cutoff를 사용한다. +- Decision과 Outbox는 동일 transaction이다. +- Inbox는 message id/version/consumer 기준 중복 side effect를 0으로 만든다. +- 생산형 Command는 PositionLotId, AsOf, IdempotencyKey 등 최소 식별자만 받고 Evidence/VersionSet은 서버가 조회한다. + +## v12.5 Scheduler 안전장치 + +- Dispatcher는 configuration에서 기본 OFF다. +- OFF이면 recurring job을 제거한다. +- ShadowEvaluation capability가 꺼져 있으면 Dispatcher를 활성화할 수 없다. +- J10~J30은 평가·제안·훈련만 허용하며 모델/설정/코드·고객공개·주문을 변경하지 않는다. +- 기존 schedule은 migration 후 재승인 전 disabled다. +- default Hangfire blind retry를 제한하고 BusinessHold/Quarantine/Poison을 구분한다. +- 시장캘린더와 source completeness 승인 전 J26을 활성화하지 않는다. + +## Frontend + +| 상태 | 소유자 | 규칙 | +|---|---|---| +| Server state | TanStack Query | query-key registry, staleTime, invalidate, retry | +| Session/Role/UI preference | Pinia | 도메인 서버데이터 복제 금지 | +| Form | vee-validate + Zod | request/response runtime validation | +| URL 공유상태 | vue-router | scope/cohort/window/filter deep link | +| 대량 운영목록 | AG Grid | server-side model과 column-state contract | + +고객 화면은 내부 운영 화면과 분리한다. 고객에게는 행동·비중·핵심근거·반대증거·비용·불확실성·유효기간·다음검토·재진입 계약을 제공한다. 운영자에게는 VersionSet, DQ, policy trace, approval, audit를 제공한다. diff --git a/docs/v12_5/07_QA_SECURITY_OPERATIONS.md b/docs/v12_5/07_QA_SECURITY_OPERATIONS.md new file mode 100644 index 00000000..a74a746f --- /dev/null +++ b/docs/v12_5/07_QA_SECURITY_OPERATIONS.md @@ -0,0 +1,29 @@ +# QA·보안·운영·배포 Gate + +## 테스트 포트폴리오 + +1. Architecture: module/namespace/schema/API 금지 의존 +2. Unit/Golden: 정책 우선순위·경계·단조성·상태전이 +3. Data: PIT, revision, calendar, CA, delisting, total return, unit/currency +4. Integration: PostgreSQL/Dapper/DbUp/Outbox/Inbox/Hangfire +5. E2E: 추천생성→검토→공개→고객결정→Outcome +6. Failure/Chaos: crash-before/after-publish, duplicate, out-of-order, timeout +7. Backtest: frozen manifest, walk-forward OOS, PBO/DSR, cost2x +8. DR: backup/restore, rollback drill, projection rebuild + +## 보안 + +- OIDC/JWT 공급자, issuer/audience/claims/key rotation을 ADR로 승인한다. +- DevelopmentHeader는 Development 환경 이외에서 fail-closed다. +- PII classification과 Serilog/OTel/Telegram redaction을 테스트한다. +- secret/token/account/customer data를 prompt, fixture, log, trace에 넣지 않는다. +- maker와 checker, model developer와 production approver를 분리한다. +- SBOM, NuGet/npm license allowlist, vulnerability gate를 Release Evidence에 포함한다. + +## 운영 + +- SLO: 데이터 준비, 추천 배치, 공개, 대사, 평가 지연을 각각 정의한다. +- P1: lookahead, 미승인 공개/주문, 원장불균형, 대량결측, 증거 hash 불일치. +- P2: SLA miss, projection stale, 일부 source 지연. +- 모든 alert에는 Owner/Secondary, runbook, silence rule, rollback을 연결한다. +- SQL 직접 정정과 blind retry를 금지한다. diff --git a/docs/v12_5/08_PROCESS_SIMPLIFICATION_VIBE_CODING.md b/docs/v12_5/08_PROCESS_SIMPLIFICATION_VIBE_CODING.md new file mode 100644 index 00000000..83251788 --- /dev/null +++ b/docs/v12_5/08_PROCESS_SIMPLIFICATION_VIBE_CODING.md @@ -0,0 +1,24 @@ +# 프로세스 단순화·바이브코딩·홀루시네이션 통제 + +## 단일 Delivery Flow + +`Idea → Decision Required 해소 → Slice Ready → Walking Skeleton → Contract/Golden → Implement → Review → Release Evidence → Observe → Outcome/Debt` + +## Source 분류 + +- SOURCE: 첨부·승인계약에 직접 근거 +- ASSUMPTION: Owner/만료일/영향/승인이 필요한 착수가정 +- UNKNOWN: 자료로 판단 불가, 코드 기본값 금지 +- DECISION_REQUIRED: Gate 이전 결정 필요 + +## AI 작업 패킷 + +Requirement, Slice, Policy, Data cutoff, API, DB, Job/Event, UI, Test, 금지패턴, 검증명령, 예상변경 파일을 반드시 포함한다. 새 library, table, threshold, index, pattern은 ADR/Decision 없이 도입하지 않는다. + +## 홀루시네이션 방지 + +- 실행하지 않은 build/test/migration/Shadow/PBO/DSR을 PASS로 기록하지 않는다. +- 생성형 AI가 source 없이 팩터·임계값·법적 판단을 만들지 않는다. +- 코드가 compile될 것이라고 추정하지 않고 승인 runner artifact로 증명한다. +- 정책 수치가 문서·JSON·C#에 중복되면 machine-readable contract를 단일 기준으로 만들고 drift test를 둔다. +- PR은 Source/Assumption/Unknown/Decision Required와 실제 실행 결과를 기록한다. diff --git a/docs/v12_5/09_ROADMAP_20D_90D_36M.md b/docs/v12_5/09_ROADMAP_20D_90D_36M.md new file mode 100644 index 00000000..9c2fbf49 --- /dev/null +++ b/docs/v12_5/09_ROADMAP_20D_90D_36M.md @@ -0,0 +1,30 @@ +# 20영업일·90일·36개월 실행 로드맵 + +## 20영업일 재착수 + +| 기간 | 핵심 | 완료증거 | +|---|---|---| +| D1~D3 | 기준선·Coverage·Decision·자동화 OFF | Steering 승인, ID 중복 0 | +| D4~D6 | .NET/node/pnpm/lock/secret/Gitea | reproducible bootstrap | +| D7~D10 | DbUp 4시나리오, Auth, Outbox/Inbox, Architecture | G0 통과 | +| D11~D14 | SecurityMaster·MarketData·CA·PIT·DQ·Calendar | replay hash 동일, lookahead 0 | +| D15~D17 | Evidence·Sell/Reentry Golden·DB invariant | G2-A 통과 | +| D18~D20 | Recommendation Review/Publish/Outcome E2E | 첫 End-to-End Slice Done | + +## 90일 + +- 1~30일: Toolchain/Data G0/G1, VS-00/02/03/04/06 +- 31~60일: Ledger/Evidence/Sell/Reentry/Risk, VS-08/09/10/11/13 +- 61~90일: Recommendation/Review/Publish/Outcome, VS-14/15/16/18, Shadow 시작 + +Portfolio 후보·리밸런싱과 KIS 연계는 Critical Path 뒤로 둔다. 자동주문은 계속 OFF다. + +## 36개월 + +- M1~3: MVP skeleton, 데이터·매도·재진입·승인·평가 E2E +- M4~9: Shadow, DQ/Outcome/false-exit/reentry calibration +- M10~18: 복수 국면, Challenger, PBO/DSR, 비용·세금·FX 고도화 +- M19~24: 제한 Pilot 준비, SLO/DR/보안/민원·대사 검증 +- M25~36: 독립검증과 운영성과를 바탕으로 일임형 타당성 별도 검토 + +매월 Debt review, 분기 Model review/rollback drill, 반기 Source/License/Architecture review, 연 1회 DR·보안·규제 review를 수행한다. diff --git a/docs/v12_5/10_DETAILED_WBS_MASTER.csv b/docs/v12_5/10_DETAILED_WBS_MASTER.csv new file mode 100644 index 00000000..2464793e --- /dev/null +++ b/docs/v12_5/10_DETAILED_WBS_MASTER.csv @@ -0,0 +1,337 @@ +WBS_ID,Sprint,Weeks,Slice_ID,Slice,Module,Workstream,Requirement_ID,API_ID,DB_Migration_ID,Job_Event_ID,UI_ID,Test_ID,Task,Artifact,Acceptance_Evidence,Primary_Owner,Secondary,PD,Dependency,Gate,Evidence_Class,Risk,Status +AEG-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,Cross,Version Coverage Matrix 고도화,Version Coverage Matrix·Supersession Registry,모든 첨부와 v10/v12/v12.1의 Retained/Improved/Superseded 상태 100%,PM/Architect,Architect/QA,5,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,Cross,global.json 고도화,global.json·Directory.Packages·node/packageManager·lock 정책,승인 runner에서 dotnet restore/build/test 및 pnpm frozen build 재현,DevOps,Architect/QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,Cross,모듈/namespace/schema/API 금지 의존 Architecture tests 고도화,모듈/namespace/schema/API 금지 의존 Architecture tests,"Domain 기술의존 0, 모듈 직접 DB 접근 0, ID 중복 0",Architect/QA,Architect/QA,7,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-004,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/re-run/failure 복구 rehearsal 고도화,DbUp fresh/upgrade/re-run/failure 복구 rehearsal,PostgreSQL 승인 버전에서 4 시나리오와 checksum 변경 차단 통과,DBA/BE,Architect/QA,8,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-005,S0,W1-2,Cross,Cross-cutting,Security,SEC,REQ-SEC-BASE,Cross,Cross,Cross,Cross,Cross,"OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed 고도화","OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed","비개발 무인증 접근 0, secret/log/prompt 노출 0",Security/BE,Architect/QA,7,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,ASYNC,REQ-ASYNC-001,Cross,Cross,Cross,Cross,Cross,Outbox publisher 고도화,Outbox publisher·Inbox lease·dead-letter·replay,"duplicate 0, crash-before/after-publish 시나리오와 replay hash 통과",BE/SRE,Architect/QA,10,AEG-X-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-007,S0,W1-2,Cross,Cross-cutting,Observability,OPS,REQ-OBS-001,Cross,Cross,Cross,Cross,Cross,Serilog/OTel correlation 고도화,Serilog/OTel correlation·metric naming·Telegram redaction,"trace→job→decision→outbox 연결, PII redaction test 통과",SRE/Security,Architect/QA,7,AEG-X-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-008,S0,W1-2,Cross,Cross-cutting,API Contract,CONTRACT,REQ-API-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact 고도화,OpenAPI artifact·ProblemDetails taxonomy·FE contract generation,OpenAPI diff와 breaking change approval 없이는 Release 차단,BE/FE Architect,Architect/QA,8,AEG-X-003,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-01,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,GOV,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,정책·범위·실패상태 계약 확정,"REQ-PLAT-001, VS-00 SLICE_SPEC, ADR/Decision Log",사용자 결과 '빌드·마이그레이션·관제 가능한 단일 배포 골격'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-02,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DATA,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,데이터 시점·스키마·정합성 계약,"MIG-0000/0013, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-00-01,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-03,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DOMAIN,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,도메인 불변조건·상태전이 구현,"src/Modules/Host/BuildingBlocks/PlatformBootstrap/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-00-02,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-04,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,BE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vertical Slice API/Application/SQL 구현,HEALTH-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-00-03,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-05,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,ASYNC,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-00-04,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-06,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,FE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vue feature·Zod·Query·컴포넌트 구현,UI-PLAT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-00-05,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-07,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,TESTOPS,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,회귀·관제·Runbook·Rollback 증거,T-ARCH-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-00-06,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-009,S1,W3-4,Cross,Cross-cutting,Data Governance,DATA,REQ-DATA-SOURCE,Cross,Cross,Cross,Cross,Cross,Source catalog/license/SLA/timezone/unit/checksum 고도화,Source catalog/license/SLA/timezone/unit/checksum,승인 없는 source가 ingestion 또는 추천으로 진입하지 않음,Data Governance,Architect/QA,8,AEG-X-001,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-01,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,GOV,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,정책·범위·실패상태 계약 확정,"REQ-IAM-001, VS-01 SLICE_SPEC, ADR/Decision Log",사용자 결과 'MFA·RBAC·업무분장과 승인 경계'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-02,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DATA,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,데이터 시점·스키마·정합성 계약,"MIG-IAM-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-01-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-03,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DOMAIN,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,도메인 불변조건·상태전이 구현,"src/Modules/IdentityAccess/ManageIdentityAndRoles/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-01-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-04,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,BE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vertical Slice API/Application/SQL 구현,IAM-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-01-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-05,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,ASYNC,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-01-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-06,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,FE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vue feature·Zod·Query·컴포넌트 구현,UI-IAM-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-01-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-07,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,TESTOPS,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,회귀·관제·Runbook·Rollback 증거,T-IAM-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-01-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-01,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,GOV,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,정책·범위·실패상태 계약 확정,"REQ-SEC-001, VS-02 SLICE_SPEC, ADR/Decision Log",사용자 결과 '상장·상폐·상품구조·거래가능성의 PIT 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-02,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DATA,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,데이터 시점·스키마·정합성 계약,"MIG-SEC-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-02-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-03,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DOMAIN,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/SynchronizeSecurityMaster/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-02-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-04,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,BE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vertical Slice API/Application/SQL 구현,"SEC-01/02,DAT-01; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-02-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-05,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,ASYNC,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Event/Job/Inbox·재처리 구현,"J01; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-02-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-06,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,FE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SEC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-02-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-07,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,TESTOPS,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,회귀·관제·Runbook·Rollback 증거,T-SEC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-02-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-010,S2,W5-6,Cross,Cross-cutting,Read Model,PROJECTION,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,projection owner/version/watermark/rebuild/staleness 고도화,projection owner/version/watermark/rebuild/staleness,"write model 직접 UI join 0, rebuild 결과 hash 동일",BE/Data,Architect/QA,8,AEG-X-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-01,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,GOV,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,정책·범위·실패상태 계약 확정,"REQ-DAT-001, VS-03 SLICE_SPEC, ADR/Decision Log",사용자 결과 '원시·조정 OHLCV·FX·금리의 revision 적재'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-02,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,데이터 시점·스키마·정합성 계약,"MIG-MD-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-03-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-03,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DOMAIN,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,도메인 불변조건·상태전이 구현,"src/Modules/MarketData/IngestMarketDataPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-03-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-04,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,BE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vertical Slice API/Application/SQL 구현,DAT-02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-03-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-05,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,ASYNC,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Event/Job/Inbox·재처리 구현,"J02; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-03-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-06,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,FE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-03-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-07,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,TESTOPS,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,회귀·관제·Runbook·Rollback 증거,T-DQ-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-03-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-01,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,GOV,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,정책·범위·실패상태 계약 확정,"REQ-CA-001, VS-04 SLICE_SPEC, ADR/Decision Log",사용자 결과 '분할·배당·증자·합병·상폐의 가격·수량·원가 일관성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-03",G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-02,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DATA,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,데이터 시점·스키마·정합성 계약,"MIG-CA-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-04-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-03,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DOMAIN,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/ApplyCorporateActions/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-04-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-04,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,BE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vertical Slice API/Application/SQL 구현,DAT-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-04-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-05,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,ASYNC,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Event/Job/Inbox·재처리 구현,"J03; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-04-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-06,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,FE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-02; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-04-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-07,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,TESTOPS,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,회귀·관제·Runbook·Rollback 증거,T-CA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-04-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-01,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,GOV,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,정책·범위·실패상태 계약 확정,"REQ-FND-001, VS-05 SLICE_SPEC, ADR/Decision Log",사용자 결과 '공시·재무·컨센서스 공개시각과 정정 이력'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-02,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DATA,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,데이터 시점·스키마·정합성 계약,"MIG-FND-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-05-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-03,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DOMAIN,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,도메인 불변조건·상태전이 구현,"src/Modules/FundamentalsPIT/IngestFundamentalsPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-05-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-04,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,BE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vertical Slice API/Application/SQL 구현,DAT-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-05-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-05,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,ASYNC,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Event/Job/Inbox·재처리 구현,"J04; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-05-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-06,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,FE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vue feature·Zod·Query·컴포넌트 구현,UI-FND-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-05-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-07,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,TESTOPS,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,회귀·관제·Runbook·Rollback 증거,T-FND-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-05-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-01,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,GOV,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,정책·범위·실패상태 계약 확정,"REQ-COST-001, VS-06 SLICE_SPEC, ADR/Decision Log",사용자 결과 '계좌·시장·상품별 Fee/Tax/FX valid-time 계약'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-02,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DATA,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,데이터 시점·스키마·정합성 계약,"MIG-COST-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-06-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-03,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DOMAIN,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainFeeTaxFxSchedule/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-06-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-04,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,BE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vertical Slice API/Application/SQL 구현,COST-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-06-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-05,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,ASYNC,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Event/Job/Inbox·재처리 구현,"J04C; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-06-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-06,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,FE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vue feature·Zod·Query·컴포넌트 구현,UI-COST-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-06-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-07,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,TESTOPS,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,회귀·관제·Runbook·Rollback 증거,T-COST-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-06-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-01,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,GOV,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,정책·범위·실패상태 계약 확정,"REQ-LED-001, VS-08 SLICE_SPEC, ADR/Decision Log",사용자 결과 '현금·체결·Lot·Cycle 불변 원장과 대사 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-06",G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-02,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DATA,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,데이터 시점·스키마·정합성 계약,"MIG-LED-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-08-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-03,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DOMAIN,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainPortfolioLedger/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-08-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-04,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,BE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vertical Slice API/Application/SQL 구현,POR-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-08-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-05,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,ASYNC,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Event/Job/Inbox·재처리 구현,"J12L; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-08-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-06,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,FE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vue feature·Zod·Query·컴포넌트 구현,UI-POR-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-08-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-07,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,TESTOPS,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,회귀·관제·Runbook·Rollback 증거,T-LED-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-08-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-011,S4,W9-10,Cross,Cross-cutting,Algorithm,GOLDEN,REQ-ALG-GOLDEN,Cross,Cross,Cross,Cross,Cross,Python↔C# Golden vector 고도화,Python↔C# Golden vector·epsilon·rounding 계약,정책 ID별 경계·우선순위·cost×2 결과 허용오차 내 동일,Quant/QA,Architect/QA,10,VS-09,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-01,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,GOV,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,정책·범위·실패상태 계약 확정,"REQ-EVD-001, VS-09 SLICE_SPEC, ADR/Decision Log",사용자 결과 'Dataset/Model/Config/Code SHA가 동결된 Evidence'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-02,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,데이터 시점·스키마·정합성 계약,"MIG-EVD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-09-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-03,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DOMAIN,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,도메인 불변조건·상태전이 구현,"src/Modules/ResearchFactors/BuildEvidenceSnapshot/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-09-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-04,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,BE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vertical Slice API/Application/SQL 구현,EVD-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-09-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-05,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,ASYNC,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Event/Job/Inbox·재처리 구현,"J06; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-09-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-06,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,FE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-09-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-07,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,TESTOPS,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,회귀·관제·Runbook·Rollback 증거,T-EVD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-09-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-01,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,GOV,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,정책·범위·실패상태 계약 확정,"REQ-SELL-001, VS-10 SLICE_SPEC, ADR/Decision Log",사용자 결과 '우선순위가 보존된 HOLD/부분매도/전량매도 결정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-09,VS-13",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-02,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DATA,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,데이터 시점·스키마·정합성 계약,"MIG-SIG-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-10-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-03,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DOMAIN,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/GenerateSellDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-10-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-04,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,BE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vertical Slice API/Application/SQL 구현,SIG-SELL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-10-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-05,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ASYNC,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Event/Job/Inbox·재처리 구현,"J08S; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-10-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-06,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SELL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-10-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-07,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,TESTOPS,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,회귀·관제·Runbook·Rollback 증거,T-SELL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-10-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-012,S5,W11-12,Cross,Cross-cutting,Research,REPRO,REQ-REPRO-001,Cross,Cross,Cross,Cross,Cross,dataset/code/config/environment manifest와 artifact hash 고도화,dataset/code/config/environment manifest와 artifact hash,"동일 manifest·seed 결과 재현, 실패 artifact 보존",Quant/Data,Architect/QA,12,AEG-X-009,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-01,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,GOV,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,정책·범위·실패상태 계약 확정,"REQ-RE-001, VS-11 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비가치훼손 매도의 재진입 계약·단계·만료'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-10,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-02,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DATA,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,데이터 시점·스키마·정합성 계약,"MIG-RE-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-11-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-03,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DOMAIN,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/ManageReentryWatch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-11-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-04,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,BE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vertical Slice API/Application/SQL 구현,RE-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-11-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-05,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ASYNC,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Event/Job/Inbox·재처리 구현,"J09; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-11-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-06,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,FE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RE-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-11-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-07,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,TESTOPS,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,회귀·관제·Runbook·Rollback 증거,T-RE-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-11-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-01,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,GOV,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,정책·범위·실패상태 계약 확정,"REQ-BKT-001, VS-19 SLICE_SPEC, ADR/Decision Log",사용자 결과 '동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06,VS-09",G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-02,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DATA,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,데이터 시점·스키마·정합성 계약,"MIG-BKT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-19-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-03,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DOMAIN,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/RunFrozenBacktest/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-19-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-04,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,BE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vertical Slice API/Application/SQL 구현,BKT-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-19-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-05,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,ASYNC,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Event/Job/Inbox·재처리 구현,"J-BKT; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-19-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-06,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,FE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BKT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-19-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-07,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,TESTOPS,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,회귀·관제·Runbook·Rollback 증거,T-BKT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-19-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-01,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,GOV,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,정책·범위·실패상태 계약 확정,"REQ-CLI-001, VS-07 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 목표·위험성향·제한상품의 버전 관리'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-02,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DATA,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,데이터 시점·스키마·정합성 계약,"MIG-CLI-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-07-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-03,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DOMAIN,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ManageClientIPS/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-07-02,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-04,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,BE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vertical Slice API/Application/SQL 구현,CLI-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-07-03,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-05,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,ASYNC,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-07-04,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-06,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,FE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLI-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-07-05,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-07,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,TESTOPS,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,회귀·관제·Runbook·Rollback 증거,T-CLI-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-07-06,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-01,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,GOV,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,정책·범위·실패상태 계약 확정,"REQ-REC-001, VS-14 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-10,VS-12,VS-13",MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-02,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DATA,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,데이터 시점·스키마·정합성 계약,"MIG-REC-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-14-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-03,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DOMAIN,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/GenerateDailyRecommendations/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-14-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-04,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vertical Slice API/Application/SQL 구현,SIG-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-14-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-05,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,ASYNC,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Event/Job/Inbox·재처리 구현,"J08; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-14-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-06,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,FE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-14-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-07,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,TESTOPS,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,회귀·관제·Runbook·Rollback 증거,T-REC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-14-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-01,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,GOV,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,정책·범위·실패상태 계약 확정,"REQ-REV-001, VS-15 SLICE_SPEC, ADR/Decision Log",사용자 결과 'maker-checker 승인·보류·기각과 낙관적 동시성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-14,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-02,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DATA,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,데이터 시점·스키마·정합성 계약,"MIG-REV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-15-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-03,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DOMAIN,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ReviewRecommendation/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-15-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-04,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,BE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vertical Slice API/Application/SQL 구현,SIG-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-15-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-05,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,ASYNC,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-06,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,FE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-15-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-07,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,TESTOPS,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,회귀·관제·Runbook·Rollback 증거,T-REV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-15-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-013,S8,W17-18,Cross,Cross-cutting,Audit,TRACE,REQ-AUDIT-E2E,Cross,Cross,Cross,Cross,Cross,Evidence→Decision→Review→Publish→Outcome trace API 고도화,Evidence→Decision→Review→Publish→Outcome trace API,"publication/decision 기준 누락 링크 0, correction event 보존",Compliance/BE,Architect/QA,8,VS-18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-01,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,GOV,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,정책·범위·실패상태 계약 확정,"REQ-PUB-001, VS-16 SLICE_SPEC, ADR/Decision Log",사용자 결과 '승인·유효·데이터 정상 제안만 고객 공개'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-15,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-02,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DATA,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,데이터 시점·스키마·정합성 계약,"MIG-PUB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-16-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-03,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DOMAIN,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/PublishClientAdvice/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-16-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-04,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vertical Slice API/Application/SQL 구현,SIG-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-16-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-05,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,ASYNC,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Event/Job/Inbox·재처리 구현,"J-PUB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-16-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-06,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,FE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-ADV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-16-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-07,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,TESTOPS,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,회귀·관제·Runbook·Rollback 증거,T-PUB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-16-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-01,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,GOV,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,정책·범위·실패상태 계약 확정,"REQ-CLD-001, VS-17 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 수락·거절·보류와 attribution 연결'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-16,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-02,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DATA,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,데이터 시점·스키마·정합성 계약,"MIG-CLD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-17-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-03,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DOMAIN,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/RecordClientDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-17-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-04,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,BE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vertical Slice API/Application/SQL 구현,SIG-06; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-17-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-05,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,ASYNC,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-17-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-06,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,FE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-17-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-07,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,TESTOPS,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,회귀·관제·Runbook·Rollback 증거,T-CLD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-17-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-01,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,정책·범위·실패상태 계약 확정,"REQ-EVA-001, VS-18 SLICE_SPEC, ADR/Decision Log",사용자 결과 '1/5/20/63/126/252일 결과·매도·재진입 품질 평가'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-10,VS-11,VS-16,VS-17",G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-02,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,데이터 시점·스키마·정합성 계약,"MIG-EVA-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-18-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-03,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DOMAIN,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/EvaluateDecisionOutcome/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-18-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-04,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vertical Slice API/Application/SQL 구현,EVA-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-05,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ASYNC,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Event/Job/Inbox·재처리 구현,"J10/J11; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-18-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-06,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVA-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-18-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-07,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,TESTOPS,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,회귀·관제·Runbook·Rollback 증거,T-EVA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-18-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-01,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,GOV,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,정책·범위·실패상태 계약 확정,"REQ-RISK-001, VS-13 SLICE_SPEC, ADR/Decision Log",사용자 결과 'ES·집중·상관·자본바닥 위험 스냅샷'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-08",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-02,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DATA,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,데이터 시점·스키마·정합성 계약,"MIG-RISK-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-13-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-03,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DOMAIN,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/CalculatePortfolioRisk/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-13-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-04,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,BE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vertical Slice API/Application/SQL 구현,POR-02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-13-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-05,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,ASYNC,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Event/Job/Inbox·재처리 구현,"J07; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-13-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-06,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,FE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RISK-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-13-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-07,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,TESTOPS,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,회귀·관제·Runbook·Rollback 증거,T-RISK-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-13-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-01,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,GOV,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,정책·범위·실패상태 계약 확정,"REQ-REB-001, VS-21 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비용·세금·위험예산·제약을 만족하는 리밸런싱'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-08,VS-12,VS-13",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-02,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DATA,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,데이터 시점·스키마·정합성 계약,"MIG-REB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-21-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-03,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DOMAIN,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/BuildRebalanceProposal/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-21-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-04,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,BE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vertical Slice API/Application/SQL 구현,REB-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-21-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-05,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,ASYNC,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Event/Job/Inbox·재처리 구현,"J-REB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-21-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-06,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,FE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REB-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-21-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-07,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,TESTOPS,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,회귀·관제·Runbook·Rollback 증거,T-REB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-21-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-01,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,GOV,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,정책·범위·실패상태 계약 확정,"REQ-BUY-001, VS-12 SLICE_SPEC, ADR/Decision Log",사용자 결과 'PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-05,VS-06,VS-09",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-02,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DATA,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,데이터 시점·스키마·정합성 계약,"MIG-BUY-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-12-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-03,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DOMAIN,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,도메인 불변조건·상태전이 구현,"src/Modules/ValuationForecast/RankBuyCandidates/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-12-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-04,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,BE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vertical Slice API/Application/SQL 구현,BUY-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-12-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-05,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,ASYNC,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Event/Job/Inbox·재처리 구현,"J08B; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-12-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-06,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,FE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BUY-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-12-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-07,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,TESTOPS,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,회귀·관제·Runbook·Rollback 증거,T-BUY-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-12-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-01,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,GOV,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,정책·범위·실패상태 계약 확정,"REQ-RPL-001, VS-22 SLICE_SPEC, ADR/Decision Log",사용자 결과 '적합성·유동성·비용후 기회우위 대체상품 비교'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-12,VS-13",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-02,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DATA,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,데이터 시점·스키마·정합성 계약,"MIG-RPL-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-22-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-03,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DOMAIN,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/SuggestReplacementProducts/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-22-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-04,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,BE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vertical Slice API/Application/SQL 구현,RPL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-22-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-05,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,ASYNC,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Event/Job/Inbox·재처리 구현,"J-RPL; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-22-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-06,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,FE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-22-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-07,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,TESTOPS,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,회귀·관제·Runbook·Rollback 증거,T-RPL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-22-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-014,S11,W23-24,Cross,Cross-cutting,Model Risk,VALIDATION,REQ-MODEL-RISK,Cross,Cross,Cross,Cross,Cross,CSCV/PBO 고도화,CSCV/PBO·DSR·block bootstrap·시도 원장,"PBO≤20%, DSR≥95%, cost×2 utility 양수 또는 승격 차단",Quant/Risk,Architect/QA,15,AEG-X-012,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-015,S11,W23-24,Cross,Cross-cutting,Shadow,EVAL,REQ-SHADOW-001,Cross,Cross,Cross,Cross,Cross,252거래일 고도화,252거래일·복수 국면 일평가 scorecard,적중률 단독 아닌 calibration/ES/false-exit/reentry/운영무결성 판정,Quant/Ops,Architect/QA,14,VS-18,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-01,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,정책·범위·실패상태 계약 확정,"REQ-MOD-001, VS-20 SLICE_SPEC, ADR/Decision Log",사용자 결과 '모델 승격 증거·승인·롤백·챔피언/챌린저'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-18,VS-19",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-02,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DATA,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,데이터 시점·스키마·정합성 계약,"MIG-MOD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-20-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-03,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DOMAIN,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/PromoteModelVersion/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-20-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-04,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,BE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vertical Slice API/Application/SQL 구현,MOD-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-20-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-05,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ASYNC,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Event/Job/Inbox·재처리 구현,"J-MOD; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-20-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-06,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-MOD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-20-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-07,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,TESTOPS,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,회귀·관제·Runbook·Rollback 증거,T-MOD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-20-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-01,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,GOV,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,정책·범위·실패상태 계약 확정,"REQ-RPT-001, VS-24 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 리포트·SignalR·Telegram 운영 경보'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-16,VS-18",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-02,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DATA,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,데이터 시점·스키마·정합성 계약,"MIG-RPT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-24-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-03,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DOMAIN,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,도메인 불변조건·상태전이 구현,"src/Modules/ReportingNotifications/ReportAndNotify/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-24-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-04,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,BE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vertical Slice API/Application/SQL 구현,RPT-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-24-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-05,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,ASYNC,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Event/Job/Inbox·재처리 구현,"J11R; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-24-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-06,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,FE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-24-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-07,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,TESTOPS,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,회귀·관제·Runbook·Rollback 증거,T-RPT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-24-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-016,S12,W25-26,Cross,Cross-cutting,Broker,CAPABILITY,REQ-KIS-OFF,Cross,Cross,Cross,Cross,Cross,KIS 주문 제출 startup/CI/runtime 차단 고도화,KIS 주문 제출 startup/CI/runtime 차단,"외부 주문 호출 0, capability override 감사·kill-switch 통과",Security/Ops,Architect/QA,7,AEG-X-005,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-01,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,GOV,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,정책·범위·실패상태 계약 확정,"REQ-RECON-001, VS-23 SLICE_SPEC, ADR/Decision Log",사용자 결과 '브로커·내부 주문·체결·보유·현금 break와 승인 정정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-16",Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-02,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,데이터 시점·스키마·정합성 계약,"MIG-EXE-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-23-01,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-03,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DOMAIN,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,도메인 불변조건·상태전이 구현,"src/Modules/ExecutionReconciliation/ReconcilePositionsAndFills/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-23-02,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-04,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,BE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vertical Slice API/Application/SQL 구현,"EXE-01/02,REC-01/02; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-23-03,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-05,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,ASYNC,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Event/Job/Inbox·재처리 구현,"J12; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-23-04,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-06,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,FE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RECON-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-23-05,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-07,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,TESTOPS,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,회귀·관제·Runbook·Rollback 증거,T-RECON-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-23-06,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-017,S13,W27-28,Cross,Cross-cutting,DR,OPS,REQ-DR-001,Cross,Cross,Cross,Cross,Cross,RPO/RTO 고도화,RPO/RTO·backup/restore·region/host failure rehearsal,"승인 RPO/RTO 내 복구, 원장·outbox·projection 대사 100%",SRE/DBA,Architect/QA,12,AEG-X-006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-01,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,GOV,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,정책·범위·실패상태 계약 확정,"REQ-GOV-001, VS-25 SLICE_SPEC, ADR/Decision Log",사용자 결과 '입력→결정→승인→공개→실행→평가 추적과 단계별 차단'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-01,VS-16,VS-20,VS-23",G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-02,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DATA,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,데이터 시점·스키마·정합성 계약,"MIG-GOV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-25-01,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-03,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DOMAIN,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/AuditAndKillSwitch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-25-02,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-04,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,BE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vertical Slice API/Application/SQL 구현,GOV-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-25-03,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-05,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,ASYNC,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Event/Job/Inbox·재처리 구현,"J-GOV; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-25-04,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-06,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,FE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-GOV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-25-05,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-07,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TESTOPS,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,회귀·관제·Runbook·Rollback 증거,T-GOV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-25-06,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-018,S14,W29-30,Cross,Cross-cutting,Performance,NFR,REQ-NFR-001,Cross,Cross,Cross,Cross,Cross,API P95 고도화,API P95·batch SLA·portfolio 규모·backfill 부하시험,개장 전 추천 SLA와 고객 API SLO가 동시에 충족,SRE/QA,Architect/QA,10,AEG-X-017,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-019,S14,W29-30,Cross,Cross-cutting,Cutover,RELEASE,REQ-CUT-001,Cross,Cross,Cross,Cross,Cross,dry-run/backfill/recon/rollback/release evidence 고도화,dry-run/backfill/recon/rollback/release evidence,"미승인 공개 0, duplicate 0, rollback 리허설과 승인 서명",PM/Ops,Architect/QA,10,AEG-X-018,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-020,S15,W31-32,Cross,Cross-cutting,Hypercare,OPS,REQ-HYP-001,Cross,Cross,Cross,Cross,Cross,P1/P2 triage 고도화,P1/P2 triage·daily reconciliation·debt burn-down,초기 안정화 Exit 기준·Owner·잔여 부채 승인,Ops/PM,Architect/QA,8,AEG-X-019,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-DOC-022,Current-session source coverage and SHA register,Source Coverage Matrix/Source Index,6 current attachments preserved byte-for-byte and hashes match,PM/Architect,QA/Compliance,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG22-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,T-CI-022,Offline-safe package manager and lockfile decision,packageManager/LOCKFILE_REQUIRED/CI guard,No silent dependency resolution; frozen install blocks until approved lock exists,DevOps,FE Lead,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,ARCH,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-ARCH-022,Module/Vertical Slice template pack,"templates/dotnet,vue,sql,hangfire",New slice can be generated without Generic Repository or controller-service duplication,Architect,BE/FE Leads,6,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-004,S0,W1-2,Cross,Cross-cutting,API,BE,REQ-API-001,API-CONTEXT-01,Cross,Cross,Cross,T-API-022,Correlation/Idempotency/ProblemDetails shared contract,request execution standard,400/401/403/409/422 and trace/idempotency rules consistent,BE Lead,QA/SRE,6,AEG-X-004,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-005,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-REHEARSAL,Cross,MIG-REHEARSAL,Cross,Cross,T-DB-022,DbUp fresh/upgrade/re-run/failure rehearsal script,scripts/rehearse_migrations.sh,Approved PostgreSQL runner produces 4 scenario artifacts,DBA,BE/DevOps,8,AEG-X-004,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-OUTBOX-001,Cross,MIG-0013,JOB-OUTBOX-01,Cross,T-OUTBOX-022,Outbox lease/dead-letter/replay hardening,outbox dispatcher template/runbook,Crash-before/after publish yields no lost message and idempotent downstream,BE/SRE,QA,10,AEG-X-006,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-007,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-INBOX-001,Cross,MIG-0013,JOB-INBOX-01,Cross,T-INBOX-022,Inbox duplicate/result-hash contract,inbox consumer template,Same consumer/message performs side effect once and replay hash is stable,BE/SRE,QA,8,AEG-X-007,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-008,S0,W1-2,Cross,Cross-cutting,Batch,JOB,REQ-JOB-001,Cross,MIG-0000,JOB-RUN-STD,UI-OPS-JOB,T-JOB-022,JobRun/Watermark/heartbeat scope standard,ReliableJob template,Concurrent duplicate is held; retry preserves scope/version/input hash,BE/SRE,QA/Data,8,AEG-X-008,G1,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-001,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,Separate security weight and lot weight,SellDecisionInput/context/migration,Lot ratio changes only lot weight; target security weight is exact,Quant/BE,DBA/QA,10,AEG-VS-10-03,G2-A,SOURCE+INFERENCE,P0,PLANNED +AEG22-VS10-002,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,Persist ordered policy evaluation trace,policy_trace_json/API schema,Applied/blocked/not-applicable reasons reproduce decision priority,BE/Quant,FE/QA,8,AEG22-VS10-001,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-003,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,QA,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-GOLDEN-022,Golden/boundary/monotonic/property vectors,unit/golden vectors,"Core clamp, survival bypass, priority and future PIT rejection pass",QA/Quant,BE,8,AEG22-VS10-002,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS10-004,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SIG-UI,SIG-RESEARCH-01,Cross,Cross,UI-SIG-01,T-FE-SIG-022,FE runtime contract for weights and policy trace,Zod schema/page/tests,Malformed response and lot>security input fail closed,FE Lead,QA/BE,5,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS09-001,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,Cross,MIG-EVD-001,J06,UI-EVD-01,T-EVD-022,Evidence completeness grade and required-field manifest,Evidence contract delta,Missing total-return/delisting/cost source downgrades or quarantines recommendation,Data/Quant,BE/QA,8,AEG-VS-09-02,G2-A,SOURCE,P0,PLANNED +AEG22-VS03-001,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-PIT-022,Enforce published_at cutoff and timezone,PIT query contract/data test,Lookahead count remains zero across replay and timezone boundaries,Data Architect,DBA/QA,8,AEG-VS-03-03,G1-B,SOURCE,P0,PLANNED +AEG22-VS03-002,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-LIC,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,Source license/SLA/checksum fail-closed gate,Source catalog contract,Unapproved/checksum-drift source cannot reach canonical/PIT layer,Data Governance,BE/Compliance,7,AEG22-VS03-001,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS08-001,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DB,REQ-LEDGER-001,POR-01,MIG-POR-001,LedgerEntryApplied,UI-POR-01,T-LEDGER-022,Lot weight derivation and reconciliation invariant,ledger/read-model contract,Lot market values equal security/account totals within tolerance,DBA/BE,Quant/QA,10,AEG-VS-08-03,G1,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS11-001,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ALG,ALG-REENTRY-001,SIG-02,MIG-SIG-REENTRY,J09,UI-SIG-02,T-REENTRY-022,Reentry stage uniqueness and cycle reset proof,state transition/golden tests,Each stage once; new CycleId/Lot; old floor/cost/high not reused,Quant/BE,QA/DBA,9,AEG-VS-11-03,G2,SOURCE,P0,PLANNED +AEG22-VS14-001,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-ADV-001,ADV-01,MIG-ADV-001,J08,UI-ADV-01,T-ADV-RUN-022,Run isolation and partial-failure quarantine,run manifest/error partition,One portfolio failure cannot publish invalid advice to another,BE Lead,SRE/QA,10,AEG-VS-14-04,MVP-B,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS15-001,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,SEC,REQ-REV-001,ADV-02,MIG-ADV-002,RecommendationReviewed,UI-ADV-02,T-REV-022,Maker-checker optimistic concurrency proof,review version/ETag tests,Self-approval and stale update rejected with audit evidence,BE/Security,FE/QA,8,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS16-001,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,ADV-03,MIG-ADV-003,AdvicePublished,UI-CLI-01,T-PUB-022,Publish snapshot hash and staleness gate,publication immutable snapshot,Expired/revised/quarantined evidence blocks publish,BE/Compliance,QA/FE,9,AEG-VS-16-04,G3,SOURCE,P0,PLANNED +AEG22-VS18-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-DEF-022,Version false-exit/gain-capture definitions,metric definition registry,Historical scorecard reproducible by metric version/revision,Quant/Risk,Data/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS19-001,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QUANT,REQ-BT-001,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-ENV-022,Environment digest and full experiment registry,frozen manifest,Data/code/config/seed/environment/all variants hashed,Quant/Data,Risk/QA,10,AEG-VS-19-03,G2,SOURCE,P0,PLANNED +AEG22-VS19-002,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QA,REQ-BT-002,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-XLANG-022,Python-.NET decision golden cross-check,cross-language vectors,Policy/action/ratio/target/trace match within tolerance,QA/Quant,BE,8,AEG22-VS19-001,G2,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS23-001,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,OPS,REQ-REC-001,EXE-01,MIG-EXE-001,J12,UI-OPS-REC,T-REC-CORR-022,Approved correction/reversal workflow,break/correction/audit contract,No direct edit; before/after/hash/approver/replay reconcile to zero,Ops/DBA,Compliance/QA,10,AEG-VS-23-04,Pilot-A,SOURCE,P0,PLANNED +AEG22-VS25-001,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-GOV-001,GOV-01,MIG-GOV-001,KillSwitchChanged,UI-GOV-01,T-KILL-022,Automatic-order capability tripwire,capability tests/runbook,Any AutomaticOrder/KIS drift blocks start/release/action,Security/Ops,DevOps/QA,8,AEG-VS-25-04,ALL,SOURCE,P0,PLANNED +AEG22-X-009,S11,W23-24,Cross,Cross-cutting,Frontend,FE,REQ-FE-CONTRACT,Cross,Cross,Cross,Cross,T-FE-OPENAPI-022,OpenAPI artifact diff and generated contract plan,contract generation ADR,DTO drift visible in CI; Zod remains trust boundary,BE/FE,QA/Architect,7,AEG-X-012,G3,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-010,S11,W23-24,Cross,Cross-cutting,Observability,SRE,REQ-OBS-001,Cross,Cross,Cross,UI-OPS-01,T-OBS-022,Metric cardinality/PII/redaction budget,telemetry policy/tests,No high-cardinality account/security tags or PII in telemetry,SRE/Security,BE/QA,7,AEG-X-013,G5,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-011,S14,W29-30,Cross,Cross-cutting,Performance,SRE,REQ-CAP-001,Cross,Cross,Cross,Cross,T-CAP-022,Capacity assumptions and workload pack,capacity profile,Approved volumes map to API/batch/DB SLO evidence,PM/SRE,DBA/QA,10,AEG-X-025,G6-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-012,S15,W31-32,Cross,Cross-cutting,Release,OPS,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-022,Release evidence and rollback rehearsal,release manifest/checksum/runbook,Source→requirement→code→test→artifact hashes and rollback complete,PM/SRE,QA/Compliance,8,AEG22-X-011,G6,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-031,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,Rebuild seven-file current-session source coverage,Source matrix·SHA index,7개 첨부 원본·크기·SHA-256·역할이 패키지와 1:1 일치,PM/QA,Architect,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG-X-032,S0,W1-2,Cross,Cross-cutting,CI/CD,DEVEX,REQ-PLAT-CI,Cross,Cross,Cross,Cross,T-CI-003,Correct stale CI validator and duplicate YAML key,Gitea ci.yml,"validate_v123 실행, 중복 working-directory 0, static/scaffold tests 연결",DevOps,QA,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-033,S0,W1-2,Cross,Cross-cutting,Architecture,SCAFFOLD,REQ-ARCH-SCAFFOLD,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,Implement deterministic fail-closed slice scaffolder,scaffold_slice.py·templates·tests,"dry-run deterministic, 기존 파일 overwrite 0, 미승인 placeholder 명시",Architect,BE/FE,7,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-034,S0,W1-2,Cross,Cross-cutting,Contract,CONTRACT,REQ-CONTRACT-001,Cross,Cross,Cross,Cross,T-CONTRACT-001,Create machine-readable policy/event/metric contract registry,contracts/**,"JSON parse, C# 상수 교차검증, 이벤트 schema v2, metric definition version",Architect/Quant,QA/Risk,7,AEG-X-003,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-035,S0,W1-2,Cross,Cross-cutting,Validation,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-STATIC-123,Extend static validator for semantic version and contract drift,validate_v123.py,"WBS 250, 7첨부, 0015, registry, context filter, CI key 검사 통과",QA,Architect,6,AEG-X-034,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-08,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-CONTRACT-001,Centralize approved sell policy constants,SellPolicyContract.cs,정책 ID·우선순위·임계값 중복 제거 및 JSON registry와 일치,Quant/BE,Risk/QA,6,AEG-X-034,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-09,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-ZERO-RATIO,Fix positive-edge zero-ratio opportunity sell defect,OpportunityCostPolicy.cs·tests,"edge>0·ratio=0에서 HOLD, trace=BLOCKED, 자동 10% 매도 0",BE/Quant,QA/Risk,5,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-10,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Data integrity,REQ-SIG-SELL,SIG-01,MIG-0015,-,-,T-SIG-SEM-001,Version lot/security weight semantics and block legacy contexts,0015 migration·context reader,weight_semantics_version=2만 결정 입력 사용; legacy backfill 추정 사용 0,DBA/BE,Quant/QA,8,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-11,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Evidence,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-EVT-002,Persist decision and policy-trace contract versions,API·DB·event v2,decision_contract_version과 policy_trace_schema_version이 DB/API/event/hash에 포함,BE,DBA/FE/QA,7,AEG-VS-10-10,G2-A,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-12,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Frontend,REQ-SIG-SELL,SIG-02,MIG-0015,-,UI-SIG-TRACE,T-FE-SIG-TRACE,Componentize ordered policy trace display,PolicyTracePanel.vue·Zod,우선순위/Disposition/요청·적용비율/Core clamp를 runtime contract로 표시,FE,UX/QA,5,AEG-VS-10-11,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-08,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,Metric governance,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-METRIC-001,Version false-exit and reentry metric definitions,outcome-metrics.v1.json,"분모/분자/평가창/집계/정의버전 명시, 연 2% 목표와 직접비교 금지",Quant/Risk,Data/QA,6,AEG-X-034,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-036,S1,W3-4,Cross,Cross-cutting,Security,AUTH,REQ-IAM-001,Cross,Cross,Cross,Cross,T-AUTH-ADR,Keep OIDC/JWT provider decision fail-closed,Decision Log,공급자/claims 미결정 시 Development 외 인증 성공 0,Security,PM/BE,3,AEG-X-005,G5,SOURCE,P0,PLANNED +AEG-X-037,S2,W5-6,Cross,Cross-cutting,Data governance,PIT,REQ-DAT-SOURCE,Cross,Cross,Cross,Cross,T-DATA-LICENSE,Reconfirm total-return/delisting/consensus source decisions,Decision Log·source catalog,미승인 source 추천 진입 0; DECISION_REQUIRED 유지,Data Governance,Legal/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-038,S3,W7-8,Cross,Cross-cutting,Cost data,PIT,REQ-COST-001,Cross,Cross,Cross,Cross,T-COST-PIT,Reconfirm Fee/Tax/FX valid-time schedule decisions,Decision Log·data contract,current 단일값 사용 0; 미결정 계좌/venue 추천 보류,Ops/Tax,DBA/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-039,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-013,Resolve survival cooldown bypass rule,Decision record·Golden vectors,승인 전 기존 fail-closed 유지; 승인 후 정책·모델카드·OOS 동시변경,Investment Committee,Quant/Risk/BE,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P0,PLANNED +AEG-X-040,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-014,Resolve hard impairment 80-100% severity mapping,Decision record·evidence grading,severity source 미승인 시 100% 보수값 유지; 임의 80% 적용 금지,Investment Committee,Compliance/Quant,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P1,PLANNED +AEG-X-041,S11,W23-24,Cross,Cross-cutting,Supply chain,SECURITY,REQ-SEC-SBOM,Cross,Cross,Cross,Cross,T-SBOM-001,Add SBOM/license/vulnerability release evidence contract,Release Evidence template,실제 scanner 미실행은 PASS 표기 금지; artifact 경로와 allowlist 필수,Security/DevOps,Legal/QA,5,AEG-X-032,G5,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-042,S14,W29-30,Cross,Cross-cutting,Capacity,NFR,REQ-NFR-CAP,Cross,Cross,Cross,Cross,T-CAP-001,Approve load volumes before index or partition optimization,Capacity ADR,고객/계좌/종목/배치량 결정 전 투기적 index·partition 추가 0,PM/SRE,DBA/BE,5,DEC-011,G6-A,DECISION_REQUIRED,P1,PLANNED +AEG-X-043,S15,W31-32,Cross,Cross-cutting,Release,EVIDENCE,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-123,Assemble v12.3 release evidence and checksum manifest,Validation evidence·manifest·SHA256,실행/미실행을 구분하고 패키지 전 파일 hash·첨부 hash가 일치,QA/Release,PM/Architect,7,AEG-X-035,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-001,지속 모델 운영 자동화 경계 확정,model-operations.v1·promotion-gate.v1 계약,"EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY 외 모드 0, AUTO_PROMOTE/AUTO_ORDER 0",Risk/Architect,Compliance/Quant,4,DEC-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-002,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-002,성과지표 정의 v2 확정,outcome-metrics.v2·Metric Definition Registry,각 지표의 분자·분모·평가창·집계·비용·PIT·revision 정의와 content hash 보존,Quant/Risk,Data/QA,6,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-003,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10,UI-MO-01,T-MO-003,평가 Dataset Manifest와 Model Registry 계약,evaluation.dataset_manifest·governance.model_version_registry,"요청 시점 Dataset/Model/Config/Code/Contract VersionSet 동결, 미승인 context는 BusinessHold",Data Architect/Quant,DBA/Risk,6,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-004,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DB,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-004,Model Operations 증분 migration 구현,0016_continuous_model_operations.sql,fresh/upgrade/re-run/failure에서 schedule/request/metric/proposal/review/drill schema와 제약 통과,DBA/BE,QA/Data,8,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-005,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-005,15분 Scheduler Dispatcher와 lease 구현,ModelOperationsDispatcherJob·DapperModelScheduleRepository,"FOR UPDATE SKIP LOCKED, 14분 lease, batch 50, dynamic queue, crash/retry 중복 request 0",BE/SRE,DBA/QA,8,AEG-MO-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-006,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,ModelOperationRequested,UI-MO-01,T-MO-006,평가 요청·Outbox 동일 트랜잭션 구현,ModelOperationRequestService·Repository·event v1,"동일 idempotency key의 request/outbox side effect 1회, VersionSet 누락 시 저장 0",BE Lead,SRE/QA,8,AEG-MO-005,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-007,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-007,명시적 ModelOperationRegistry 구현,ModelOperationDefinition·contract drift test,"Job code/주기/queue/mode/owner/gate 중복 0, JSON/C# drift 0",BE/Architect,Quant/QA,5,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-008,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-001,모델 운영 계획 조회 API·Zod 구현,GET /internal/v1/model-operations/plan·schema.ts,"응답 runtime validation, 자동승격 모드 파싱 거부, RBAC 401/403 검증",BE/FE,Security/QA,6,AEG-MO-007,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-009,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-002,모델 운영 대시보드 기본 화면,ModelOperationsPage·BoundaryPanel·OperationTable,일/주/월/분기 작업과 EVALUATION/PROPOSAL/DRILL 경계가 명확하고 로딩/오류/빈상태 접근성 검증,FE/UX,QA/Risk,7,AEG-MO-008,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-010,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-01,MIG-0016,J10,UI-MO-02,T-MO-EVAL-001,1/5/20/63/126/252일 Outcome evaluator 구현,versioned OutcomeObservation·attribution,거래일창·benchmark·FX·delisting·no-fill·partial-fill·revision replay Golden 통과,Quant/BE,Data/QA,12,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-011,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-02,MIG-0016,J11,UI-MO-02,T-MO-EVAL-002,Daily Scorecard와 cohort aggregation,DailyScorecard·cohort metric snapshots,운영오류·calibration·매수·매도·재진입·비용후 효용의 sample/lag/version 표시,Quant/BE,Risk/QA,9,AEG-MO-010,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-012,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-DRIFT-001,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,Data/Feature/Prediction/Calibration drift evaluator,DriftObservation·baseline manifest·alert,"baseline version, PSI/KS/calibration drift와 sample minimum이 승인되고 임계 초과 시 HOLD만 생성",Quant/Risk,Data/SRE,10,AEG-MO-011,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-013,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-CC-001,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,Champion/Challenger 동일 cohort 비교,paired comparison·model card delta,동일 Dataset/Cost/Cohort/Window에서 효과·위험·false-exit·reentry 차이와 신뢰구간 보존,Quant/Risk,IndependentValidation/QA,12,AEG-MO-012,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-014,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-OOS-001,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,월간 Frozen Walk-forward OOS 실행,manifest/hash/seed/environment·OOS artifacts,"동일 manifest 허용오차 내 동일, lookahead 0, 상폐/CA/TR/cost2x 포함, 실패 artifact 보존",Quant/Data,QA/Risk,14,AEG-MO-003,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-015,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-ROBUST-001,BACKTEST-02,MIG-0016,J20,UI-MO-04,T-MO-ROBUST-001,분기 PBO/DSR/Parameter Stability/Block Bootstrap,experiment registry·CSCV/PBO/DSR report,"전체 시도 원장 기준 PBO≤20%, DSR≥95%, 비용2배 양수 여부를 재현하며 기준 미달 시 HOLD",Quant/Risk,IndependentValidation/QA,15,AEG-MO-014,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-016,S11,W23-24,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-05,MIG-0016,J11/J21,UI-MO-02,T-MO-ATTR-001,False-exit·Reentry attribution 정의 확정,metric definition v2·decision log,분자/분모/기준가격/benchmark/평가창/중도상폐/결측 처리 승인 전 생산 KPI 사용 차단,Quant/Risk,InvestmentCommittee/Data,7,DEC-032,G4,SOURCE+DECISION_REQUIRED,P0,PLANNED +AEG-MO-017,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-01,MIG-0016,J21,UI-MO-05,T-MO-IMP-001,월간 개선 제안 생성 규칙,ModelImprovementProposal·ranking rubric,데이터·정책·calibration·risk·기술부채 제안을 구분하고 자동 코드/임계값 변경 0,Quant Lead,Risk/Architect,8,AEG-MO-012~016,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-018,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-02,MIG-0016,J21,UI-MO-05,T-MO-IMP-002,개선 제안 반대증거·만료·중복 통제,proposal schema·content hash·expiry,근거/반대증거/기대효과/위험/필수테스트/Owner/만료가 없으면 REVIEW_REQUIRED 생성 금지,Risk/Architect,Quant/QA,7,AEG-MO-017,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-019,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-PROMOTE-001,GOV-MO-03,MIG-0016,J22,UI-MO-06,T-MO-GATE-001,PromotionGateEvaluator와 증거 패킷,promotion-gate.v1·PromotionGateResult,252일/2국면/효용/calibration/false-exit/reentry/PBO/DSR/cost2x/운영오류를 모두 평가하되 human approval=true,Risk/BE,Quant/QA,9,AEG-MO-015~018,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-020,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,SEC,REQ-MO-PROMOTE-001,GOV-MO-04,MIG-0016,J22,UI-MO-06,T-MO-GATE-002,모델 승격 maker-checker·업무분장,model_promotion_review·RBAC,"maker≠checker, 개발자 단독승격 0, 독립검증·준법·보안 evidence 누락 시 승인 불가",Risk/Security,Compliance/QA,8,AEG-MO-019,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-021,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MO-FE-001,GOV-MO-05,MIG-0016,J17~J22,UI-MO-03~06,T-MO-FE-003,Drift·비교·OOS·제안·Gate 화면 컴포넌트,DriftPanel·ComparisonPanel·EvidenceGatePanel,version/sample/window/data warning/반대증거/readonly 상태를 표시하고 내부점수 고객 노출 0,FE/UX,Risk/QA,12,AEG-MO-012~020,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-022,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-01,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001,Data revision 영향 인덱스와 재평가 요청,decision↔dataset/revision impact index,정정 source/revision이 영향 decision/window를 결정적으로 산출하고 승인 없는 대량 replay 0,Data/BE,DBA/Quant,10,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-023,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-002,Revision-aware correction evidence,new observation/snapshot·Supersession link,"과거 evidence overwrite 0, before/after hash·사유·승인자·영향 KPI가 보존",Data/Compliance,Quant/QA,8,AEG-MO-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-024,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-ROLLBACK-001,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,분기 Model rollback drill,model_rollback_drill·Runbook evidence,fallback manifest 복원·Capability 차단·RTO 측정·Secondary 수행·실주문 0,SRE/Risk,Module Owner/QA,10,AEG-MO-020,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-025,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OBS,REQ-MO-OPS-001,MO-OPS-01,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-001,Scheduler·평가 관제 표준,OTel metrics·Serilog correlation·alerts,due lag/lease conflict/request duplicate/context hold/runtime/backlog/error가 trace→schedule→request→artifact로 연결,SRE/BE,Security/QA,8,AEG-MO-005~006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-026,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-02,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-002,Error taxonomy·retry·dead-letter·BusinessHold,Runbook·retry matrix·dead-letter procedure,"transient/business/poison 분리, blind retry 0, same scope 중복 side effect 0",SRE/BE,Ops/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-027,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-MO-OPS-001,MO-OPS-03,MIG-0016,J10~J24,UI-MO-09,T-MO-SEC-001,모델 evidence·알림 PII/secret 보안,classification/redaction/secret scan,계좌·고객·토큰·원시 payload가 log/trace/Telegram/prompt에 노출 0,Security/SRE,Compliance/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-028,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-04,MIG-0016,J10~J24,UI-MO-09,T-MO-CAP-001,평가 Queue 격리·용량·SLA 시험,capacity report·queue quotas,q-research가 고객 batch SLA를 침범하지 않고 backlog/CPU/DB lock/IO 한도와 degradation 정책 승인,SRE/DBA,Quant/QA,10,AEG-MO-025,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-029,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-SCHED-001,MO-TEST-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-CONC-001,Scheduler concurrency·crash·clock 회귀,integration/chaos tests,"다중 worker lease 경쟁, enqueue 전후 crash, clock skew, DST/휴장, 장기 downtime catch-up에서 중복 0",QA/SRE,BE/DBA,12,AEG-MO-005,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-030,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-EVAL-001,MO-TEST-02,MIG-0016,J10~J22,UI-MO-02~06,T-MO-GOLDEN-001,Python/.NET metric Golden 교차검증,Golden vectors·tolerance registry,동일 frozen input에서 Python 연구와 .NET 평가가 승인 허용오차 내 일치하고 차이 artifact 보존,QA/Quant,BE/Data,12,AEG-MO-010~020,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-031,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-FE-001,MO-TEST-03,MIG-0016,J10~J24,UI-MO-01~09,T-MO-E2E-001,모델 운영 Playwright E2E,role/state/evidence flows,"Quant/Risk/Auditor 권한, loading/empty/stale/warn/hold/review/expired/readonly와 접근성 통과",QA/FE,Security/UX,8,AEG-MO-009~021,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-032,S14,W29-30,Cross,Cross-cutting,Toolchain,CI,REQ-MO-OPS-001,Cross,MIG-0016,Cross,Cross,T-MO-CI-001,Gitea CI에 v12.4 validator·ModelOps tests·contract drift 추가,ci.yml·validate_v124.py,"static/JSON/CSV/WBS/contract/Python tests green, .NET/pnpm/DB evidence 없이는 PASS 주장 금지",DevOps/QA,Architect/Security,8,AEG-MO-001~031,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-033,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-OPS-001,Cross,Cross,Cross,Cross,Cross,모델 운영 Release Evidence 템플릿,MODEL_EVALUATION_EVIDENCE.md·IMPROVEMENT_PROPOSAL.md,"Source/Assumption/Unknown/DecisionRequired, 명령·hash·sample·window·approval·rollback가 누락 없이 연결",PM/Risk,QA/Architect,5,AEG-MO-032,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-034,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-IMPROVE-001,Cross,Cross,Cross,Cross,Cross,바이브코딩 모델 변경 작업 패킷,MODEL_CHANGE + evaluation packet,AI가 임계값·팩터·모델·스케줄을 추정하지 않고 승인 source와 실제 test artifact 없으면 PR 차단,Architect/Quant,Risk/QA,6,AEG-MO-033,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-035,S15,W31-32,Cross,Cross-cutting,Release,CUTOVER,REQ-MO-OPS-001,Cross,MIG-0016,J10~J24,UI-MO-01~09,T-MO-REL-001,20영업일 ModelOps 단계 배포,runbook·feature/capability config·rollback,DISABLED→EVALUATION_ONLY→PROPOSAL_ONLY 순으로 승격하고 자동 model/order mutation은 계속 OFF,Release/SRE,Risk/Compliance,8,AEG-MO-032~034,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-036,MNT,Monthly,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,MNT,REQ-MO-EVAL-001,EVAL-MNT-01,MIG-0016,J10/J11/J17,UI-MO-02/03,T-MO-MNT-001,월간 성과·drift·false-exit·reentry 리뷰,monthly model health pack,metric version/sample/lag/drift/반대증거/기술부채와 개선 제안이 투자위 회의록에 연결,Quant/Risk,Ops/QA,4,Go-Live,MNT,SOURCE+OPERATING_EVIDENCE,P1,PLANNED +AEG-MO-037,MNT,Quarterly,VS-19/20,RunFrozenBacktest/PromoteModelVersion,BacktestingEvaluation/GovernanceAudit,MNT,REQ-MO-ROBUST-001,GOV-MNT-01,MIG-0016,J18~J23,UI-MO-04~08,T-MO-MNT-002,분기 OOS·PBO/DSR·승격/롤백 검토,quarterly independent validation pack,"복합 Gate 우회 0, 기준 미달 모델은 HOLD/REJECTED, rollback drill evidence 존재",Risk/InvestmentCommittee,IndependentValidation/Compliance,8,AEG-MO-036,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-MO-038,MNT,Release,Cross,Cross-cutting,GovernanceAudit,MNT,REQ-MO-IMPROVE-001,Cross,Cross,ModelChanged,Cross,T-MO-MNT-003,모델/정책/지표 변경 비회귀 릴리스,Model Change·Golden·Frozen OOS·Supersession,"문서/JSON/C#/DB/API/FE/test hash 정렬, 이전 계약 원문 보존, 자동승격/자동주문 OFF",Architect/Risk,Quant/QA/SRE,6,Approved Model Change,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-V12-5-001,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-001,기준선 직접/전이 첨부 Coverage와 Supersession 승인,Current source coverage+baseline transitive index,"현재 첨부 3개 SHA 일치, v12.4 내부 누적 첨부 경로 검증",PM/Architect,Compliance/QA,5,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-002,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-002,Build/Runtime/Shadow Evidence 상태모델 승인,Evidence status registry,STATIC/BUILD/DB/SHADOW/PILOT 상태의 허용 전이가 승인됨,PM/QA,Architect/Compliance,4,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-003,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-003,Decision Required 만료·aging 운영,Decision aging dashboard,"P0 decision owner/due/expiry 100%, 만료 시 Gate 자동 HOLD",PMO,Owner/QA,5,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-004,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-004,Release Evidence maker-checker 계약,Release evidence contract,"maker≠checker, 필수 artifact 누락 시 APPROVED 불가",QA/Release,Compliance/SRE,6,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-005,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,DEVEX,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-005,.NET 10 승인 runner restore/build/test,TRX+build logs,warning-as-error Release build 및 전체 test artifact,DevOps,BE/QA,10,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-006,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,DEVEX,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-006,pnpm lockfile 생성·검토·frozen build,pnpm-lock+CI logs,"lock diff 승인, typecheck/test/build/e2e 재현",FE Lead,DevOps/QA,8,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-007,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,FITNESS,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-007,Assembly/namespace/schema/API ownership test,Architecture fitness suite,"금지 의존, 직접 cross-schema write, ID 충돌 0",Architect/QA,BE/DBA,8,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-008,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,CONTRACT,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-008,OpenAPI artifact diff와 FE generated contract,OpenAPI client/Zod artifact,"DTO drift 0, runtime validation 통과",BE/FE,QA/Architect,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-009,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-009,Source/License/SLA/Timezone/Unit 계약 승인,Source contract snapshots,승인 없는 source ingestion/recommendation 0,Data Governance,Legal/QA,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-010,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-010,KRX/NYSE/NASDAQ calendar·DST·반일장 구현,Market calendar contract,휴장/반일장/DST Golden과 tradable_session 통과,Data/Quant,QA/Ops,12,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-011,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-011,총수익·상폐수익·기업행사 Golden,Golden dataset,price/quantity/cost/cash/return 대사 100%,Data/DBA,Quant/QA,12,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-012,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-012,Fee/Tax/FX valid-time schedule 확정,Cost schedule,계좌/venue/asset/side/band PIT 적용과 boundary 통과,Ops/Tax,Quant/DBA,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-013,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-013,PIT bitemporal unique/exclusion 제약 설계,DDL+ADR,중복 유효구간과 current overwrite 경로 0,DBA/Data Architect,BE/QA,8,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-014,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-014,Migration fresh/upgrade/re-run/failure rehearsal,Migration evidence,"4시나리오 통과, checksum 변경 차단, rollback/runbook",DBA/BE,QA/SRE,10,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-015,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-015,볼륨·partition·index·retention 결정,Capacity ADR,"실제 규모/쿼리계획으로 승인, 근거 없는 index 0",DBA/SRE,PM/Data,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-016,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,DQ,REQ-EXA-004,Cross,Cross,J25-J30,Cross,T-EXA-016,DQ incident·quarantine·reprocess E2E,DQ E2E evidence,"격리 데이터 추천 0, correction revision 보존",Data/QA,BE/Ops,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-017,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-017,false-exit metric definition version 확정,Metric definition,분자/분모/window/benchmark/cost/revision 승인,Quant/Risk,QA/Investment Committee,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-018,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-018,reentry capture/delay metric definition 확정,Metric definition,stage/cycle/expiry/no-fill 포함 정의 승인,Quant/Risk,QA/Data,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-019,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-019,Evidence grade와 counter-evidence 계약,Policy contract,DQ/freshness/revision/source coverage에 따른 downgrade 재현,Quant/Data,Risk/QA,8,v12.4 baseline,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-020,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-020,승격 threshold machine-readable 단일화,Promotion contract registry,"JSON/C#/문서 drift 0, 승인 version/hash 기록",Quant/BE,Risk/QA,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-021,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-021,전체 실험 registry·CSCV/PBO/DSR,Experiment registry,"숨은 시도 0, deterministic seed, independent replay",Quant/Risk,Independent Validation,16,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-022,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-022,Champion/Challenger paired comparison,Comparison artifact,"동일 data/cost/cohort/window, sample mismatch HOLD",Quant/QA,Risk/Data,12,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-023,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-023,revision impact replay와 correction link,Revision replay evidence,before/after dataset/hash와 영향 decision 100% 연결,Data/Quant,DBA/QA,12,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-024,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-024,Cost2x·missing·delisting·CA·FX stress,Stress report,모든 승인 candidate에 필수 stress artifact,Quant/QA,Risk/Data,12,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-025,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-025,ModelOperations Dispatcher fail-closed 검증,Capability tests,"기본 OFF, ShadowEvaluation false면 startup 차단",BE/Security,QA/SRE,6,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-026,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-026,Dispatch enqueue/mark gap 제거 설계,Dispatch intent/outbox ADR,crash timing에서 duplicate request/손실 0,BE/SRE,Architect/QA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-027,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-027,Model operation 상태전이 서비스,Status transition slice,"허용 transition, optimistic concurrency, append event 100%",BE Lead,QA/DBA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-028,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-028,BusinessHold/Quarantine/Poison 분류,Failure taxonomy,"blind retry 0, dead-letter/runbook 연결",BE/SRE,Data/QA,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-029,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-029,J10~J30 executor handler 계약,Operation handler registry,"Scheduler에 수식 없음, handler contract test 100%",BE/Quant,Architect/QA,18,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-030,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-030,Operation artifact store·retention,Artifact repository,content hash/retention/source request 추적 100%,BE/DBA,Compliance/SRE,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-031,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-031,Outbox/Inbox crash/replay chaos,Chaos evidence,"crash-before/after-publish, duplicate side effect 0",BE/SRE,QA/DBA,14,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-032,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-032,Projection rebuild/diff runner,Projection runner,version/watermark/stale/rebuild diff 통과,BE/Data,QA/SRE,12,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-033,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,UX,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-033,고객 투자제안 정보위계 프로토타입,UX prototype,행동/근거/반대증거/비용/불확실성/다음검토 usability 통과,UX/AX,Advisor/Compliance,10,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-034,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,UX,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-034,운용자 maker-checker 검토함 프로토타입,Ops prototype,"작성자 단독승인 0, expiry/DQ/version 경고 명확",UX/FE,Advisor/QA,10,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-035,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-035,Query key registry·Pinia 경계 lint,FE architecture rules,"server state Pinia 복제 0, invalidation contract 통과",FE Lead,QA/Architect,8,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-036,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-036,Zod request/response/error runtime validation,FE contract tests,성공/오류/nullable/version mismatch 전부 차단·표시,FE Lead,BE/QA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-037,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-010,Cross,Cross,Cross,UI-EXA,T-EXA-037,Accessibility keyboard/screen-reader test,A11y evidence,WCAG 핵심 흐름 keyboard/label/focus 통과,FE/UX,QA/Compliance,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-038,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-010,Cross,Cross,Cross,UI-EXA,T-EXA-038,Evidence/VersionSet/Readiness 공통 컴포넌트,Shared components,3회 반복+동일 의미/변경축 근거와 component tests,FE Lead,UX/QA,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P2,PLANNED +AEG-V12-5-039,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-010,Cross,Cross,Cross,Cross,T-EXA-039,OIDC/JWT provider·claims·rotation ADR,Auth ADR+E2E,"issuer/audience/claims/key rotation, fail-closed 통과",Security/BE,PM/QA,12,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-040,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-010,Cross,Cross,Cross,Cross,T-EXA-040,PII classification/redaction/Telegram test,Security evidence,log/trace/alert/prompt 고객정보 노출 0,Security/SRE,QA/Compliance,10,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-041,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-011,Cross,Cross,Cross,Cross,T-EXA-041,SBOM·license·vulnerability gate,Supply-chain evidence,NuGet/npm allowlist와 critical 취약점 0,Security/DevOps,Legal/QA,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-042,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-042,SLO/RPO/RTO·volume 승인,Operations ADR,data/recommendation/publish/reconcile/evaluation SLO 승인,SRE/PM,DBA/Ops,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-043,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-043,부하·장애·queue isolation 시험,Capacity/chaos report,research queue가 recommendation SLA 침범 0,SRE/QA,BE/DBA,14,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-044,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-044,Backup/restore·rollback drill,DR evidence,"RPO/RTO 실측, champion/fallback 복구 hash 일치",SRE/DBA,QA/Risk,12,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-045,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,QA,REQ-EXA-012,Cross,Cross,J25-J30,Cross,T-EXA-045,End-to-End Release Evidence 자동조립,Release evidence bundle,source/build/test/migration/security/rollback 누락 0,QA/Release,DevOps/Compliance,10,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-046,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,OPS,REQ-EXA-012,Cross,Cross,Cross,Cross,T-EXA-046,P1/P2 장애·정정·고객공지 Runbook,Runbook pack,Owner/Secondary/escalation/communication rehearsal,Ops/SRE,Compliance/CS,10,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-047,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,PM,REQ-EXA-012,Cross,Cross,Cross,UI-EXA,T-EXA-047,90일 Critical Path·Gate burn-down 운영,Critical path dashboard,P0 dependency/decision/evidence aging 주간 갱신,PM/PL,All Leads,8,v12.4 baseline,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-048,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-012,Cross,MIG-0017,Cross,Cross,T-EXA-048,36개월 모델·데이터·기술부채 review cadence,Operating calendar,월/분기/반기/연 review와 산출물/승인자 고정,PM/Risk,Architect/Ops,6,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED diff --git a/docs/v12_5/11_TECH_DEBT_REGISTER.csv b/docs/v12_5/11_TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..1e7b6a14 --- /dev/null +++ b/docs/v12_5/11_TECH_DEBT_REGISTER.csv @@ -0,0 +1,69 @@ +ID,Priority,Debt,Impact,Remediation,Gate,Owner,Status +TD-001,P0,도구체인 실빌드 미검증,C# 컴파일/패키지 호환 결함 가능,승인 .NET 10 runner에서 restore/build/test,G0,DevOps,OPEN +TD-002,P0,pnpm-lock.yaml 부재,FE 공급망·재현성 미확보,승인 네트워크에서 pnpm install 후 lock review/commit,G0,FE Lead,OPEN +TD-003,P0,PostgreSQL migration rehearsal 미실행,fresh/upgrade/re-run/복구 실패 가능,PostgreSQL 승인 버전 4시나리오 자동화,G0,DBA,OPEN +TD-004,P0,원시 연구 데이터 권리·checksum·환경 lock 미완전,제3자 clean-room 재현 불가,Source catalog/license/raw checksum/container digest 확보,G1,Data Governance,OPEN +TD-005,P0,KR 검증 종료 2021-04-16,최근 시장국면 검증 공백,2026 현재까지 PIT 총수익·상폐·기업행사 보충 후 frozen OOS,G4,Quant/Data,OPEN +TD-006,P0,실제 OIDC/JWT 공급자 미결정,외부 Pilot 접근통제 불가,"Auth ADR, key rotation, claims/RBAC E2E",G5,Security,OPEN +TD-007,P0,총수익·상폐수익·컨센서스 공급계약 미확정,생존편향·성과왜곡,공식/상용 source 계약·SLA·재배포 권리 승인,G1,Data Governance,OPEN +TD-008,P0,Fee/Tax/FX PIT 표 미확정,비용후 기대효용 왜곡,valid_from/to 계좌·venue·상품·side·band schedule,G1,DBA/Quant,OPEN +TD-009,P0,Outbox/Inbox crash/replay 실증 미완료,side effect 누락·중복,lease/dead-letter/replay chaos test,G3,BE/SRE,IN_PROGRESS +TD-010,P1,JobRun·Watermark 표준의 일부 구현만 존재,배치 재처리·감사 불완전,공통 JobRun scope/version/hash/heartbeat 정책 적용,G1,BE/SRE,IN_PROGRESS +TD-011,P1,Architecture test가 정적 문자열 규칙 중심,금지 의존 누락 가능,assembly/namespace/schema/API fitness function 확대,G0,Architect,IN_PROGRESS +TD-012,P1,OpenAPI→FE contract 자동생성 미도입,DTO drift·홀루시네이션 위험,OpenAPI artifact diff + generated client/schema gate,G3,BE/FE,OPEN +TD-013,P1,PII redaction·Telegram 보안 테스트 미완성,고객정보 노출 가능,classification/redaction test와 secret scan,G5,Security/SRE,OPEN +TD-014,P1,Model promotion workflow 미완성,무단 모델 활성화 위험,model card/maker-checker/effective_at/rollback 구현,G4,Risk/BE,OPEN +TD-015,P1,Read Model rebuild runner 미완성,stale projection 복구 불가,projection version/watermark/rebuild/diff 도구,G3,BE/Data,IN_PROGRESS +TD-016,P1,SLO/RPO/RTO 미승인,운영 Go 판단 불가,부하시험·백업복구·DR ADR 승인,G5,SRE/DBA,OPEN +TD-017,P2,공통 UI 컴포넌트 승격 기준 미운영,중복 또는 과도한 추상화,3회 반복+동일 의미/변경축 확인 후 승격,S10,FE Lead,OPEN +TD-018,P1,PBO/DSR 전체 탐색·시도 원장 미완성,과최적화 위험,전체 실험 registry+CSCV/PBO/DSR/block bootstrap,G4,Quant/Risk,OPEN +TD-019,P1,자산유형별 재진입 확인팩터 공급원 미완성,재진입 품질 저하,asset policy contract+PIT source+missing evidence downgrade,G2,Quant/Data,OPEN +TD-020,P0,자동주문/KIS 제출은 금지 상태,오활성화 사고 위험,Options ValidateOnStart+CI config scan+runtime kill switch 유지,ALL,Security/Ops,MITIGATED +TD-021,P1,정책 임계값이 문서·YAML·C#에 중복될 가능성,계약 drift,승인 config registry+schema+hash+generated constants,G2,Quant/BE,OPEN +TD-022,P1,DB immutable trigger와 correction event 운영절차 미실증,정정/감사 장애 가능,maker-checker correction replay와 audit trace E2E,G3,DBA/Compliance,OPEN +TD-023,P2,프런트 서버상태/Pinia 책임 경계의 팀 규율 미검증,중복 캐시·stale UI,lint/review checklist+query key registry,MVP-B,FE Lead,OPEN +TD-024,P1,Dependency vulnerability/license 자동검사 미구성,공급망 리스크,NuGet/npm SBOM·license allowlist·vulnerability gate,G5,Security/DevOps,OPEN +TD-025,P1,성능 규모 가정 미확정,배치 SLA/DB index 과·소설계,portfolio/security/client volume 결정·capacity test,G6-A,PM/SRE,OPEN +TD-026,P0,Security/Lot weight field ambiguity in v12.1,Partial-lot sell could miscalculate target security weight,MIG-0014 + domain/API/FE golden vectors,G2-A,Quant/BE,IN_PROGRESS +TD-027,P1,Only final sell policy reason was persisted,Blocked/not-applicable priority path was not auditable,Persist ordered policy_trace_json and internal trace contract,G2-A,BE/Quant,IN_PROGRESS +TD-028,P0,Current-session attachment set differs from prior package manifest,Source coverage claim can become stale,Rebuild source index from six current attachments and verify SHA,G0,PM/QA,MITIGATED +TD-029,P1,Request execution contract remains endpoint-local,Error/idempotency/correlation behavior can drift,Adopt reviewed request execution template after characterization tests,G0,BE Lead,OPEN +TD-030,P0,Outbox dispatcher runtime implementation is incomplete,Stored events may not publish or may duplicate,Lease/dead-letter/replay implementation and crash tests,G3,BE/SRE,OPEN +TD-031,P0,Inbox result-hash/replay proof is incomplete,Duplicate downstream side effects remain possible,Consumer-specific transaction and crash/replay tests,G3,BE/SRE,OPEN +TD-032,P1,Outcome metric definitions are not fully versioned,Historical false-exit/gain-capture can drift,outcome-metrics.v1 registry added; Quant/Risk approval and DB scorecard binding remain,G3,Quant/Risk,IN_PROGRESS +TD-033,P1,Module and feature scaffolding depended on manual copying,Pattern drift and vibe-coding hallucination,deterministic scaffold_slice.py + reviewed templates + tests,G0,Architect,MITIGATED +TD-034,P0,v12.2 legacy weight backfill could be treated as explicit lot semantics,Historic context may create incorrect partial-lot target weight,MIG-0015 semantics version; reader accepts version 2 only; rebuild required,G2-A,DBA/BE/Quant,MITIGATED +TD-035,P0,Opportunity edge with zero requested ratio was clamped to 10% sell,Missing quantity decision could become unintended sell,Fail closed with OPPORTUNITY_RATIO_NOT_POSITIVE and Golden test,G2-A,BE/Quant,IN_PROGRESS +TD-036,P1,CI referenced v12.1 validator and contained duplicate working-directory key,Latest controls could be skipped and YAML behavior ambiguous,"Use validate_v123, single working-directory, scaffold tests",G0,DevOps/QA,MITIGATED +TD-037,P1,Policy values duplicated between documents and C# magic numbers,Threshold and priority drift,SellPolicyContract + machine-readable registry + static cross-check,G2,Quant/BE,IN_PROGRESS +TD-038,P1,Previous package did not include v12.2 itself as a new source attachment,Cumulative source chain incomplete for next delta,Seven-file source coverage and SHA index,G0,PM/QA,MITIGATED +TD-039,P0,pnpm lockfile still cannot be generated in isolated environment,Frontend dependency resolution is not reproducible,Generate and review pnpm-lock.yaml on approved connected runner; frozen CI only,G0,FE Lead/DevOps,OPEN +TD-040,P0,v12.3 C# and PostgreSQL changes are statically validated only,"Compile, package compatibility and migration runtime defects may remain",Run .NET 10 build/test and PostgreSQL fresh/upgrade/re-run/failure rehearsal,G0,DevOps/DBA/QA,OPEN +TD-041,P0,v12.4 ModelOperations .NET 실빌드 미검증,scheduler/API/DI/SQL compile 또는 runtime 결함 가능,승인 .NET 10 runner에서 restore/build/test와 PostgreSQL integration 실행,G0/G3,DevOps/BE,OPEN +TD-042,P0,시장별 거래일·휴장·DST 기반 due 계산 미구현,평가 시점 지연 또는 잘못된 세션 평가,MarketCalendar 기반 next_due resolver와 KRX/NYSE/NASDAQ Golden calendar,G3,Data/BE,OPEN +TD-043,P0,false-exit 정확한 adverse-regret 정의 미승인,연 2% 목표의 재현성과 비교 가능성 훼손,분자/분모/가격/benchmark/window/결측 정의를 투자위 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-044,P0,승인 Dataset Manifest와 Model Registry 초기 데이터 부재,모든 scheduled request가 BusinessHold,source/license/hash/model card 승인 후 seed를 별도 승인 migration으로 추가,G3,Data Governance/Risk,OPEN +TD-045,P0,J10~J24 실제 계산 consumer는 작업요청 template 수준,스케줄은 요청을 만들지만 성과·drift·OOS artifact 미생성,VS-18/19/20별 evaluator와 Golden/integration 구현,G4,Quant/BE,OPEN +TD-046,P1,drift baseline·metric·threshold 미승인,과민 또는 지연 경보,feature/data/prediction/calibration drift별 sample minimum과 threshold 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-047,P1,Champion/Challenger cohort 할당·동일성 계약 미완료,비교 편향과 승자 선택 오류,동일 PIT dataset/cost/window/cohort matching 및 holdout 정책 승인,G4,Quant/IndependentValidation,OPEN +TD-048,P1,개선 제안 우선순위와 중복 병합 운영 미실증,제안 폭증·기술부채 누락·과유불급,impact/risk/evidence/cost rubric와 월간 triage WIP limit 운영,G4,Quant Lead/Architect,OPEN +TD-049,P0,모델 승격 maker-checker workflow와 실제 IdP claims 미연결,무단 또는 자기승인 가능,OIDC claims/RBAC/SoD E2E와 감사 원장 연결,G5,Security/Risk,OPEN +TD-050,P1,scheduler lease·enqueue crash chaos 미실증,중복/누락 request 또는 stale lease,다중 worker·DB restart·enqueue 전후 crash·clock skew chaos test,G5,SRE/BE,OPEN +TD-051,P1,모델 rollback drill 실증 없음,모델 이상 시 복구시간 불명,"분기 fallback manifest restore와 Capability hold, RTO/RPO 측정",G5,SRE/Risk,OPEN +TD-052,P1,평가 evidence 보존기간·partition·archive 정책 미결정,DB 팽창 또는 감사자료 조기 삭제,"규제/계약 기준 retention, monthly partition, legal hold, archive restore ADR",G5/G6-A,DBA/Compliance,DECISION_REQUIRED +TD-053,P0,ModelOperations dispatcher가 이전 버전에서 무조건 등록,미승인 평가 자동실행,v12.5 기본 OFF+Capability startup guard+등록 제거 test,G0,BE/Security,MITIGATED +TD-054,P0,기존 J10~J24 schedule enabled seed,Dispatcher 활성 시 재승인 없이 실행 가능,"0017에서 모두 disabled, 운영 변경승인으로 개별 enable",G3,Ops/Risk,MITIGATED +TD-055,P0,실제 evaluator handler 미구현,요청만 생성되고 평가 결과 없음,J10~J30 handler contract·integration·artifact 구현,G3,BE/Quant,OPEN +TD-056,P0,Hangfire enqueue와 schedule mark 사이 원자성 공백,중복 background job 또는 lost dispatch,dispatch-intent outbox 또는 reconciliation 설계와 chaos test,G3,BE/SRE,OPEN +TD-057,P0,승인 시장캘린더/DST 미구현,잘못된 session·lookahead·SLA,J26와 MarketCalendar contract/Golden,G1,Data/Quant,OPEN +TD-058,P1,Promotion thresholds C# hardcode,문서/JSON/C# drift,machine-readable registry+generated constants+drift test,G4,Quant/BE,OPEN +TD-059,P1,Metric Definition 승인 workflow 미완성,false-exit/reentry 수치 조작 가능,definition maker-checker/effective/version/hash,G4,Risk/BE,OPEN +TD-060,P1,Operation artifact retention/archive 미정,증거 유실 또는 DB 비대,artifact class별 retention/legal hold/archive policy,G5,Compliance/DBA,OPEN +TD-061,P1,Release Evidence 자동조립 미구현,수동 누락과 허위 Go,J30 bundle과 required artifact gate,G6,QA/Release,OPEN +TD-062,P1,Projection rebuild diff 미구현,stale/read model 오류 복구 불가,J28+rebuild runner+source watermark diff,G3,BE/Data,OPEN +TD-063,P0,총수익·상폐수익·기업행사 Golden 미완성,성과·Lot·원가 왜곡,공식 source와 golden reconciliation,G1,Data/DBA,OPEN +TD-064,P1,PIT 유효구간 충돌 제약 미완성,중복 current/effective record,bitemporal unique/exclusion constraints,G1,DBA/Data,OPEN +TD-065,P1,고객 UX 불확실성·반대증거 검증 미실행,오해·민원·부적합성,사용성/접근성/준법 테스트,G3,UX/Compliance,OPEN +TD-066,P0,OIDC/JWT·PII·Telegram 운영보안 미실증,무단접근·정보유출,Auth E2E+redaction+secret scan,G5,Security/SRE,OPEN +TD-067,P0,SLO/Volume/Queue isolation 미승인,배치 SLA와 DB 과소/과설계,capacity ADR+load/chaos test,G5,SRE/PM,OPEN +TD-068,P1,현재 패키지 직접 첨부와 이전 누적 첨부가 혼재,Source coverage 오해,direct/transitive coverage와 immutable baseline archive 구분,G0,PM/QA,MITIGATED diff --git a/docs/v12_5/12_TRACEABILITY_MATRIX.csv b/docs/v12_5/12_TRACEABILITY_MATRIX.csv new file mode 100644 index 00000000..fccdced2 --- /dev/null +++ b/docs/v12_5/12_TRACEABILITY_MATRIX.csv @@ -0,0 +1,58 @@ +Requirement_ID,Slice_ID,Policy_or_Data_ID,API_ID,DB_ID,Job_Event_ID,UI_ID,Test_ID,WBS_Range,Release_Gate,Evidence_Status +REQ-PLAT-001,VS-00,DATA/DOMAIN-CONTRACT,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,AEG-VS-00-01..AEG-VS-00-07,G0,SOURCE+DESIGN_PROPOSAL +REQ-IAM-001,VS-01,DATA/DOMAIN-CONTRACT,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,AEG-VS-01-01..AEG-VS-01-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-SEC-001,VS-02,DATA/DOMAIN-CONTRACT,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,AEG-VS-02-01..AEG-VS-02-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-DAT-001,VS-03,DATA/DOMAIN-CONTRACT,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,AEG-VS-03-01..AEG-VS-03-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-CA-001,VS-04,DATA/DOMAIN-CONTRACT,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,AEG-VS-04-01..AEG-VS-04-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-FND-001,VS-05,DATA/DOMAIN-CONTRACT,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,AEG-VS-05-01..AEG-VS-05-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-COST-001,VS-06,DATA/DOMAIN-CONTRACT,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,AEG-VS-06-01..AEG-VS-06-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-CLI-001,VS-07,DATA/DOMAIN-CONTRACT,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,AEG-VS-07-01..AEG-VS-07-07,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-LED-001,VS-08,DATA/DOMAIN-CONTRACT,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,AEG-VS-08-01..AEG-VS-08-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-EVD-001,VS-09,DATA/DOMAIN-CONTRACT,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,AEG-VS-09-01..AEG-VS-09-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-SELL-001,VS-10,"ALG-SELL-001~005,ALG-SELL-PORT-001",SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,AEG-VS-10-01..AEG-VS-10-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-RE-001,VS-11,ALG-REENTRY-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,AEG-VS-11-01..AEG-VS-11-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-BUY-001,VS-12,ALG-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,AEG-VS-12-01..AEG-VS-12-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RISK-001,VS-13,ALG-PORT-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,AEG-VS-13-01..AEG-VS-13-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-REC-001,VS-14,DATA/DOMAIN-CONTRACT,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,AEG-VS-14-01..AEG-VS-14-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-REV-001,VS-15,DATA/DOMAIN-CONTRACT,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,AEG-VS-15-01..AEG-VS-15-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-PUB-001,VS-16,DATA/DOMAIN-CONTRACT,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,AEG-VS-16-01..AEG-VS-16-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-CLD-001,VS-17,DATA/DOMAIN-CONTRACT,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,AEG-VS-17-01..AEG-VS-17-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-EVA-001,VS-18,DATA/DOMAIN-CONTRACT,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,AEG-VS-18-01..AEG-VS-18-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-BKT-001,VS-19,DATA/DOMAIN-CONTRACT,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,AEG-VS-19-01..AEG-VS-19-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-MOD-001,VS-20,DATA/DOMAIN-CONTRACT,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,AEG-VS-20-01..AEG-VS-20-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-REB-001,VS-21,DATA/DOMAIN-CONTRACT,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,AEG-VS-21-01..AEG-VS-21-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-RPL-001,VS-22,DATA/DOMAIN-CONTRACT,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,AEG-VS-22-01..AEG-VS-22-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RECON-001,VS-23,DATA/DOMAIN-CONTRACT,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,AEG-VS-23-01..AEG-VS-23-07,Pilot-A,SOURCE+DESIGN_PROPOSAL +REQ-RPT-001,VS-24,DATA/DOMAIN-CONTRACT,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,AEG-VS-24-01..AEG-VS-24-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-GOV-001,VS-25,DATA/DOMAIN-CONTRACT,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,AEG-VS-25-01..AEG-VS-25-07,G5,SOURCE+DESIGN_PROPOSAL +REQ-SIG-WEIGHT-022,VS-10,ALG-SELL-002~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,AEG22-VS10-001~004,G2-A,SOURCE+INFERENCE +REQ-SIG-TRACE-022,VS-10,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL +REQ-DAT-LIC-022,VS-03,DQ-01~08,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,AEG22-VS03-002,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-REL-022,Cross,DOC-NR-03/06,Cross,Cross,Cross,Cross,T-REL-022,AEG22-X-012,G6,DESIGN_PROPOSAL +REQ-CONTRACT-001,Cross/VS-10/VS-18,sell-policy.v1/outcome-metrics.v1,SIG-01/02,MIG-0015,EVT-SIG-001/J10,UI-SIG-TRACE/UI-EVAL-01,T-CONTRACT-001/T-EVAL-METRIC-001,"AEG-X-034,AEG-VS-10-08..12,AEG-VS-18-08",G2-A/G3,SOURCE+DESIGN_PROPOSAL +REQ-ARCH-SCAFFOLD,Cross,AGENTS/SLICE_SPEC,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,AEG-X-033,G0,DESIGN_PROPOSAL +REQ-SOURCE-123,Cross,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,"AEG-X-031,AEG-X-043",G0/G6,SOURCE +REQ-MO-SCHED-001,VS-18/20/25,model-operations.v1,MO-PLAN-01,MIG-0016,Dispatcher/J10~J24,UI-MO-01,"T-MO-004~007,T-MO-029","AEG-MO-001,004~007,029",G3/G5,TEMPLATE +REQ-MO-EVAL-001,VS-18,outcome-metrics.v2,EVAL-01/02/05,MIG-0016,J10/J11,UI-MO-02,"T-MO-EVAL-001/002,T-MO-ATTR-001","AEG-MO-002~003,010~011,016",G3/G4,TEMPLATE +REQ-MO-DRIFT-001,VS-20,drift-contract DEC_REQUIRED,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,AEG-MO-012,G4,DECISION_REQUIRED +REQ-MO-CC-001,VS-20,champion-challenger matched cohort,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,AEG-MO-013,G4,TEMPLATE +REQ-MO-OOS-001,VS-19,Frozen Manifest/OOS,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,AEG-MO-014,G4,TEMPLATE +REQ-MO-ROBUST-001,VS-19/20,PBO/DSR/Cost2x,BACKTEST-02,MIG-0016,J20,UI-MO-04/06,"T-MO-ROBUST-001,T-MO-MNT-002","AEG-MO-015,037",G4,TEMPLATE +REQ-MO-IMPROVE-001,VS-20,ImprovementProposal,GOV-MO-01/02,MIG-0016,J21,UI-MO-05,T-MO-IMP-001/002,"AEG-MO-017~018,034,038",G4/G5,TEMPLATE +REQ-MO-PROMOTE-001,VS-20/25,promotion-gate.v1,GOV-MO-03/04,MIG-0016,J22,UI-MO-06,T-MO-GATE-001/002,AEG-MO-019~020,G4/G5,TEMPLATE +REQ-MO-ROLLBACK-001,VS-25,rollback runbook,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,AEG-MO-024,G5,TEMPLATE +REQ-MO-REPLAY-001,VS-23,PIT revision/correction,REPLAY-01/02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001/002,AEG-MO-022~023,G3,TEMPLATE +REQ-MO-FE-001,VS-18/20/25,Zod runtime contract,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01~09,"T-MO-FE-001~003,T-MO-E2E-001","AEG-MO-008~009,021,031",G3/G5,TEMPLATE +REQ-MO-OPS-001,VS-25/Cross,observability/retry/security/capacity,MO-OPS-01~04,MIG-0016,Dispatcher/J10~J24,UI-MO-09,"T-MO-OPS-001/002,T-MO-SEC-001,T-MO-CAP-001,T-MO-CI-001","AEG-MO-025~028,032~035",G5/G6,TEMPLATE +REQ-EXA-001,Cross/VS-18/19/20/25,EXA-CONTRACT-01,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-001,AEG-V12-5-001..AEG-V12-5-004,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-002,Cross/VS-18/19/20/25,EXA-CONTRACT-02,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-002,AEG-V12-5-005..AEG-V12-5-008,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-003,Cross/VS-18/19/20/25,EXA-CONTRACT-03,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-003,AEG-V12-5-009..AEG-V12-5-012,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-004,Cross/VS-18/19/20/25,EXA-CONTRACT-04,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-004,AEG-V12-5-013..AEG-V12-5-016,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-005,Cross/VS-18/19/20/25,EXA-CONTRACT-05,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-005,AEG-V12-5-017..AEG-V12-5-020,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-006,Cross/VS-18/19/20/25,EXA-CONTRACT-06,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-006,AEG-V12-5-021..AEG-V12-5-024,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-007,Cross/VS-18/19/20/25,EXA-CONTRACT-07,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-007,AEG-V12-5-025..AEG-V12-5-028,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-008,Cross/VS-18/19/20/25,EXA-CONTRACT-08,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-008,AEG-V12-5-029..AEG-V12-5-032,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-009,Cross/VS-18/19/20/25,EXA-CONTRACT-09,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-009,AEG-V12-5-033..AEG-V12-5-036,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-010,Cross/VS-18/19/20/25,EXA-CONTRACT-10,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-010,AEG-V12-5-037..AEG-V12-5-040,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-011,Cross/VS-18/19/20/25,EXA-CONTRACT-11,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-011,AEG-V12-5-041..AEG-V12-5-044,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-012,Cross/VS-18/19/20/25,EXA-CONTRACT-12,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-012,AEG-V12-5-045..AEG-V12-5-048,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED diff --git a/docs/v12_5/13_DECISION_LOG.csv b/docs/v12_5/13_DECISION_LOG.csv new file mode 100644 index 00000000..93f39101 --- /dev/null +++ b/docs/v12_5/13_DECISION_LOG.csv @@ -0,0 +1,45 @@ +Decision_ID,Status,Decision_or_Question,Basis,Owner,Gate,Approved_or_Due +DEC-001,APPROVED,투자자문형→Shadow→Pilot; 자동주문 OFF,v10.0·v12.2,운영사/준법,ALL,2026-08-01 +DEC-002,APPROVED,알고리즘 상태 RESEARCH_CANDIDATE_NOT_PRODUCTION,v10.0·v12.2,투자위/리스크,G4,2026-08-01 +DEC-003,APPROVED,Modular Monolith+Vertical Slice; 조기 microservice 금지,v10.0,Architect,G0,2026-08-01 +DEC-004,APPROVED,PIT/revision/hash/lineage와 immutable Evidence 우선,v10.0·v12.2,Data/Quant,G1,2026-08-01 +DEC-005,APPROVED,매도 우선순위: impairment→survival→floor→concentration→opportunity→reentry,v12.2,투자위/Quant,G2,2026-08-01 +DEC-006,APPROVED,SellRatioOfLot와 portfolio weight/core floor 단위 분리,v12.0 Delta,Quant/Architect,G2-A,2026-08-02 +DEC-007,DECISION_REQUIRED,생산 OIDC/JWT 공급자와 claims mapping,자료 미지원,Security/PM,G5,미정 +DEC-008,DECISION_REQUIRED,PIT 총수익·상폐·컨센서스 공급원/라이선스,자료 미지원,Data Governance/Legal,G1,미정 +DEC-009,DECISION_REQUIRED,계좌·시장·venue별 Fee/Tax/FX schedule,자료 미지원,Ops/Tax/Quant,G1,미정 +DEC-010,DECISION_REQUIRED,SLO/RPO/RTO와 운영 용량 기준,자료 미지원,SRE/PM,G5,미정 +DEC-011,DECISION_REQUIRED,고객/계좌/상품 규모와 성능 테스트 볼륨,자료 미지원,PM/SRE,G6-A,미정 +DEC-012,DECISION_REQUIRED,한국 최신 PIT 데이터 확보 범위와 재검증 일정,자료 미지원,Quant/Data,G4,미정 +DEC-013,APPROVED,Lot-relative sell ratio uses CurrentLotPortfolioWeight; target security weight subtracts LotWeight×Ratio,v10/v12.1 unit-separation intent and data-consistency correction,Quant/Architect,G2-A,2026-08-02 +DEC-014,APPROVED,Ordered policy trace is immutable internal decision evidence; customer view receives curated explanation,Explainability and audit delta,Quant/Compliance/Architect,G2-A/G3,2026-08-02 +DEC-015,APPROVED,v12.2 preserves all six current-session attachments byte-for-byte and treats v12.1 as baseline,Non-regression source control,PM/Architect,G0,2026-08-02 +DEC-016,DECISION_REQUIRED,Select production OpenAPI client generation tool and ownership,Toolchain/network approval required,BE/FE/DevOps,G3,Before S11 +DEC-017,DECISION_REQUIRED,Approve .NET/PostgreSQL/pnpm runner image digests,Real build and migration evidence prerequisite,DevOps/Security,G0,Before coding start +DEC-013,DECISION_REQUIRED,자본바닥/생존 매도가 same-direction cooldown을 우회하는가,v10 우선순위는 명확하나 cooldown 예외는 첨부 근거에 명시되지 않음,투자위/리스크/Quant,G2,Before VS-10 production path +DEC-014,DECISION_REQUIRED,Hard impairment 80~100%를 어떤 증거등급/심각도로 매핑하는가,v10 범위는 80~100%; 현재 구현은 보수적으로 100%,투자위/준법/Quant,G2,Before policy parameter change +DEC-015,APPROVED,v12.2 이전 ambiguous weight context는 추정 사용하지 않고 semantics v2로 재구축한다,PIT·재현성·DECISION_REQUIRED fail-closed 원칙,Data Architect/Quant/Architect,G2-A,2026-08-02 +DEC-016,APPROVED,정책·이벤트·성과지표 계약은 버전과 hash를 가진 machine-readable artifact로 관리한다,"DOC-NR-05/06, v12.1 TD-021/032",Architect/Quant/Risk,G2/G3,2026-08-02 +DEC-022,APPROVED,스케줄러 자동화는 EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY로 제한,v10 자동주문 OFF·v12.1 연구후보 경계,Risk/Architect,ALL,2026-08-02 +DEC-023,APPROVED,모델·정책·임계값 자동 승격/변경/롤백 금지; human maker-checker 필수,모델 거버넌스와 독립검증 Gate,InvestmentCommittee/Compliance,G4/G5,2026-08-02 +DEC-024,APPROVED,15분 Dispatcher + DB schedule/lease + dynamic queue 패턴,시장별 job 난립과 DST hard-code 방지,Architect/SRE,G3,2026-08-02 +DEC-025,APPROVED,모델 평가 요청 시 승인 Dataset/Model/Config/Code/Contract VersionSet 동결,재현성·이력성·PIT 원칙,Data/Quant,G3,2026-08-02 +DEC-026,APPROVED,성과지표는 분자/분모/평가창/집계/비용을 버전 계약으로 관리,63일 연구 통계와 연간 목표 혼용 방지,Quant/Risk,G4,2026-08-02 +DEC-027,APPROVED,일/주/월/분기 평가와 revision-trigger replay를 분리,운영 부하와 증거 적시성 균형,Quant/SRE,G3/G4,2026-08-02 +DEC-028,APPROVED,J21은 개선 제안만 생성하며 코드·모델·설정 파일을 수정하지 않음,바이브코딩·홀루시네이션·과최적화 통제,Architect/Quant,G4,2026-08-02 +DEC-029,APPROVED,"J10/J11/J17 일, J18/J24 주, J19/J21/J22 월, J20/J23 분기 기본 cadence",v10 J10/J11 및 유지보수 운영리듬 계승,Risk/Ops,G3/G5,2026-08-02 +DEC-030,DECISION_REQUIRED,평가 evidence retention/partition/archive/legal hold 기간,첨부 근거에 구체 보존기간 없음,Compliance/DBA,G5/G6-A,G5 전 +DEC-031,DECISION_REQUIRED,Data/Feature/Prediction/Calibration drift metric·sample·threshold,첨부 근거는 drift 필요성만 제시하고 수치 계약 미제공,Quant/Risk,G4,J17 구현 전 +DEC-032,DECISION_REQUIRED,False-exit adverse-regret의 정확한 가격·benchmark·window 정의,첨부의 연 2% 목표와 연구 CSV를 직접 동일시할 수 없음,InvestmentCommittee/Quant,G4,J10 생산화 전 +DEC-033,APPROVED,"ModelOperations Dispatcher 기본 OFF, ShadowEvaluation과 별도 승인 필요",v10 안전경계+v12.5,Architect/Security,G0,2026-08-02 +DEC-034,APPROVED,"J10~J30은 평가·제안·훈련만 허용, 모델/주문 자동변경 금지",v12.4+v12.5,Risk/Compliance,ALL,2026-08-02 +DEC-035,APPROVED,v12.4 원본 ZIP을 immutable baseline으로 보존하고 current attachment를 직접 보존,비회귀,PM/QA,G0,2026-08-02 +DEC-036,DECISION_REQUIRED,생산 OIDC/JWT provider와 claims/key rotation,첨부 미결,Security/PM,G5,D+10 +DEC-037,DECISION_REQUIRED,총수익·상폐·컨센서스 source/license/SLA,첨부 미결,Data Governance/Legal,G1,D+10 +DEC-038,DECISION_REQUIRED,KRX/NYSE/NASDAQ market calendar source와 운영 owner,v12.4 TD-042,Data/Ops,G1,D+10 +DEC-039,DECISION_REQUIRED,Fee/Tax/FX account/venue/asset schedule,첨부 미결,Ops/Tax/Quant,G1,D+10 +DEC-040,DECISION_REQUIRED,false-exit/reentry metric denominator/window,metric governance,Risk/Quant,G4,D+30 +DEC-041,DECISION_REQUIRED,SLO/RPO/RTO와 volume assumptions,운영 미결,SRE/PM,G5,D+20 +DEC-042,APPROVED,288 baseline WBS 보존+48 execution assurance Delta,v12.5,PM/Architect,G0,2026-08-02 +DEC-043,APPROVED,직접 runtime evidence 없는 상태를 IMPLEMENTATION_TEMPLATE로 표시,신뢰성,QA/Compliance,ALL,2026-08-02 +DEC-044,DECISION_REQUIRED,투자일임형 검토 개시 시점과 독립승인 체계,252일 Shadow 이후,운영사/법무/준법,G6,Shadow+252 diff --git a/docs/v12_5/14_PACKAGE_CONTENTS.md b/docs/v12_5/14_PACKAGE_CONTENTS.md new file mode 100644 index 00000000..f738169c --- /dev/null +++ b/docs/v12_5/14_PACKAGE_CONTENTS.md @@ -0,0 +1,11 @@ +# v12.5 패키지 구성 + +- v12.4 전체 코드·문서·템플릿을 실행 기준선으로 보존한다. +- `docs/v12_5/`: 역할별 비판, 아키텍처, 알고리즘, 데이터, BE/FE, QA, WBS 336건, 기술부채 68건, 추적성, Decision, RACI, Risk, Validation. +- `db/migrations/0017_execution_assurance.sql`: schedule fail-closed, artifact, dependency, release evidence, source contract, decision history. +- `src/KArtSell.Modules.ModelOperations`: Dispatcher 기본 OFF, evidence-only 실행경계, J25~J30 registry. +- `attachments/current_request_20260802/`: 현재 첨부 3개 byte-for-byte 보존. +- v12.4 원본 ZIP 내부에 이전 누적 첨부와 Source Index가 보존되어 있다. +- `PACKAGE_MANIFEST.json`, `SHA256SUMS.txt`: 전체 파일 무결성. + +이 패키지는 생산 승격 증거가 아니라 실행 템플릿과 통합 제안이다. diff --git a/docs/v12_5/15_JOB_CATALOGUE.csv b/docs/v12_5/15_JOB_CATALOGUE.csv new file mode 100644 index 00000000..53112772 --- /dev/null +++ b/docs/v12_5/15_JOB_CATALOGUE.csv @@ -0,0 +1,17 @@ +Job_ID,Name,Cadence,Trigger_or_Precondition,Queue,Automation_Mode,Frozen_Context,Output,Primary_Owner,Secondary,Gate,Failure_Mode,Status +J10,OutcomeEvaluationRun,DAILY,market session closed and total-return data complete,q-evaluation,EVALUATION_ONLY,Dataset/Model/Config/Code/Contract,1/5/20/63/126/252 OutcomeObservation,Quant/Ops,Data/QA,G3,BUSINESS_HOLD on missing PIT/TR,TEMPLATE +J11,DailyScorecardBuild,DAILY,J10 due windows complete,q-evaluation,EVALUATION_ONLY,Metric definition/cohort versions,daily scorecard and alerts,Quant/Ops,Risk/SRE,G3,HOLD on sample/lag/definition mismatch,TEMPLATE +J17,DriftDetectionRun,DAILY,approved baseline and minimum sample available,q-evaluation,EVALUATION_ONLY,baseline manifest/version,data/feature/prediction/calibration drift,Quant/Risk,Data/SRE,G4,HOLD only; no automatic model change,TEMPLATE +J18,ChampionChallengerEvaluation,WEEKLY,same frozen dataset/cost/cohort available,q-evaluation,EVALUATION_ONLY,paired model VersionSets,paired comparison with confidence intervals,Quant/Risk,IndependentValidation/QA,G4,QUARANTINE on cohort mismatch,TEMPLATE +J19,FrozenOosBacktest,MONTHLY,dataset rights/hash/seed/environment manifest approved,q-research,EVALUATION_ONLY,frozen research manifest,walk-forward OOS artifacts,Quant/Data,QA/Risk,G4,FAIL artifact retained,TEMPLATE +J20,RobustnessPboDsrRun,QUARTERLY,complete experiment registry and OOS outputs,q-research,EVALUATION_ONLY,experiment registry/version,PBO/DSR/stability/cost2x report,Quant/Risk,IndependentValidation,G4,HOLD on incomplete attempt ledger,TEMPLATE +J21,ModelImprovementProposalBuild,MONTHLY,scorecard/drift/attribution/debt evidence complete,q-research,PROPOSAL_ONLY,all cited evidence hashes,review-required improvement proposals,Quant Lead,Risk/Architect,G4,no code/config/model mutation,TEMPLATE +J22,PromotionEvidenceReviewBuild,MONTHLY,candidate requests review and all gates calculated,q-control,PROPOSAL_ONLY,promotion-gate v1 evidence bundle,maker-checker review packet,Risk/InvestmentCommittee,Compliance/QA,G4,PENDING/HOLD; no activation,TEMPLATE +J23,ModelRollbackDrill,QUARTERLY,approved champion/fallback manifests and runbook,q-control,DRILL_ONLY,champion/fallback VersionSets,RTO/RPO and restore evidence,SRE/Risk,Module Owner/QA,G5,no real order submission,TEMPLATE +J24,DataRevisionRevalidation,WEEKLY+EVENT,approved revision lineage and impact index,q-backfill,EVALUATION_ONLY,before/after dataset versions,replay impact and correction proposal,Data/Quant,DBA/QA,G3,no overwrite; correction evidence only,TEMPLATE +J25,SourceContractDriftCheck,DAILY,approved source schema/license/SLA snapshot,q-evaluation,EVALUATION_ONLY,Source contract hash/version,schema/license/SLA drift evidence,Data Governance,Adapter Owner/QA,G1,BUSINESS_HOLD on unapproved change,TEMPLATE_DISABLED +J26,MarketCalendarCompletenessCheck,DAILY,approved market calendar and EOD completeness,q-market-data,EVALUATION_ONLY,Calendar/source/version,tradable-session readiness,Data/Ops,Quant/QA,G1,HOLD on holiday/DST/source mismatch,TEMPLATE_DISABLED +J27,EvidenceChainAudit,DAILY,decision/outcome/audit hash chain available,q-control,EVALUATION_ONLY,Evidence VersionSet,missing-link/mutation evidence,Compliance/QA,Data/BE,G3,QUARANTINE on hash mismatch,TEMPLATE_DISABLED +J28,ProjectionFreshnessCheck,DAILY,projection contract and watermark,q-evaluation,EVALUATION_ONLY,Projection version/watermark,staleness/rebuild diff,BE/Data,SRE/QA,G3,HOLD on stale projection,TEMPLATE_DISABLED +J29,CapacitySlaTrend,WEEKLY,approved SLO and volume assumptions,q-control,EVALUATION_ONLY,SLO/capacity version,capacity trend decision packet,SRE/PM,DBA/Module Owner,G5,WARN/HOLD on saturation,TEMPLATE_DISABLED +J30,ReleaseEvidenceAssemble,EVENT_DRIVEN,release candidate artifacts complete,q-control,PROPOSAL_ONLY,Source/build/test/migration/security/rollback hash,review-required release bundle,QA/Release Manager,Compliance/SRE,G6,HOLD on any missing artifact,TEMPLATE_DISABLED diff --git a/docs/v12_5/16_RACI_MATRIX.csv b/docs/v12_5/16_RACI_MATRIX.csv new file mode 100644 index 00000000..ebfe9e3f --- /dev/null +++ b/docs/v12_5/16_RACI_MATRIX.csv @@ -0,0 +1,11 @@ +Activity,Accountable,Responsible,Consulted,Informed,Maker_Checker,Gate +Product scope/advisory boundary,Operating Company/Compliance,PM,Legal/Risk/Advisor,All,PM≠Compliance,G0 +Algorithm policy/threshold,Investment Committee,Quant Lead,Risk/Data/QA,Advisor/Ops,Quant≠Investment Committee,G2/G4 +Source/license contract,Data Governance/Legal,Data Architect,DBA/Quant/Adapter Owner,PM/Ops,Source Owner≠Legal Approver,G1 +Architecture/module boundary,Architect,PL/Module Lead,DBA/Security/QA,PM,Implementer≠Architecture Reviewer,G0 +DB migration,DBA Lead,BE/DBA,Data/QA/SRE,PM/Ops,Author≠Migration Approver,G0/G1 +UX customer journey,Product/Compliance,UX/AX,Advisor/Customer/QA,FE/PM,Designer≠Compliance,MVP-B/G3 +Recommendation review/publish,Advisor Lead,Advisor Maker,Risk/Compliance,Customer/Ops,Author≠Approver,G3 +Model promotion evidence,Risk/Investment Committee,Quant/QA,Independent Validation/Compliance/Security/Ops,PM,Model Developer≠Final Approver,G4 +Release evidence,Release Manager,QA/DevOps,Security/DBA/SRE/Compliance,All Owners,Builder≠Release Approver,G6 +Incident/DR,Operations/SRE,Primary Owner,DBA/Security/Compliance/CS,Management/Customers as required,Recovery executor≠Evidence reviewer,G5 diff --git a/docs/v12_5/17_RISK_REGISTER.csv b/docs/v12_5/17_RISK_REGISTER.csv new file mode 100644 index 00000000..b2c508b0 --- /dev/null +++ b/docs/v12_5/17_RISK_REGISTER.csv @@ -0,0 +1,16 @@ +Risk_ID,Category,Risk,Likelihood,Impact,Priority,Preventive_Control,Detective_Control,Response,Owner,Gate,Status +R-001,Data,PIT lookahead,M,Critical,P0,published_at/tradable_session contract,DQ-01/J26,quarantine and replay,Data/Quant,G1,OPEN +R-002,Data,Survivorship/delisting omission,H,Critical,P0,universe/delisting source,Golden/OOS audit,block promotion,Data Governance,G1/G4,OPEN +R-003,Data,Source license violation,M,Critical,P0,L0 approval,J25 contract drift,disable source,Legal/Data,G1,OPEN +R-004,Algorithm,Overfitting/hidden trials,H,Critical,P0,experiment registry,PBO/DSR/independent replay,reject candidate,Quant/Risk,G4,OPEN +R-005,Algorithm,False-exit definition gaming,M,High,P0,versioned metric definition,metric drift audit,HOLD,Risk/QA,G4,OPEN +R-006,Execution,Duplicate decision/outbox,M,Critical,P0,idempotency+transaction,chaos/reconciliation,kill switch/replay,BE/SRE,G3,OPEN +R-007,Scheduler,Unapproved schedule execution,M,Critical,P0,default OFF+disabled seed,startup/config/J27,remove recurring jobs,Security/Ops,G0/G3,MITIGATED +R-008,Security,OIDC/PII leakage,M,Critical,P0,fail-closed/redaction,Auth E2E/secret scan,disable publication,Security,G5,OPEN +R-009,Operations,Queue saturation,M,High,P1,queue/resource isolation,J29/SLO alerts,throttle research,SRE,G5,OPEN +R-010,DB,Append-only growth,H,High,P1,retention/archive design,size/index trend,archive/partition,DBA,G5,OPEN +R-011,UX,Customer misinterpretation,M,High,P1,uncertainty/counter-evidence UX,usability/complaint monitoring,revise disclosure,UX/Compliance,G3,OPEN +R-012,PM,WBS progress inflation,H,Medium,P1,evidence-based Done,Gate burn-down,re-baseline,PMO,ALL,OPEN +R-013,SupplyChain,Package vulnerability/license,M,High,P1,lock/SBOM/allowlist,CI scan,block release,Security/DevOps,G5,OPEN +R-014,ModelOps,Automatic promotion misconception,M,Critical,P0,boundary text/code,J27/audit/UI panel,HOLD and governance review,Risk/Compliance,ALL,MITIGATED +R-015,DR,Backup/rollback failure,M,Critical,P0,runbook/fallback manifest,quarterly drill,No-Go,SRE/DBA,G5,OPEN diff --git a/docs/v12_5/18_VALIDATION_MATRIX.csv b/docs/v12_5/18_VALIDATION_MATRIX.csv new file mode 100644 index 00000000..8bd886bb --- /dev/null +++ b/docs/v12_5/18_VALIDATION_MATRIX.csv @@ -0,0 +1,11 @@ +Validation_ID,Scope,Command_or_Evidence,Expected,Current_Result,Status,Gate,Owner +VAL-001,Static v12.5,python3 scripts/validate_v125.py,0 FAIL,15 PASS / 4 WARN / 0 FAIL,PASS,G0,QA +VAL-002,Python policy,python3 -m unittest -v in research/hardening,all pass,4 PASS / 0 FAIL,PASS,G2,Quant/QA +VAL-003,Scaffolder,python3 -m unittest -v scripts.tests.test_scaffold_slice,all pass,2 PASS / 0 FAIL,PASS,G0,DevEx/QA +VAL-004,.NET,dotnet restore/build/test Release,green/TRX,NOT_EXECUTED_NO_SDK,BLOCKED,G0,DevOps +VAL-005,Frontend,pnpm frozen typecheck/test/build/e2e,green,NOT_EXECUTED_NO_LOCK_NETWORK,BLOCKED,G0/G3,FE/DevOps +VAL-006,PostgreSQL,DbUp fresh/upgrade/re-run/failure,4 pass,NOT_EXECUTED_NO_DB,BLOCKED,G0,DBA +VAL-007,DOCX,render_docx visual QA,all pages clean,18 pages visual PASS,PASS,G0,QA +VAL-008,Shadow,252 trading days + 2 regimes,met,NOT_MET,BLOCKED,G4,Quant/Risk +VAL-009,Security,OIDC/PII/SBOM/chaos,green,NOT_EXECUTED,BLOCKED,G5,Security +VAL-010,DR,backup/restore/rollback drill,within approved RPO/RTO,NOT_EXECUTED,BLOCKED,G5,SRE/DBA diff --git a/docs/v12_5/K-ArtSell_Aegis_v12_5_∞ïñφûëδ│┤∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx b/docs/v12_5/K-ArtSell_Aegis_v12_5_∞ïñφûëδ│┤∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx new file mode 100644 index 00000000..1a6693d0 Binary files /dev/null and b/docs/v12_5/K-ArtSell_Aegis_v12_5_∞ïñφûëδ│┤∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx differ diff --git a/docs/v13_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md b/docs/v13_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md new file mode 100644 index 00000000..5993e6bf --- /dev/null +++ b/docs/v13_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md @@ -0,0 +1,29 @@ +# K-ArtSell Aegis v13.0 표준화·지속모델운영 통합 고도화 + +상태: **IMPLEMENTATION_TEMPLATE / STATIC_VALIDATED / RUNTIME_EVIDENCE_REQUIRED** +운영 경계: **RESEARCH_CANDIDATE_NOT_PRODUCTION · 투자자문형 우선 · 자동주문/KIS 제출 OFF · 자동 모델승격 OFF** + +## 경영진 결론 + +v10.0의 비회귀·PIT·불변 증거·26개 Vertical Slice·자동주문 OFF 원칙과 v12.1~v12.5의 실행보증 기준은 유지한다. v13.0은 기능 수를 늘리는 버전이 아니라, **FE의 교체 가능한 표준 UI 포트**, **10개 화면 타입 템플릿**, **지속 모델 평가의 동결-성숙-평가-가설-독립검증 루프**, **400개 실행 WBS**를 추가한 누적 Delta다. + +현재 패키지는 생산 인증물이 아니다. .NET 10 restore/build/test, pnpm frozen install/typecheck/test/build, PostgreSQL DbUp rehearsal, KRX/OPENDART/KIS·총수익·상폐·컨센서스·Fee/Tax/FX 계약, 252거래일 Shadow, PBO/DSR, OIDC/JWT, DR 증거는 여전히 Gate 조건이다. + +## 처절한 비판 + +1. 기존 FE는 화면 몇 개와 공통 컴포넌트가 있으나 Feature가 특정 UI 라이브러리를 직접 사용하지 못하게 하는 교체 경계가 없었다. +2. “공통 컴포넌트”라는 이름만 있고 화면 상태·권한·버전·감사·접근성까지 재사용하는 계약이 없으면 유지보수 부채만 증가한다. +3. CRUD는 단순 등록·수정이 아니다. 투자자문 시스템의 CRUD는 PIT, 승인, 만료, 충돌, 불변 이력, 정정 이벤트를 포함한다. +4. 모델 평가 스케줄러가 있다고 지속 개선이 되는 것이 아니다. 예측을 결과 관측 전에 동결하고, 평가창 성숙과 데이터 revision을 분리하지 않으면 결과는 재현되지 않는다. +5. 자동 개선·자동 승격은 금지한다. 시스템은 증거와 가설을 제안하고, 독립 검증과 maker-checker가 결정한다. + +## v13.0 핵심 Delta + +- `frontend/src/shared/ui/adapter`: PrimeVue/AG Grid를 격리한 교체 가능한 UI Adapter Port. +- `frontend/src/shared/ui/layouts`: AppShell/Page/Form/Review/Dashboard 표준 레이아웃. +- `frontend/src/shared/ui/screen-types`: T01~T10 CRUD·업무화면 템플릿. +- 중앙 금융 formatter, 공통 상태 Matrix, 화면 타입 catalogue와 contract tests. +- J31~J38 지속 모델 평가·개선 제안 Job. 모두 기본 비활성화, evidence/proposal only. +- `0018_v13_model_feedback_loop.sql`: prediction freeze, window maturity, improvement hypothesis append-only 계약. +- Backend/Frontend 동시 생성 Vertical Slice scaffolder. +- v12.5 WBS 336건에 실행 Delta 64건을 더한 총 400건 WBS. diff --git a/docs/v13_0/01_BASELINE_COVERAGE_AND_NON_REGRESSION.md b/docs/v13_0/01_BASELINE_COVERAGE_AND_NON_REGRESSION.md new file mode 100644 index 00000000..6248dccd --- /dev/null +++ b/docs/v13_0/01_BASELINE_COVERAGE_AND_NON_REGRESSION.md @@ -0,0 +1,14 @@ +# 기준선 보존·비회귀·첨부 커버리지 + +## 우선순위 + +1. v10.0 누적 통제와 자동주문 OFF·고객보호·PIT·감사·재현성 +2. v12.1~v12.5의 실행준비·실행보증 Delta +3. v13.0의 UI Adapter·화면 타입·모델 피드백 루프 +4. 충돌하지 않는 과거 상세 WBS·Runbook·QA 계약 + +삭제·대체는 Supersession Record 없이는 금지한다. 자료로 판단할 수 없는 항목은 `DECISION_REQUIRED`이며 코드 기본값으로 채우지 않는다. + +## 현재 요청 첨부 + +`attachments/current_request_20260802_v13/`에 두 DOCX와 v12.5 분할 ZIP 3개를 byte-for-byte 보존한다. SHA-256은 `SOURCE_COVERAGE_MATRIX.csv`, 전체 패키지 hash는 루트 `SHA256SUMS.txt`가 기준이다. diff --git a/docs/v13_0/02_FRONTEND_ADAPTER_DESIGN_SYSTEM.md b/docs/v13_0/02_FRONTEND_ADAPTER_DESIGN_SYSTEM.md new file mode 100644 index 00000000..3173ef12 --- /dev/null +++ b/docs/v13_0/02_FRONTEND_ADAPTER_DESIGN_SYSTEM.md @@ -0,0 +1,25 @@ +# FE 표준 컴포넌트·디자인 시스템·어댑터 + +## 절대 규칙 + +Feature는 `primevue/*`, `ag-grid-*`를 직접 import하지 않는다. UI 공급자 의존은 `shared/ui/adapter/`에만 둔다. Feature는 `KsButton`, `KsTextField`, `KsDataGrid`, 표준 Layout과 Screen Type만 사용한다. + +## 3계층 + +1. **Adapter Port**: Button/Input/Select/Dialog/Tag/Grid의 최소 의미 계약. +2. **Standard Component**: label, error, help, a11y, 금융 상태를 포함하는 `Ks*` 컴포넌트. +3. **Domain Component**: Evidence, Reentry, Approval, VersionSet처럼 투자 업무 의미를 가진 컴포넌트. + +공통 승격은 최소 3개 사용처가 아니라, **동일 업무 의미·상태·권한·접근성·테스트·변경축**이 반복될 때만 허용한다. 단순 CSS 유사성은 공통화 근거가 아니다. + +## 교체 절차 + +1. 새 Vendor Adapter가 모든 Port를 구현한다. +2. Adapter contract, Vitest, a11y, Playwright 핵심 여정, visual regression을 통과한다. +3. T01~T10 상태 Matrix와 금융 formatter의 의미 diff가 0인지 검증한다. +4. ADR과 rollback plan을 승인한다. +5. Feature 코드는 수정하지 않고 bootstrap adapter만 교체한다. + +## 상태·표현 + +LOADING, EMPTY, WARN, ERROR, EXPIRED, UNAUTHORIZED, READONLY, DIRTY, CONFLICT, PROCESSING, PARTIAL을 표준화한다. 색상만으로 상태를 표시하지 않고 텍스트·아이콘·ARIA를 병행한다. 손실·경고·데이터 신선도를 수익보다 먼저 보여준다. diff --git a/docs/v13_0/03_STANDARD_LAYOUT_AND_SCREEN_TYPES.md b/docs/v13_0/03_STANDARD_LAYOUT_AND_SCREEN_TYPES.md new file mode 100644 index 00000000..4952d122 --- /dev/null +++ b/docs/v13_0/03_STANDARD_LAYOUT_AND_SCREEN_TYPES.md @@ -0,0 +1,23 @@ +# 표준 레이아웃·CRUD 화면 타입 + +| ID | 타입 | 핵심 적용 | +|---|---|---| +| T01 | 검색·목록형 CRUD | 상품·고객·권한·Data Run·추천 대기열 | +| T02 | 상세 조회형 | 투자제안·포트폴리오·백테스트 결과 | +| T03 | 등록·편집 Form | IPS·비용표·설정·권한 | +| T04 | Master-Detail | 추천-항목·Watch-Stage·대사 Run-Break | +| T05 | 검토·승인 Workbench | 추천·모델·정정·대사 maker-checker | +| T06 | 단계 Wizard | 온보딩·IPS·리밸런싱·Backfill | +| T07 | Dashboard·Scorecard | 고객·일평가·SLO | +| T08 | Batch·데이터 운영 | 수집·Feature·추천·평가·재처리 | +| T09 | 대사·예외 처리 | KIS/원장·DQ 격리·정정 | +| T10 | 버전 비교·거버넌스 | 모델·정책·설정·Source 승격 | + +## CRUD의 의미 + +- Create: 새 버전 또는 새 원장 이벤트. 과거 row overwrite 금지. +- Read: as-of, version, freshness, DQ, permission, audit를 함께 조회. +- Update: 일반 Master는 optimistic concurrency, Evidence/Decision/Audit는 correction event. +- Delete: 업무 삭제 대신 retire/expire/supersede. 물리 삭제는 법정·보존정책에 따르는 별도 통제. + +모든 화면은 `Screen ID/Route`, Role/Scope, 사용자 결과, In/Out, Data/Read Model, 상태 Matrix, 행동·검증, a11y, Given/When/Then, 테스트·관제를 가진다. diff --git a/docs/v13_0/04_ALGORITHM_AND_CONTINUOUS_MODEL_LOOP.md b/docs/v13_0/04_ALGORITHM_AND_CONTINUOUS_MODEL_LOOP.md new file mode 100644 index 00000000..edb1b5ec --- /dev/null +++ b/docs/v13_0/04_ALGORITHM_AND_CONTINUOUS_MODEL_LOOP.md @@ -0,0 +1,24 @@ +# 알고리즘·예측·평가·개선 지속 루프 + +## 고정 우선순위 + +HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION/LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION + +상위 위험은 하위 기대수익 점수로 상쇄하지 않는다. 매도는 Lot 비율과 실행 후 Portfolio Weight를 분리한다. 비가치훼손 매도는 ReentryWatch를 동시에 생성하며, 최소 10거래일·상승 SMA50·직전 20일 고점·단계 간 10거래일·126거래일 만료·새 Cycle/Lot을 적용한다. + +## 지속 루프 + +1. **J31 PredictionFreezeRun**: 결과가 알려지기 전에 Dataset/Model/Config/Code/Contract SHA와 예측을 불변 동결. +2. **J32 OutcomeMaturitySweep**: 거래세션 기준 1/5/20/63/126/252일 평가창 성숙. +3. **J33 SellReentryAttributionReview**: false-exit, gain capture, 영구손실 회피, 포착률, 지연비용. +4. **J34 CalibrationRegimeReview**: P10/P50/P90 coverage, Brier/log loss, calibration, regime/drift. +5. **J35 ImprovementHypothesisBuild**: 문제·증거·예상효과·반증시험·비목표를 가진 개선 가설 제안. +6. **J36 ChallengerExperimentPlan**: 동결 실험계획 제안. 승인 없이 훈련·설정변경·활성화 금지. +7. **J37 IndependentValidationPack**: OOS·PBO·DSR·cost2x·재현성·운영 무결성 독립 검증. +8. **J38 ModelPolicyDebtReview**: 모델/정책/데이터/기술부채의 우선순위·만료·상환 Gate. + +모든 Job은 기본 OFF이며 `EVALUATION_ONLY` 또는 `PROPOSAL_ONLY`다. 자동 모델 승격, 자동 파라미터 변경, 고객 공개, 주문 제출은 금지한다. + +## Append-only state progression + +`evaluation_window_maturity` and `model_improvement_hypothesis` are not updated in place. A state change appends a new `maturity_revision` or `hypothesis_version` row with a `supersedes_*_id` pointer. The prior row remains immutable, so replay and maker-checker evidence do not depend on mutable status columns. diff --git a/docs/v13_0/05_BACKEND_DATA_HANGFIRE_STANDARD.md b/docs/v13_0/05_BACKEND_DATA_HANGFIRE_STANDARD.md new file mode 100644 index 00000000..e7fe0f4c --- /dev/null +++ b/docs/v13_0/05_BACKEND_DATA_HANGFIRE_STANDARD.md @@ -0,0 +1,13 @@ +# Backend·데이터·Hangfire 실행 표준 + +## Vertical Slice + +Endpoint(Auth/Validator/ProblemDetails) → Application(Idempotency/Transaction/Orchestration) → Domain Policy(Pure Decision/State) → Dapper SQL(PIT/Explicit columns) → Outbox/Inbox → Tests → Vue Feature를 한 Slice로 완결한다. + +## 데이터 + +Raw append-only → Canonical PIT → DQ/Quarantine/Lineage → Feature/Forecast/Risk/Evidence → Ledger/Decision/Review/Publish/Outcome → Rebuildable Read Model 순서다. Read Model 외 역정규화를 금지한다. + +## Hangfire + +JobRunId, scope, watermark, idempotency key, source/dataset/version set, attempt, heartbeat, dependency result, artifact hash를 기록한다. Transient/Rate-limit/Schema/Data-quality/Business-hold/Poison을 구분하고 blind retry를 금지한다. 재처리는 새 revision이며 과거 Evidence를 덮어쓰지 않는다. diff --git a/docs/v13_0/06_ROLE_BASED_BRUTAL_AUDIT.md b/docs/v13_0/06_ROLE_BASED_BRUTAL_AUDIT.md new file mode 100644 index 00000000..855544dc --- /dev/null +++ b/docs/v13_0/06_ROLE_BASED_BRUTAL_AUDIT.md @@ -0,0 +1,11 @@ +# 역할별 냉정한 감사 + +- **운영사**: 화면 데모가 아니라 Source→PIT→Evidence→Approval→Outcome→Reconciliation의 완결성을 계약하라. +- **Architect**: Vendor import·schema cross-read·Generic Repository·God Service를 Architecture Test로 차단하라. +- **PM/PL**: 400개 WBS를 동시 착수하지 말고 Critical Path와 Gate를 기준으로 WIP를 제한하라. +- **UX/AX**: 수익 그래프보다 손실·경고·불확실성·반대증거·유효기간을 먼저 보여라. +- **QA**: 정상 경로보다 권한·중복·만료·부분실패·재처리·동시성·rollback을 우선하라. +- **투자 고객**: 추천의 근거, 비용, 반대증거, 다음 검토, 재진입 계약을 이해할 수 있어야 한다. +- **개발자**: Feature에서 Vendor·DB·Hangfire를 직접 호출하지 말고 승인된 Port와 Slice 계약을 지켜라. +- **Data Architect/DBA**: 현재값 편의를 위해 revision과 as-of를 버리지 마라. 그 순간 백테스트와 감사가 무너진다. +- **Quant/Consultant**: 적중률을 판매하지 말고 비용후 기대효용, calibration, 위험감소, false-exit, 재진입을 설명하라. diff --git a/docs/v13_0/07_WBS_AND_GATES.md b/docs/v13_0/07_WBS_AND_GATES.md new file mode 100644 index 00000000..10fbb1c1 --- /dev/null +++ b/docs/v13_0/07_WBS_AND_GATES.md @@ -0,0 +1,15 @@ +# 상세 WBS·Gate 운영 + +`08_DETAILED_WBS_MASTER.csv`는 v12.5의 336건을 보존하고 v13.0 Delta 64건을 추가한 총 400건이다. 추가 작업은 FE Adapter/Layouts/Screen Types, Contract/A11y/Visual Test, J31~J38, Prediction Freeze/Improvement Hypothesis DB, Scaffolder, Source/Package Validation에 집중한다. + +## 실행 순서 + +- G0: toolchain, lockfile, architecture, adapter import boundary, DbUp 4시나리오. +- G1: Source/License/PIT/Calendar/Fee-Tax-FX, DQ and replay. +- G2: Evidence, Sell/Reentry Golden, Lot/Cycle invariants. +- G3: Recommendation→Review→Publish→Outcome, UI state matrix, maker-checker. +- G4: 252일 Shadow, OOS, PBO/DSR, J31~J37 evidence. +- G5: OIDC/JWT, PII, SLO/RPO/RTO, DR, rollback drills. +- G6: capacity, release evidence, independent Go/No-Go. + +WIP 제한: 팀당 동시 P0 Slice 2개, Cross-cutting 1개. Sprint 용량의 15~20%는 승인된 기술부채 상환에 배정한다. diff --git a/docs/v13_0/08_DETAILED_WBS_MASTER.csv b/docs/v13_0/08_DETAILED_WBS_MASTER.csv new file mode 100644 index 00000000..f750b9c6 --- /dev/null +++ b/docs/v13_0/08_DETAILED_WBS_MASTER.csv @@ -0,0 +1,401 @@ +WBS_ID,Sprint,Weeks,Slice_ID,Slice,Module,Workstream,Requirement_ID,API_ID,DB_Migration_ID,Job_Event_ID,UI_ID,Test_ID,Task,Artifact,Acceptance_Evidence,Primary_Owner,Secondary,PD,Dependency,Gate,Evidence_Class,Risk,Status +AEG-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,Cross,Version Coverage Matrix 고도화,Version Coverage Matrix·Supersession Registry,모든 첨부와 v10/v12/v12.1의 Retained/Improved/Superseded 상태 100%,PM/Architect,Architect/QA,5,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,Cross,global.json 고도화,global.json·Directory.Packages·node/packageManager·lock 정책,승인 runner에서 dotnet restore/build/test 및 pnpm frozen build 재현,DevOps,Architect/QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,Cross,모듈/namespace/schema/API 금지 의존 Architecture tests 고도화,모듈/namespace/schema/API 금지 의존 Architecture tests,"Domain 기술의존 0, 모듈 직접 DB 접근 0, ID 중복 0",Architect/QA,Architect/QA,7,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-004,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/re-run/failure 복구 rehearsal 고도화,DbUp fresh/upgrade/re-run/failure 복구 rehearsal,PostgreSQL 승인 버전에서 4 시나리오와 checksum 변경 차단 통과,DBA/BE,Architect/QA,8,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-005,S0,W1-2,Cross,Cross-cutting,Security,SEC,REQ-SEC-BASE,Cross,Cross,Cross,Cross,Cross,"OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed 고도화","OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed","비개발 무인증 접근 0, secret/log/prompt 노출 0",Security/BE,Architect/QA,7,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,ASYNC,REQ-ASYNC-001,Cross,Cross,Cross,Cross,Cross,Outbox publisher 고도화,Outbox publisher·Inbox lease·dead-letter·replay,"duplicate 0, crash-before/after-publish 시나리오와 replay hash 통과",BE/SRE,Architect/QA,10,AEG-X-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-007,S0,W1-2,Cross,Cross-cutting,Observability,OPS,REQ-OBS-001,Cross,Cross,Cross,Cross,Cross,Serilog/OTel correlation 고도화,Serilog/OTel correlation·metric naming·Telegram redaction,"trace→job→decision→outbox 연결, PII redaction test 통과",SRE/Security,Architect/QA,7,AEG-X-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-008,S0,W1-2,Cross,Cross-cutting,API Contract,CONTRACT,REQ-API-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact 고도화,OpenAPI artifact·ProblemDetails taxonomy·FE contract generation,OpenAPI diff와 breaking change approval 없이는 Release 차단,BE/FE Architect,Architect/QA,8,AEG-X-003,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-01,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,GOV,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,정책·범위·실패상태 계약 확정,"REQ-PLAT-001, VS-00 SLICE_SPEC, ADR/Decision Log",사용자 결과 '빌드·마이그레이션·관제 가능한 단일 배포 골격'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-02,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DATA,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,데이터 시점·스키마·정합성 계약,"MIG-0000/0013, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-00-01,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-03,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DOMAIN,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,도메인 불변조건·상태전이 구현,"src/Modules/Host/BuildingBlocks/PlatformBootstrap/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-00-02,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-04,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,BE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vertical Slice API/Application/SQL 구현,HEALTH-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-00-03,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-05,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,ASYNC,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-00-04,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-06,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,FE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vue feature·Zod·Query·컴포넌트 구현,UI-PLAT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-00-05,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-07,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,TESTOPS,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,회귀·관제·Runbook·Rollback 증거,T-ARCH-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-00-06,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-009,S1,W3-4,Cross,Cross-cutting,Data Governance,DATA,REQ-DATA-SOURCE,Cross,Cross,Cross,Cross,Cross,Source catalog/license/SLA/timezone/unit/checksum 고도화,Source catalog/license/SLA/timezone/unit/checksum,승인 없는 source가 ingestion 또는 추천으로 진입하지 않음,Data Governance,Architect/QA,8,AEG-X-001,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-01,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,GOV,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,정책·범위·실패상태 계약 확정,"REQ-IAM-001, VS-01 SLICE_SPEC, ADR/Decision Log",사용자 결과 'MFA·RBAC·업무분장과 승인 경계'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-02,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DATA,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,데이터 시점·스키마·정합성 계약,"MIG-IAM-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-01-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-03,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DOMAIN,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,도메인 불변조건·상태전이 구현,"src/Modules/IdentityAccess/ManageIdentityAndRoles/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-01-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-04,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,BE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vertical Slice API/Application/SQL 구현,IAM-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-01-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-05,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,ASYNC,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-01-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-06,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,FE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vue feature·Zod·Query·컴포넌트 구현,UI-IAM-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-01-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-07,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,TESTOPS,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,회귀·관제·Runbook·Rollback 증거,T-IAM-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-01-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-01,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,GOV,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,정책·범위·실패상태 계약 확정,"REQ-SEC-001, VS-02 SLICE_SPEC, ADR/Decision Log",사용자 결과 '상장·상폐·상품구조·거래가능성의 PIT 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-02,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DATA,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,데이터 시점·스키마·정합성 계약,"MIG-SEC-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-02-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-03,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DOMAIN,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/SynchronizeSecurityMaster/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-02-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-04,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,BE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vertical Slice API/Application/SQL 구현,"SEC-01/02,DAT-01; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-02-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-05,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,ASYNC,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Event/Job/Inbox·재처리 구현,"J01; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-02-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-06,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,FE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SEC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-02-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-07,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,TESTOPS,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,회귀·관제·Runbook·Rollback 증거,T-SEC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-02-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-010,S2,W5-6,Cross,Cross-cutting,Read Model,PROJECTION,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,projection owner/version/watermark/rebuild/staleness 고도화,projection owner/version/watermark/rebuild/staleness,"write model 직접 UI join 0, rebuild 결과 hash 동일",BE/Data,Architect/QA,8,AEG-X-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-01,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,GOV,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,정책·범위·실패상태 계약 확정,"REQ-DAT-001, VS-03 SLICE_SPEC, ADR/Decision Log",사용자 결과 '원시·조정 OHLCV·FX·금리의 revision 적재'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-02,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,데이터 시점·스키마·정합성 계약,"MIG-MD-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-03-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-03,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DOMAIN,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,도메인 불변조건·상태전이 구현,"src/Modules/MarketData/IngestMarketDataPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-03-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-04,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,BE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vertical Slice API/Application/SQL 구현,DAT-02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-03-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-05,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,ASYNC,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Event/Job/Inbox·재처리 구현,"J02; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-03-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-06,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,FE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-03-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-07,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,TESTOPS,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,회귀·관제·Runbook·Rollback 증거,T-DQ-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-03-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-01,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,GOV,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,정책·범위·실패상태 계약 확정,"REQ-CA-001, VS-04 SLICE_SPEC, ADR/Decision Log",사용자 결과 '분할·배당·증자·합병·상폐의 가격·수량·원가 일관성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-03",G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-02,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DATA,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,데이터 시점·스키마·정합성 계약,"MIG-CA-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-04-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-03,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DOMAIN,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/ApplyCorporateActions/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-04-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-04,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,BE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vertical Slice API/Application/SQL 구현,DAT-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-04-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-05,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,ASYNC,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Event/Job/Inbox·재처리 구현,"J03; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-04-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-06,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,FE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-02; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-04-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-07,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,TESTOPS,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,회귀·관제·Runbook·Rollback 증거,T-CA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-04-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-01,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,GOV,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,정책·범위·실패상태 계약 확정,"REQ-FND-001, VS-05 SLICE_SPEC, ADR/Decision Log",사용자 결과 '공시·재무·컨센서스 공개시각과 정정 이력'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-02,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DATA,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,데이터 시점·스키마·정합성 계약,"MIG-FND-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-05-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-03,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DOMAIN,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,도메인 불변조건·상태전이 구현,"src/Modules/FundamentalsPIT/IngestFundamentalsPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-05-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-04,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,BE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vertical Slice API/Application/SQL 구현,DAT-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-05-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-05,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,ASYNC,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Event/Job/Inbox·재처리 구현,"J04; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-05-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-06,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,FE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vue feature·Zod·Query·컴포넌트 구현,UI-FND-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-05-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-07,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,TESTOPS,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,회귀·관제·Runbook·Rollback 증거,T-FND-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-05-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-01,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,GOV,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,정책·범위·실패상태 계약 확정,"REQ-COST-001, VS-06 SLICE_SPEC, ADR/Decision Log",사용자 결과 '계좌·시장·상품별 Fee/Tax/FX valid-time 계약'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-02,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DATA,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,데이터 시점·스키마·정합성 계약,"MIG-COST-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-06-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-03,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DOMAIN,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainFeeTaxFxSchedule/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-06-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-04,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,BE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vertical Slice API/Application/SQL 구현,COST-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-06-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-05,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,ASYNC,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Event/Job/Inbox·재처리 구현,"J04C; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-06-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-06,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,FE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vue feature·Zod·Query·컴포넌트 구현,UI-COST-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-06-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-07,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,TESTOPS,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,회귀·관제·Runbook·Rollback 증거,T-COST-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-06-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-01,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,GOV,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,정책·범위·실패상태 계약 확정,"REQ-LED-001, VS-08 SLICE_SPEC, ADR/Decision Log",사용자 결과 '현금·체결·Lot·Cycle 불변 원장과 대사 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-06",G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-02,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DATA,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,데이터 시점·스키마·정합성 계약,"MIG-LED-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-08-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-03,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DOMAIN,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainPortfolioLedger/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-08-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-04,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,BE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vertical Slice API/Application/SQL 구현,POR-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-08-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-05,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,ASYNC,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Event/Job/Inbox·재처리 구현,"J12L; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-08-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-06,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,FE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vue feature·Zod·Query·컴포넌트 구현,UI-POR-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-08-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-07,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,TESTOPS,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,회귀·관제·Runbook·Rollback 증거,T-LED-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-08-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-011,S4,W9-10,Cross,Cross-cutting,Algorithm,GOLDEN,REQ-ALG-GOLDEN,Cross,Cross,Cross,Cross,Cross,Python↔C# Golden vector 고도화,Python↔C# Golden vector·epsilon·rounding 계약,정책 ID별 경계·우선순위·cost×2 결과 허용오차 내 동일,Quant/QA,Architect/QA,10,VS-09,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-01,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,GOV,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,정책·범위·실패상태 계약 확정,"REQ-EVD-001, VS-09 SLICE_SPEC, ADR/Decision Log",사용자 결과 'Dataset/Model/Config/Code SHA가 동결된 Evidence'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-02,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,데이터 시점·스키마·정합성 계약,"MIG-EVD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-09-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-03,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DOMAIN,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,도메인 불변조건·상태전이 구현,"src/Modules/ResearchFactors/BuildEvidenceSnapshot/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-09-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-04,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,BE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vertical Slice API/Application/SQL 구현,EVD-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-09-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-05,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,ASYNC,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Event/Job/Inbox·재처리 구현,"J06; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-09-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-06,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,FE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-09-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-07,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,TESTOPS,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,회귀·관제·Runbook·Rollback 증거,T-EVD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-09-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-01,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,GOV,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,정책·범위·실패상태 계약 확정,"REQ-SELL-001, VS-10 SLICE_SPEC, ADR/Decision Log",사용자 결과 '우선순위가 보존된 HOLD/부분매도/전량매도 결정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-09,VS-13",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-02,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DATA,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,데이터 시점·스키마·정합성 계약,"MIG-SIG-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-10-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-03,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DOMAIN,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/GenerateSellDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-10-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-04,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,BE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vertical Slice API/Application/SQL 구현,SIG-SELL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-10-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-05,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ASYNC,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Event/Job/Inbox·재처리 구현,"J08S; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-10-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-06,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SELL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-10-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-07,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,TESTOPS,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,회귀·관제·Runbook·Rollback 증거,T-SELL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-10-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-012,S5,W11-12,Cross,Cross-cutting,Research,REPRO,REQ-REPRO-001,Cross,Cross,Cross,Cross,Cross,dataset/code/config/environment manifest와 artifact hash 고도화,dataset/code/config/environment manifest와 artifact hash,"동일 manifest·seed 결과 재현, 실패 artifact 보존",Quant/Data,Architect/QA,12,AEG-X-009,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-01,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,GOV,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,정책·범위·실패상태 계약 확정,"REQ-RE-001, VS-11 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비가치훼손 매도의 재진입 계약·단계·만료'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-10,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-02,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DATA,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,데이터 시점·스키마·정합성 계약,"MIG-RE-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-11-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-03,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DOMAIN,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/ManageReentryWatch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-11-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-04,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,BE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vertical Slice API/Application/SQL 구현,RE-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-11-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-05,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ASYNC,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Event/Job/Inbox·재처리 구현,"J09; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-11-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-06,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,FE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RE-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-11-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-07,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,TESTOPS,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,회귀·관제·Runbook·Rollback 증거,T-RE-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-11-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-01,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,GOV,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,정책·범위·실패상태 계약 확정,"REQ-BKT-001, VS-19 SLICE_SPEC, ADR/Decision Log",사용자 결과 '동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06,VS-09",G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-02,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DATA,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,데이터 시점·스키마·정합성 계약,"MIG-BKT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-19-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-03,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DOMAIN,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/RunFrozenBacktest/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-19-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-04,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,BE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vertical Slice API/Application/SQL 구현,BKT-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-19-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-05,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,ASYNC,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Event/Job/Inbox·재처리 구현,"J-BKT; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-19-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-06,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,FE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BKT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-19-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-07,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,TESTOPS,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,회귀·관제·Runbook·Rollback 증거,T-BKT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-19-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-01,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,GOV,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,정책·범위·실패상태 계약 확정,"REQ-CLI-001, VS-07 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 목표·위험성향·제한상품의 버전 관리'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-02,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DATA,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,데이터 시점·스키마·정합성 계약,"MIG-CLI-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-07-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-03,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DOMAIN,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ManageClientIPS/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-07-02,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-04,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,BE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vertical Slice API/Application/SQL 구현,CLI-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-07-03,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-05,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,ASYNC,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-07-04,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-06,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,FE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLI-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-07-05,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-07,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,TESTOPS,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,회귀·관제·Runbook·Rollback 증거,T-CLI-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-07-06,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-01,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,GOV,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,정책·범위·실패상태 계약 확정,"REQ-REC-001, VS-14 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-10,VS-12,VS-13",MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-02,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DATA,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,데이터 시점·스키마·정합성 계약,"MIG-REC-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-14-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-03,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DOMAIN,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/GenerateDailyRecommendations/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-14-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-04,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vertical Slice API/Application/SQL 구현,SIG-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-14-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-05,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,ASYNC,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Event/Job/Inbox·재처리 구현,"J08; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-14-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-06,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,FE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-14-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-07,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,TESTOPS,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,회귀·관제·Runbook·Rollback 증거,T-REC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-14-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-01,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,GOV,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,정책·범위·실패상태 계약 확정,"REQ-REV-001, VS-15 SLICE_SPEC, ADR/Decision Log",사용자 결과 'maker-checker 승인·보류·기각과 낙관적 동시성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-14,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-02,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DATA,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,데이터 시점·스키마·정합성 계약,"MIG-REV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-15-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-03,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DOMAIN,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ReviewRecommendation/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-15-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-04,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,BE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vertical Slice API/Application/SQL 구현,SIG-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-15-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-05,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,ASYNC,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-06,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,FE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-15-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-07,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,TESTOPS,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,회귀·관제·Runbook·Rollback 증거,T-REV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-15-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-013,S8,W17-18,Cross,Cross-cutting,Audit,TRACE,REQ-AUDIT-E2E,Cross,Cross,Cross,Cross,Cross,Evidence→Decision→Review→Publish→Outcome trace API 고도화,Evidence→Decision→Review→Publish→Outcome trace API,"publication/decision 기준 누락 링크 0, correction event 보존",Compliance/BE,Architect/QA,8,VS-18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-01,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,GOV,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,정책·범위·실패상태 계약 확정,"REQ-PUB-001, VS-16 SLICE_SPEC, ADR/Decision Log",사용자 결과 '승인·유효·데이터 정상 제안만 고객 공개'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-15,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-02,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DATA,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,데이터 시점·스키마·정합성 계약,"MIG-PUB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-16-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-03,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DOMAIN,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/PublishClientAdvice/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-16-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-04,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vertical Slice API/Application/SQL 구현,SIG-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-16-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-05,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,ASYNC,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Event/Job/Inbox·재처리 구현,"J-PUB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-16-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-06,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,FE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-ADV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-16-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-07,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,TESTOPS,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,회귀·관제·Runbook·Rollback 증거,T-PUB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-16-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-01,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,GOV,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,정책·범위·실패상태 계약 확정,"REQ-CLD-001, VS-17 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 수락·거절·보류와 attribution 연결'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-16,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-02,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DATA,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,데이터 시점·스키마·정합성 계약,"MIG-CLD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-17-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-03,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DOMAIN,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/RecordClientDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-17-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-04,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,BE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vertical Slice API/Application/SQL 구현,SIG-06; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-17-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-05,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,ASYNC,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-17-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-06,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,FE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-17-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-07,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,TESTOPS,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,회귀·관제·Runbook·Rollback 증거,T-CLD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-17-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-01,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,정책·범위·실패상태 계약 확정,"REQ-EVA-001, VS-18 SLICE_SPEC, ADR/Decision Log",사용자 결과 '1/5/20/63/126/252일 결과·매도·재진입 품질 평가'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-10,VS-11,VS-16,VS-17",G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-02,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,데이터 시점·스키마·정합성 계약,"MIG-EVA-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-18-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-03,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DOMAIN,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/EvaluateDecisionOutcome/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-18-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-04,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vertical Slice API/Application/SQL 구현,EVA-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-05,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ASYNC,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Event/Job/Inbox·재처리 구현,"J10/J11; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-18-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-06,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVA-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-18-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-07,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,TESTOPS,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,회귀·관제·Runbook·Rollback 증거,T-EVA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-18-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-01,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,GOV,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,정책·범위·실패상태 계약 확정,"REQ-RISK-001, VS-13 SLICE_SPEC, ADR/Decision Log",사용자 결과 'ES·집중·상관·자본바닥 위험 스냅샷'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-08",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-02,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DATA,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,데이터 시점·스키마·정합성 계약,"MIG-RISK-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-13-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-03,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DOMAIN,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/CalculatePortfolioRisk/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-13-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-04,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,BE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vertical Slice API/Application/SQL 구현,POR-02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-13-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-05,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,ASYNC,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Event/Job/Inbox·재처리 구현,"J07; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-13-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-06,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,FE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RISK-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-13-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-07,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,TESTOPS,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,회귀·관제·Runbook·Rollback 증거,T-RISK-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-13-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-01,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,GOV,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,정책·범위·실패상태 계약 확정,"REQ-REB-001, VS-21 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비용·세금·위험예산·제약을 만족하는 리밸런싱'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-08,VS-12,VS-13",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-02,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DATA,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,데이터 시점·스키마·정합성 계약,"MIG-REB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-21-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-03,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DOMAIN,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/BuildRebalanceProposal/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-21-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-04,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,BE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vertical Slice API/Application/SQL 구현,REB-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-21-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-05,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,ASYNC,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Event/Job/Inbox·재처리 구현,"J-REB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-21-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-06,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,FE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REB-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-21-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-07,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,TESTOPS,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,회귀·관제·Runbook·Rollback 증거,T-REB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-21-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-01,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,GOV,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,정책·범위·실패상태 계약 확정,"REQ-BUY-001, VS-12 SLICE_SPEC, ADR/Decision Log",사용자 결과 'PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-05,VS-06,VS-09",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-02,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DATA,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,데이터 시점·스키마·정합성 계약,"MIG-BUY-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-12-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-03,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DOMAIN,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,도메인 불변조건·상태전이 구현,"src/Modules/ValuationForecast/RankBuyCandidates/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-12-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-04,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,BE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vertical Slice API/Application/SQL 구현,BUY-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-12-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-05,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,ASYNC,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Event/Job/Inbox·재처리 구현,"J08B; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-12-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-06,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,FE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BUY-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-12-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-07,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,TESTOPS,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,회귀·관제·Runbook·Rollback 증거,T-BUY-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-12-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-01,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,GOV,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,정책·범위·실패상태 계약 확정,"REQ-RPL-001, VS-22 SLICE_SPEC, ADR/Decision Log",사용자 결과 '적합성·유동성·비용후 기회우위 대체상품 비교'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-12,VS-13",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-02,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DATA,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,데이터 시점·스키마·정합성 계약,"MIG-RPL-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-22-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-03,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DOMAIN,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/SuggestReplacementProducts/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-22-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-04,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,BE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vertical Slice API/Application/SQL 구현,RPL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-22-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-05,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,ASYNC,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Event/Job/Inbox·재처리 구현,"J-RPL; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-22-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-06,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,FE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-22-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-07,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,TESTOPS,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,회귀·관제·Runbook·Rollback 증거,T-RPL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-22-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-014,S11,W23-24,Cross,Cross-cutting,Model Risk,VALIDATION,REQ-MODEL-RISK,Cross,Cross,Cross,Cross,Cross,CSCV/PBO 고도화,CSCV/PBO·DSR·block bootstrap·시도 원장,"PBO≤20%, DSR≥95%, cost×2 utility 양수 또는 승격 차단",Quant/Risk,Architect/QA,15,AEG-X-012,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-015,S11,W23-24,Cross,Cross-cutting,Shadow,EVAL,REQ-SHADOW-001,Cross,Cross,Cross,Cross,Cross,252거래일 고도화,252거래일·복수 국면 일평가 scorecard,적중률 단독 아닌 calibration/ES/false-exit/reentry/운영무결성 판정,Quant/Ops,Architect/QA,14,VS-18,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-01,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,정책·범위·실패상태 계약 확정,"REQ-MOD-001, VS-20 SLICE_SPEC, ADR/Decision Log",사용자 결과 '모델 승격 증거·승인·롤백·챔피언/챌린저'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-18,VS-19",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-02,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DATA,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,데이터 시점·스키마·정합성 계약,"MIG-MOD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-20-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-03,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DOMAIN,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/PromoteModelVersion/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-20-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-04,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,BE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vertical Slice API/Application/SQL 구현,MOD-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-20-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-05,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ASYNC,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Event/Job/Inbox·재처리 구현,"J-MOD; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-20-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-06,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-MOD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-20-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-07,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,TESTOPS,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,회귀·관제·Runbook·Rollback 증거,T-MOD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-20-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-01,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,GOV,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,정책·범위·실패상태 계약 확정,"REQ-RPT-001, VS-24 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 리포트·SignalR·Telegram 운영 경보'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-16,VS-18",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-02,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DATA,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,데이터 시점·스키마·정합성 계약,"MIG-RPT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-24-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-03,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DOMAIN,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,도메인 불변조건·상태전이 구현,"src/Modules/ReportingNotifications/ReportAndNotify/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-24-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-04,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,BE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vertical Slice API/Application/SQL 구현,RPT-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-24-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-05,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,ASYNC,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Event/Job/Inbox·재처리 구현,"J11R; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-24-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-06,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,FE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-24-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-07,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,TESTOPS,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,회귀·관제·Runbook·Rollback 증거,T-RPT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-24-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-016,S12,W25-26,Cross,Cross-cutting,Broker,CAPABILITY,REQ-KIS-OFF,Cross,Cross,Cross,Cross,Cross,KIS 주문 제출 startup/CI/runtime 차단 고도화,KIS 주문 제출 startup/CI/runtime 차단,"외부 주문 호출 0, capability override 감사·kill-switch 통과",Security/Ops,Architect/QA,7,AEG-X-005,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-01,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,GOV,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,정책·범위·실패상태 계약 확정,"REQ-RECON-001, VS-23 SLICE_SPEC, ADR/Decision Log",사용자 결과 '브로커·내부 주문·체결·보유·현금 break와 승인 정정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-16",Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-02,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,데이터 시점·스키마·정합성 계약,"MIG-EXE-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-23-01,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-03,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DOMAIN,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,도메인 불변조건·상태전이 구현,"src/Modules/ExecutionReconciliation/ReconcilePositionsAndFills/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-23-02,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-04,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,BE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vertical Slice API/Application/SQL 구현,"EXE-01/02,REC-01/02; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-23-03,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-05,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,ASYNC,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Event/Job/Inbox·재처리 구현,"J12; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-23-04,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-06,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,FE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RECON-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-23-05,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-07,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,TESTOPS,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,회귀·관제·Runbook·Rollback 증거,T-RECON-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-23-06,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-017,S13,W27-28,Cross,Cross-cutting,DR,OPS,REQ-DR-001,Cross,Cross,Cross,Cross,Cross,RPO/RTO 고도화,RPO/RTO·backup/restore·region/host failure rehearsal,"승인 RPO/RTO 내 복구, 원장·outbox·projection 대사 100%",SRE/DBA,Architect/QA,12,AEG-X-006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-01,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,GOV,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,정책·범위·실패상태 계약 확정,"REQ-GOV-001, VS-25 SLICE_SPEC, ADR/Decision Log",사용자 결과 '입력→결정→승인→공개→실행→평가 추적과 단계별 차단'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-01,VS-16,VS-20,VS-23",G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-02,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DATA,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,데이터 시점·스키마·정합성 계약,"MIG-GOV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-25-01,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-03,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DOMAIN,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/AuditAndKillSwitch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-25-02,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-04,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,BE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vertical Slice API/Application/SQL 구현,GOV-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-25-03,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-05,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,ASYNC,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Event/Job/Inbox·재처리 구현,"J-GOV; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-25-04,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-06,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,FE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-GOV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-25-05,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-07,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TESTOPS,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,회귀·관제·Runbook·Rollback 증거,T-GOV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-25-06,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-018,S14,W29-30,Cross,Cross-cutting,Performance,NFR,REQ-NFR-001,Cross,Cross,Cross,Cross,Cross,API P95 고도화,API P95·batch SLA·portfolio 규모·backfill 부하시험,개장 전 추천 SLA와 고객 API SLO가 동시에 충족,SRE/QA,Architect/QA,10,AEG-X-017,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-019,S14,W29-30,Cross,Cross-cutting,Cutover,RELEASE,REQ-CUT-001,Cross,Cross,Cross,Cross,Cross,dry-run/backfill/recon/rollback/release evidence 고도화,dry-run/backfill/recon/rollback/release evidence,"미승인 공개 0, duplicate 0, rollback 리허설과 승인 서명",PM/Ops,Architect/QA,10,AEG-X-018,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-020,S15,W31-32,Cross,Cross-cutting,Hypercare,OPS,REQ-HYP-001,Cross,Cross,Cross,Cross,Cross,P1/P2 triage 고도화,P1/P2 triage·daily reconciliation·debt burn-down,초기 안정화 Exit 기준·Owner·잔여 부채 승인,Ops/PM,Architect/QA,8,AEG-X-019,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-DOC-022,Current-session source coverage and SHA register,Source Coverage Matrix/Source Index,6 current attachments preserved byte-for-byte and hashes match,PM/Architect,QA/Compliance,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG22-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,T-CI-022,Offline-safe package manager and lockfile decision,packageManager/LOCKFILE_REQUIRED/CI guard,No silent dependency resolution; frozen install blocks until approved lock exists,DevOps,FE Lead,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,ARCH,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-ARCH-022,Module/Vertical Slice template pack,"templates/dotnet,vue,sql,hangfire",New slice can be generated without Generic Repository or controller-service duplication,Architect,BE/FE Leads,6,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-004,S0,W1-2,Cross,Cross-cutting,API,BE,REQ-API-001,API-CONTEXT-01,Cross,Cross,Cross,T-API-022,Correlation/Idempotency/ProblemDetails shared contract,request execution standard,400/401/403/409/422 and trace/idempotency rules consistent,BE Lead,QA/SRE,6,AEG-X-004,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-005,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-REHEARSAL,Cross,MIG-REHEARSAL,Cross,Cross,T-DB-022,DbUp fresh/upgrade/re-run/failure rehearsal script,scripts/rehearse_migrations.sh,Approved PostgreSQL runner produces 4 scenario artifacts,DBA,BE/DevOps,8,AEG-X-004,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-OUTBOX-001,Cross,MIG-0013,JOB-OUTBOX-01,Cross,T-OUTBOX-022,Outbox lease/dead-letter/replay hardening,outbox dispatcher template/runbook,Crash-before/after publish yields no lost message and idempotent downstream,BE/SRE,QA,10,AEG-X-006,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-007,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-INBOX-001,Cross,MIG-0013,JOB-INBOX-01,Cross,T-INBOX-022,Inbox duplicate/result-hash contract,inbox consumer template,Same consumer/message performs side effect once and replay hash is stable,BE/SRE,QA,8,AEG-X-007,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-008,S0,W1-2,Cross,Cross-cutting,Batch,JOB,REQ-JOB-001,Cross,MIG-0000,JOB-RUN-STD,UI-OPS-JOB,T-JOB-022,JobRun/Watermark/heartbeat scope standard,ReliableJob template,Concurrent duplicate is held; retry preserves scope/version/input hash,BE/SRE,QA/Data,8,AEG-X-008,G1,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-001,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,Separate security weight and lot weight,SellDecisionInput/context/migration,Lot ratio changes only lot weight; target security weight is exact,Quant/BE,DBA/QA,10,AEG-VS-10-03,G2-A,SOURCE+INFERENCE,P0,PLANNED +AEG22-VS10-002,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,Persist ordered policy evaluation trace,policy_trace_json/API schema,Applied/blocked/not-applicable reasons reproduce decision priority,BE/Quant,FE/QA,8,AEG22-VS10-001,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-003,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,QA,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-GOLDEN-022,Golden/boundary/monotonic/property vectors,unit/golden vectors,"Core clamp, survival bypass, priority and future PIT rejection pass",QA/Quant,BE,8,AEG22-VS10-002,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS10-004,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SIG-UI,SIG-RESEARCH-01,Cross,Cross,UI-SIG-01,T-FE-SIG-022,FE runtime contract for weights and policy trace,Zod schema/page/tests,Malformed response and lot>security input fail closed,FE Lead,QA/BE,5,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS09-001,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,Cross,MIG-EVD-001,J06,UI-EVD-01,T-EVD-022,Evidence completeness grade and required-field manifest,Evidence contract delta,Missing total-return/delisting/cost source downgrades or quarantines recommendation,Data/Quant,BE/QA,8,AEG-VS-09-02,G2-A,SOURCE,P0,PLANNED +AEG22-VS03-001,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-PIT-022,Enforce published_at cutoff and timezone,PIT query contract/data test,Lookahead count remains zero across replay and timezone boundaries,Data Architect,DBA/QA,8,AEG-VS-03-03,G1-B,SOURCE,P0,PLANNED +AEG22-VS03-002,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-LIC,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,Source license/SLA/checksum fail-closed gate,Source catalog contract,Unapproved/checksum-drift source cannot reach canonical/PIT layer,Data Governance,BE/Compliance,7,AEG22-VS03-001,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS08-001,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DB,REQ-LEDGER-001,POR-01,MIG-POR-001,LedgerEntryApplied,UI-POR-01,T-LEDGER-022,Lot weight derivation and reconciliation invariant,ledger/read-model contract,Lot market values equal security/account totals within tolerance,DBA/BE,Quant/QA,10,AEG-VS-08-03,G1,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS11-001,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ALG,ALG-REENTRY-001,SIG-02,MIG-SIG-REENTRY,J09,UI-SIG-02,T-REENTRY-022,Reentry stage uniqueness and cycle reset proof,state transition/golden tests,Each stage once; new CycleId/Lot; old floor/cost/high not reused,Quant/BE,QA/DBA,9,AEG-VS-11-03,G2,SOURCE,P0,PLANNED +AEG22-VS14-001,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-ADV-001,ADV-01,MIG-ADV-001,J08,UI-ADV-01,T-ADV-RUN-022,Run isolation and partial-failure quarantine,run manifest/error partition,One portfolio failure cannot publish invalid advice to another,BE Lead,SRE/QA,10,AEG-VS-14-04,MVP-B,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS15-001,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,SEC,REQ-REV-001,ADV-02,MIG-ADV-002,RecommendationReviewed,UI-ADV-02,T-REV-022,Maker-checker optimistic concurrency proof,review version/ETag tests,Self-approval and stale update rejected with audit evidence,BE/Security,FE/QA,8,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS16-001,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,ADV-03,MIG-ADV-003,AdvicePublished,UI-CLI-01,T-PUB-022,Publish snapshot hash and staleness gate,publication immutable snapshot,Expired/revised/quarantined evidence blocks publish,BE/Compliance,QA/FE,9,AEG-VS-16-04,G3,SOURCE,P0,PLANNED +AEG22-VS18-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-DEF-022,Version false-exit/gain-capture definitions,metric definition registry,Historical scorecard reproducible by metric version/revision,Quant/Risk,Data/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS19-001,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QUANT,REQ-BT-001,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-ENV-022,Environment digest and full experiment registry,frozen manifest,Data/code/config/seed/environment/all variants hashed,Quant/Data,Risk/QA,10,AEG-VS-19-03,G2,SOURCE,P0,PLANNED +AEG22-VS19-002,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QA,REQ-BT-002,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-XLANG-022,Python-.NET decision golden cross-check,cross-language vectors,Policy/action/ratio/target/trace match within tolerance,QA/Quant,BE,8,AEG22-VS19-001,G2,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS23-001,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,OPS,REQ-REC-001,EXE-01,MIG-EXE-001,J12,UI-OPS-REC,T-REC-CORR-022,Approved correction/reversal workflow,break/correction/audit contract,No direct edit; before/after/hash/approver/replay reconcile to zero,Ops/DBA,Compliance/QA,10,AEG-VS-23-04,Pilot-A,SOURCE,P0,PLANNED +AEG22-VS25-001,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-GOV-001,GOV-01,MIG-GOV-001,KillSwitchChanged,UI-GOV-01,T-KILL-022,Automatic-order capability tripwire,capability tests/runbook,Any AutomaticOrder/KIS drift blocks start/release/action,Security/Ops,DevOps/QA,8,AEG-VS-25-04,ALL,SOURCE,P0,PLANNED +AEG22-X-009,S11,W23-24,Cross,Cross-cutting,Frontend,FE,REQ-FE-CONTRACT,Cross,Cross,Cross,Cross,T-FE-OPENAPI-022,OpenAPI artifact diff and generated contract plan,contract generation ADR,DTO drift visible in CI; Zod remains trust boundary,BE/FE,QA/Architect,7,AEG-X-012,G3,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-010,S11,W23-24,Cross,Cross-cutting,Observability,SRE,REQ-OBS-001,Cross,Cross,Cross,UI-OPS-01,T-OBS-022,Metric cardinality/PII/redaction budget,telemetry policy/tests,No high-cardinality account/security tags or PII in telemetry,SRE/Security,BE/QA,7,AEG-X-013,G5,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-011,S14,W29-30,Cross,Cross-cutting,Performance,SRE,REQ-CAP-001,Cross,Cross,Cross,Cross,T-CAP-022,Capacity assumptions and workload pack,capacity profile,Approved volumes map to API/batch/DB SLO evidence,PM/SRE,DBA/QA,10,AEG-X-025,G6-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-012,S15,W31-32,Cross,Cross-cutting,Release,OPS,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-022,Release evidence and rollback rehearsal,release manifest/checksum/runbook,Source→requirement→code→test→artifact hashes and rollback complete,PM/SRE,QA/Compliance,8,AEG22-X-011,G6,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-031,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,Rebuild seven-file current-session source coverage,Source matrix·SHA index,7개 첨부 원본·크기·SHA-256·역할이 패키지와 1:1 일치,PM/QA,Architect,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG-X-032,S0,W1-2,Cross,Cross-cutting,CI/CD,DEVEX,REQ-PLAT-CI,Cross,Cross,Cross,Cross,T-CI-003,Correct stale CI validator and duplicate YAML key,Gitea ci.yml,"validate_v123 실행, 중복 working-directory 0, static/scaffold tests 연결",DevOps,QA,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-033,S0,W1-2,Cross,Cross-cutting,Architecture,SCAFFOLD,REQ-ARCH-SCAFFOLD,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,Implement deterministic fail-closed slice scaffolder,scaffold_slice.py·templates·tests,"dry-run deterministic, 기존 파일 overwrite 0, 미승인 placeholder 명시",Architect,BE/FE,7,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-034,S0,W1-2,Cross,Cross-cutting,Contract,CONTRACT,REQ-CONTRACT-001,Cross,Cross,Cross,Cross,T-CONTRACT-001,Create machine-readable policy/event/metric contract registry,contracts/**,"JSON parse, C# 상수 교차검증, 이벤트 schema v2, metric definition version",Architect/Quant,QA/Risk,7,AEG-X-003,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-035,S0,W1-2,Cross,Cross-cutting,Validation,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-STATIC-123,Extend static validator for semantic version and contract drift,validate_v123.py,"WBS 250, 7첨부, 0015, registry, context filter, CI key 검사 통과",QA,Architect,6,AEG-X-034,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-08,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-CONTRACT-001,Centralize approved sell policy constants,SellPolicyContract.cs,정책 ID·우선순위·임계값 중복 제거 및 JSON registry와 일치,Quant/BE,Risk/QA,6,AEG-X-034,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-09,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-ZERO-RATIO,Fix positive-edge zero-ratio opportunity sell defect,OpportunityCostPolicy.cs·tests,"edge>0·ratio=0에서 HOLD, trace=BLOCKED, 자동 10% 매도 0",BE/Quant,QA/Risk,5,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-10,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Data integrity,REQ-SIG-SELL,SIG-01,MIG-0015,-,-,T-SIG-SEM-001,Version lot/security weight semantics and block legacy contexts,0015 migration·context reader,weight_semantics_version=2만 결정 입력 사용; legacy backfill 추정 사용 0,DBA/BE,Quant/QA,8,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-11,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Evidence,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-EVT-002,Persist decision and policy-trace contract versions,API·DB·event v2,decision_contract_version과 policy_trace_schema_version이 DB/API/event/hash에 포함,BE,DBA/FE/QA,7,AEG-VS-10-10,G2-A,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-12,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Frontend,REQ-SIG-SELL,SIG-02,MIG-0015,-,UI-SIG-TRACE,T-FE-SIG-TRACE,Componentize ordered policy trace display,PolicyTracePanel.vue·Zod,우선순위/Disposition/요청·적용비율/Core clamp를 runtime contract로 표시,FE,UX/QA,5,AEG-VS-10-11,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-08,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,Metric governance,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-METRIC-001,Version false-exit and reentry metric definitions,outcome-metrics.v1.json,"분모/분자/평가창/집계/정의버전 명시, 연 2% 목표와 직접비교 금지",Quant/Risk,Data/QA,6,AEG-X-034,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-036,S1,W3-4,Cross,Cross-cutting,Security,AUTH,REQ-IAM-001,Cross,Cross,Cross,Cross,T-AUTH-ADR,Keep OIDC/JWT provider decision fail-closed,Decision Log,공급자/claims 미결정 시 Development 외 인증 성공 0,Security,PM/BE,3,AEG-X-005,G5,SOURCE,P0,PLANNED +AEG-X-037,S2,W5-6,Cross,Cross-cutting,Data governance,PIT,REQ-DAT-SOURCE,Cross,Cross,Cross,Cross,T-DATA-LICENSE,Reconfirm total-return/delisting/consensus source decisions,Decision Log·source catalog,미승인 source 추천 진입 0; DECISION_REQUIRED 유지,Data Governance,Legal/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-038,S3,W7-8,Cross,Cross-cutting,Cost data,PIT,REQ-COST-001,Cross,Cross,Cross,Cross,T-COST-PIT,Reconfirm Fee/Tax/FX valid-time schedule decisions,Decision Log·data contract,current 단일값 사용 0; 미결정 계좌/venue 추천 보류,Ops/Tax,DBA/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-039,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-013,Resolve survival cooldown bypass rule,Decision record·Golden vectors,승인 전 기존 fail-closed 유지; 승인 후 정책·모델카드·OOS 동시변경,Investment Committee,Quant/Risk/BE,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P0,PLANNED +AEG-X-040,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-014,Resolve hard impairment 80-100% severity mapping,Decision record·evidence grading,severity source 미승인 시 100% 보수값 유지; 임의 80% 적용 금지,Investment Committee,Compliance/Quant,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P1,PLANNED +AEG-X-041,S11,W23-24,Cross,Cross-cutting,Supply chain,SECURITY,REQ-SEC-SBOM,Cross,Cross,Cross,Cross,T-SBOM-001,Add SBOM/license/vulnerability release evidence contract,Release Evidence template,실제 scanner 미실행은 PASS 표기 금지; artifact 경로와 allowlist 필수,Security/DevOps,Legal/QA,5,AEG-X-032,G5,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-042,S14,W29-30,Cross,Cross-cutting,Capacity,NFR,REQ-NFR-CAP,Cross,Cross,Cross,Cross,T-CAP-001,Approve load volumes before index or partition optimization,Capacity ADR,고객/계좌/종목/배치량 결정 전 투기적 index·partition 추가 0,PM/SRE,DBA/BE,5,DEC-011,G6-A,DECISION_REQUIRED,P1,PLANNED +AEG-X-043,S15,W31-32,Cross,Cross-cutting,Release,EVIDENCE,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-123,Assemble v12.3 release evidence and checksum manifest,Validation evidence·manifest·SHA256,실행/미실행을 구분하고 패키지 전 파일 hash·첨부 hash가 일치,QA/Release,PM/Architect,7,AEG-X-035,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-001,지속 모델 운영 자동화 경계 확정,model-operations.v1·promotion-gate.v1 계약,"EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY 외 모드 0, AUTO_PROMOTE/AUTO_ORDER 0",Risk/Architect,Compliance/Quant,4,DEC-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-002,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-002,성과지표 정의 v2 확정,outcome-metrics.v2·Metric Definition Registry,각 지표의 분자·분모·평가창·집계·비용·PIT·revision 정의와 content hash 보존,Quant/Risk,Data/QA,6,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-003,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10,UI-MO-01,T-MO-003,평가 Dataset Manifest와 Model Registry 계약,evaluation.dataset_manifest·governance.model_version_registry,"요청 시점 Dataset/Model/Config/Code/Contract VersionSet 동결, 미승인 context는 BusinessHold",Data Architect/Quant,DBA/Risk,6,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-004,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DB,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-004,Model Operations 증분 migration 구현,0016_continuous_model_operations.sql,fresh/upgrade/re-run/failure에서 schedule/request/metric/proposal/review/drill schema와 제약 통과,DBA/BE,QA/Data,8,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-005,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-005,15분 Scheduler Dispatcher와 lease 구현,ModelOperationsDispatcherJob·DapperModelScheduleRepository,"FOR UPDATE SKIP LOCKED, 14분 lease, batch 50, dynamic queue, crash/retry 중복 request 0",BE/SRE,DBA/QA,8,AEG-MO-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-006,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,ModelOperationRequested,UI-MO-01,T-MO-006,평가 요청·Outbox 동일 트랜잭션 구현,ModelOperationRequestService·Repository·event v1,"동일 idempotency key의 request/outbox side effect 1회, VersionSet 누락 시 저장 0",BE Lead,SRE/QA,8,AEG-MO-005,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-007,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-007,명시적 ModelOperationRegistry 구현,ModelOperationDefinition·contract drift test,"Job code/주기/queue/mode/owner/gate 중복 0, JSON/C# drift 0",BE/Architect,Quant/QA,5,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-008,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-001,모델 운영 계획 조회 API·Zod 구현,GET /internal/v1/model-operations/plan·schema.ts,"응답 runtime validation, 자동승격 모드 파싱 거부, RBAC 401/403 검증",BE/FE,Security/QA,6,AEG-MO-007,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-009,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-002,모델 운영 대시보드 기본 화면,ModelOperationsPage·BoundaryPanel·OperationTable,일/주/월/분기 작업과 EVALUATION/PROPOSAL/DRILL 경계가 명확하고 로딩/오류/빈상태 접근성 검증,FE/UX,QA/Risk,7,AEG-MO-008,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-010,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-01,MIG-0016,J10,UI-MO-02,T-MO-EVAL-001,1/5/20/63/126/252일 Outcome evaluator 구현,versioned OutcomeObservation·attribution,거래일창·benchmark·FX·delisting·no-fill·partial-fill·revision replay Golden 통과,Quant/BE,Data/QA,12,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-011,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-02,MIG-0016,J11,UI-MO-02,T-MO-EVAL-002,Daily Scorecard와 cohort aggregation,DailyScorecard·cohort metric snapshots,운영오류·calibration·매수·매도·재진입·비용후 효용의 sample/lag/version 표시,Quant/BE,Risk/QA,9,AEG-MO-010,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-012,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-DRIFT-001,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,Data/Feature/Prediction/Calibration drift evaluator,DriftObservation·baseline manifest·alert,"baseline version, PSI/KS/calibration drift와 sample minimum이 승인되고 임계 초과 시 HOLD만 생성",Quant/Risk,Data/SRE,10,AEG-MO-011,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-013,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-CC-001,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,Champion/Challenger 동일 cohort 비교,paired comparison·model card delta,동일 Dataset/Cost/Cohort/Window에서 효과·위험·false-exit·reentry 차이와 신뢰구간 보존,Quant/Risk,IndependentValidation/QA,12,AEG-MO-012,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-014,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-OOS-001,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,월간 Frozen Walk-forward OOS 실행,manifest/hash/seed/environment·OOS artifacts,"동일 manifest 허용오차 내 동일, lookahead 0, 상폐/CA/TR/cost2x 포함, 실패 artifact 보존",Quant/Data,QA/Risk,14,AEG-MO-003,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-015,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-ROBUST-001,BACKTEST-02,MIG-0016,J20,UI-MO-04,T-MO-ROBUST-001,분기 PBO/DSR/Parameter Stability/Block Bootstrap,experiment registry·CSCV/PBO/DSR report,"전체 시도 원장 기준 PBO≤20%, DSR≥95%, 비용2배 양수 여부를 재현하며 기준 미달 시 HOLD",Quant/Risk,IndependentValidation/QA,15,AEG-MO-014,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-016,S11,W23-24,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-05,MIG-0016,J11/J21,UI-MO-02,T-MO-ATTR-001,False-exit·Reentry attribution 정의 확정,metric definition v2·decision log,분자/분모/기준가격/benchmark/평가창/중도상폐/결측 처리 승인 전 생산 KPI 사용 차단,Quant/Risk,InvestmentCommittee/Data,7,DEC-032,G4,SOURCE+DECISION_REQUIRED,P0,PLANNED +AEG-MO-017,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-01,MIG-0016,J21,UI-MO-05,T-MO-IMP-001,월간 개선 제안 생성 규칙,ModelImprovementProposal·ranking rubric,데이터·정책·calibration·risk·기술부채 제안을 구분하고 자동 코드/임계값 변경 0,Quant Lead,Risk/Architect,8,AEG-MO-012~016,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-018,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-02,MIG-0016,J21,UI-MO-05,T-MO-IMP-002,개선 제안 반대증거·만료·중복 통제,proposal schema·content hash·expiry,근거/반대증거/기대효과/위험/필수테스트/Owner/만료가 없으면 REVIEW_REQUIRED 생성 금지,Risk/Architect,Quant/QA,7,AEG-MO-017,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-019,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-PROMOTE-001,GOV-MO-03,MIG-0016,J22,UI-MO-06,T-MO-GATE-001,PromotionGateEvaluator와 증거 패킷,promotion-gate.v1·PromotionGateResult,252일/2국면/효용/calibration/false-exit/reentry/PBO/DSR/cost2x/운영오류를 모두 평가하되 human approval=true,Risk/BE,Quant/QA,9,AEG-MO-015~018,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-020,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,SEC,REQ-MO-PROMOTE-001,GOV-MO-04,MIG-0016,J22,UI-MO-06,T-MO-GATE-002,모델 승격 maker-checker·업무분장,model_promotion_review·RBAC,"maker≠checker, 개발자 단독승격 0, 독립검증·준법·보안 evidence 누락 시 승인 불가",Risk/Security,Compliance/QA,8,AEG-MO-019,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-021,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MO-FE-001,GOV-MO-05,MIG-0016,J17~J22,UI-MO-03~06,T-MO-FE-003,Drift·비교·OOS·제안·Gate 화면 컴포넌트,DriftPanel·ComparisonPanel·EvidenceGatePanel,version/sample/window/data warning/반대증거/readonly 상태를 표시하고 내부점수 고객 노출 0,FE/UX,Risk/QA,12,AEG-MO-012~020,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-022,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-01,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001,Data revision 영향 인덱스와 재평가 요청,decision↔dataset/revision impact index,정정 source/revision이 영향 decision/window를 결정적으로 산출하고 승인 없는 대량 replay 0,Data/BE,DBA/Quant,10,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-023,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-002,Revision-aware correction evidence,new observation/snapshot·Supersession link,"과거 evidence overwrite 0, before/after hash·사유·승인자·영향 KPI가 보존",Data/Compliance,Quant/QA,8,AEG-MO-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-024,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-ROLLBACK-001,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,분기 Model rollback drill,model_rollback_drill·Runbook evidence,fallback manifest 복원·Capability 차단·RTO 측정·Secondary 수행·실주문 0,SRE/Risk,Module Owner/QA,10,AEG-MO-020,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-025,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OBS,REQ-MO-OPS-001,MO-OPS-01,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-001,Scheduler·평가 관제 표준,OTel metrics·Serilog correlation·alerts,due lag/lease conflict/request duplicate/context hold/runtime/backlog/error가 trace→schedule→request→artifact로 연결,SRE/BE,Security/QA,8,AEG-MO-005~006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-026,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-02,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-002,Error taxonomy·retry·dead-letter·BusinessHold,Runbook·retry matrix·dead-letter procedure,"transient/business/poison 분리, blind retry 0, same scope 중복 side effect 0",SRE/BE,Ops/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-027,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-MO-OPS-001,MO-OPS-03,MIG-0016,J10~J24,UI-MO-09,T-MO-SEC-001,모델 evidence·알림 PII/secret 보안,classification/redaction/secret scan,계좌·고객·토큰·원시 payload가 log/trace/Telegram/prompt에 노출 0,Security/SRE,Compliance/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-028,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-04,MIG-0016,J10~J24,UI-MO-09,T-MO-CAP-001,평가 Queue 격리·용량·SLA 시험,capacity report·queue quotas,q-research가 고객 batch SLA를 침범하지 않고 backlog/CPU/DB lock/IO 한도와 degradation 정책 승인,SRE/DBA,Quant/QA,10,AEG-MO-025,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-029,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-SCHED-001,MO-TEST-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-CONC-001,Scheduler concurrency·crash·clock 회귀,integration/chaos tests,"다중 worker lease 경쟁, enqueue 전후 crash, clock skew, DST/휴장, 장기 downtime catch-up에서 중복 0",QA/SRE,BE/DBA,12,AEG-MO-005,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-030,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-EVAL-001,MO-TEST-02,MIG-0016,J10~J22,UI-MO-02~06,T-MO-GOLDEN-001,Python/.NET metric Golden 교차검증,Golden vectors·tolerance registry,동일 frozen input에서 Python 연구와 .NET 평가가 승인 허용오차 내 일치하고 차이 artifact 보존,QA/Quant,BE/Data,12,AEG-MO-010~020,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-031,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-FE-001,MO-TEST-03,MIG-0016,J10~J24,UI-MO-01~09,T-MO-E2E-001,모델 운영 Playwright E2E,role/state/evidence flows,"Quant/Risk/Auditor 권한, loading/empty/stale/warn/hold/review/expired/readonly와 접근성 통과",QA/FE,Security/UX,8,AEG-MO-009~021,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-032,S14,W29-30,Cross,Cross-cutting,Toolchain,CI,REQ-MO-OPS-001,Cross,MIG-0016,Cross,Cross,T-MO-CI-001,Gitea CI에 v12.4 validator·ModelOps tests·contract drift 추가,ci.yml·validate_v124.py,"static/JSON/CSV/WBS/contract/Python tests green, .NET/pnpm/DB evidence 없이는 PASS 주장 금지",DevOps/QA,Architect/Security,8,AEG-MO-001~031,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-033,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-OPS-001,Cross,Cross,Cross,Cross,Cross,모델 운영 Release Evidence 템플릿,MODEL_EVALUATION_EVIDENCE.md·IMPROVEMENT_PROPOSAL.md,"Source/Assumption/Unknown/DecisionRequired, 명령·hash·sample·window·approval·rollback가 누락 없이 연결",PM/Risk,QA/Architect,5,AEG-MO-032,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-034,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-IMPROVE-001,Cross,Cross,Cross,Cross,Cross,바이브코딩 모델 변경 작업 패킷,MODEL_CHANGE + evaluation packet,AI가 임계값·팩터·모델·스케줄을 추정하지 않고 승인 source와 실제 test artifact 없으면 PR 차단,Architect/Quant,Risk/QA,6,AEG-MO-033,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-035,S15,W31-32,Cross,Cross-cutting,Release,CUTOVER,REQ-MO-OPS-001,Cross,MIG-0016,J10~J24,UI-MO-01~09,T-MO-REL-001,20영업일 ModelOps 단계 배포,runbook·feature/capability config·rollback,DISABLED→EVALUATION_ONLY→PROPOSAL_ONLY 순으로 승격하고 자동 model/order mutation은 계속 OFF,Release/SRE,Risk/Compliance,8,AEG-MO-032~034,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-036,MNT,Monthly,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,MNT,REQ-MO-EVAL-001,EVAL-MNT-01,MIG-0016,J10/J11/J17,UI-MO-02/03,T-MO-MNT-001,월간 성과·drift·false-exit·reentry 리뷰,monthly model health pack,metric version/sample/lag/drift/반대증거/기술부채와 개선 제안이 투자위 회의록에 연결,Quant/Risk,Ops/QA,4,Go-Live,MNT,SOURCE+OPERATING_EVIDENCE,P1,PLANNED +AEG-MO-037,MNT,Quarterly,VS-19/20,RunFrozenBacktest/PromoteModelVersion,BacktestingEvaluation/GovernanceAudit,MNT,REQ-MO-ROBUST-001,GOV-MNT-01,MIG-0016,J18~J23,UI-MO-04~08,T-MO-MNT-002,분기 OOS·PBO/DSR·승격/롤백 검토,quarterly independent validation pack,"복합 Gate 우회 0, 기준 미달 모델은 HOLD/REJECTED, rollback drill evidence 존재",Risk/InvestmentCommittee,IndependentValidation/Compliance,8,AEG-MO-036,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-MO-038,MNT,Release,Cross,Cross-cutting,GovernanceAudit,MNT,REQ-MO-IMPROVE-001,Cross,Cross,ModelChanged,Cross,T-MO-MNT-003,모델/정책/지표 변경 비회귀 릴리스,Model Change·Golden·Frozen OOS·Supersession,"문서/JSON/C#/DB/API/FE/test hash 정렬, 이전 계약 원문 보존, 자동승격/자동주문 OFF",Architect/Risk,Quant/QA/SRE,6,Approved Model Change,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-V12-5-001,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-001,기준선 직접/전이 첨부 Coverage와 Supersession 승인,Current source coverage+baseline transitive index,"현재 첨부 3개 SHA 일치, v12.4 내부 누적 첨부 경로 검증",PM/Architect,Compliance/QA,5,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-002,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-002,Build/Runtime/Shadow Evidence 상태모델 승인,Evidence status registry,STATIC/BUILD/DB/SHADOW/PILOT 상태의 허용 전이가 승인됨,PM/QA,Architect/Compliance,4,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-003,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-003,Decision Required 만료·aging 운영,Decision aging dashboard,"P0 decision owner/due/expiry 100%, 만료 시 Gate 자동 HOLD",PMO,Owner/QA,5,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-004,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-004,Release Evidence maker-checker 계약,Release evidence contract,"maker≠checker, 필수 artifact 누락 시 APPROVED 불가",QA/Release,Compliance/SRE,6,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-005,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,DEVEX,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-005,.NET 10 승인 runner restore/build/test,TRX+build logs,warning-as-error Release build 및 전체 test artifact,DevOps,BE/QA,10,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-006,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,DEVEX,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-006,pnpm lockfile 생성·검토·frozen build,pnpm-lock+CI logs,"lock diff 승인, typecheck/test/build/e2e 재현",FE Lead,DevOps/QA,8,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-007,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,FITNESS,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-007,Assembly/namespace/schema/API ownership test,Architecture fitness suite,"금지 의존, 직접 cross-schema write, ID 충돌 0",Architect/QA,BE/DBA,8,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-008,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,CONTRACT,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-008,OpenAPI artifact diff와 FE generated contract,OpenAPI client/Zod artifact,"DTO drift 0, runtime validation 통과",BE/FE,QA/Architect,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-009,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-009,Source/License/SLA/Timezone/Unit 계약 승인,Source contract snapshots,승인 없는 source ingestion/recommendation 0,Data Governance,Legal/QA,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-010,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-010,KRX/NYSE/NASDAQ calendar·DST·반일장 구현,Market calendar contract,휴장/반일장/DST Golden과 tradable_session 통과,Data/Quant,QA/Ops,12,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-011,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-011,총수익·상폐수익·기업행사 Golden,Golden dataset,price/quantity/cost/cash/return 대사 100%,Data/DBA,Quant/QA,12,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-012,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-012,Fee/Tax/FX valid-time schedule 확정,Cost schedule,계좌/venue/asset/side/band PIT 적용과 boundary 통과,Ops/Tax,Quant/DBA,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-013,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-013,PIT bitemporal unique/exclusion 제약 설계,DDL+ADR,중복 유효구간과 current overwrite 경로 0,DBA/Data Architect,BE/QA,8,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-014,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-014,Migration fresh/upgrade/re-run/failure rehearsal,Migration evidence,"4시나리오 통과, checksum 변경 차단, rollback/runbook",DBA/BE,QA/SRE,10,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-015,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-015,볼륨·partition·index·retention 결정,Capacity ADR,"실제 규모/쿼리계획으로 승인, 근거 없는 index 0",DBA/SRE,PM/Data,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-016,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,DQ,REQ-EXA-004,Cross,Cross,J25-J30,Cross,T-EXA-016,DQ incident·quarantine·reprocess E2E,DQ E2E evidence,"격리 데이터 추천 0, correction revision 보존",Data/QA,BE/Ops,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-017,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-017,false-exit metric definition version 확정,Metric definition,분자/분모/window/benchmark/cost/revision 승인,Quant/Risk,QA/Investment Committee,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-018,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-018,reentry capture/delay metric definition 확정,Metric definition,stage/cycle/expiry/no-fill 포함 정의 승인,Quant/Risk,QA/Data,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-019,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-019,Evidence grade와 counter-evidence 계약,Policy contract,DQ/freshness/revision/source coverage에 따른 downgrade 재현,Quant/Data,Risk/QA,8,v12.4 baseline,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-020,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-020,승격 threshold machine-readable 단일화,Promotion contract registry,"JSON/C#/문서 drift 0, 승인 version/hash 기록",Quant/BE,Risk/QA,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-021,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-021,전체 실험 registry·CSCV/PBO/DSR,Experiment registry,"숨은 시도 0, deterministic seed, independent replay",Quant/Risk,Independent Validation,16,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-022,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-022,Champion/Challenger paired comparison,Comparison artifact,"동일 data/cost/cohort/window, sample mismatch HOLD",Quant/QA,Risk/Data,12,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-023,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-023,revision impact replay와 correction link,Revision replay evidence,before/after dataset/hash와 영향 decision 100% 연결,Data/Quant,DBA/QA,12,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-024,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-024,Cost2x·missing·delisting·CA·FX stress,Stress report,모든 승인 candidate에 필수 stress artifact,Quant/QA,Risk/Data,12,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-025,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-025,ModelOperations Dispatcher fail-closed 검증,Capability tests,"기본 OFF, ShadowEvaluation false면 startup 차단",BE/Security,QA/SRE,6,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-026,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-026,Dispatch enqueue/mark gap 제거 설계,Dispatch intent/outbox ADR,crash timing에서 duplicate request/손실 0,BE/SRE,Architect/QA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-027,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-027,Model operation 상태전이 서비스,Status transition slice,"허용 transition, optimistic concurrency, append event 100%",BE Lead,QA/DBA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-028,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-028,BusinessHold/Quarantine/Poison 분류,Failure taxonomy,"blind retry 0, dead-letter/runbook 연결",BE/SRE,Data/QA,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-029,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-029,J10~J30 executor handler 계약,Operation handler registry,"Scheduler에 수식 없음, handler contract test 100%",BE/Quant,Architect/QA,18,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-030,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-030,Operation artifact store·retention,Artifact repository,content hash/retention/source request 추적 100%,BE/DBA,Compliance/SRE,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-031,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-031,Outbox/Inbox crash/replay chaos,Chaos evidence,"crash-before/after-publish, duplicate side effect 0",BE/SRE,QA/DBA,14,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-032,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-032,Projection rebuild/diff runner,Projection runner,version/watermark/stale/rebuild diff 통과,BE/Data,QA/SRE,12,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-033,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,UX,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-033,고객 투자제안 정보위계 프로토타입,UX prototype,행동/근거/반대증거/비용/불확실성/다음검토 usability 통과,UX/AX,Advisor/Compliance,10,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-034,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,UX,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-034,운용자 maker-checker 검토함 프로토타입,Ops prototype,"작성자 단독승인 0, expiry/DQ/version 경고 명확",UX/FE,Advisor/QA,10,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-035,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-035,Query key registry·Pinia 경계 lint,FE architecture rules,"server state Pinia 복제 0, invalidation contract 통과",FE Lead,QA/Architect,8,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-036,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-036,Zod request/response/error runtime validation,FE contract tests,성공/오류/nullable/version mismatch 전부 차단·표시,FE Lead,BE/QA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-037,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-010,Cross,Cross,Cross,UI-EXA,T-EXA-037,Accessibility keyboard/screen-reader test,A11y evidence,WCAG 핵심 흐름 keyboard/label/focus 통과,FE/UX,QA/Compliance,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-038,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-010,Cross,Cross,Cross,UI-EXA,T-EXA-038,Evidence/VersionSet/Readiness 공통 컴포넌트,Shared components,3회 반복+동일 의미/변경축 근거와 component tests,FE Lead,UX/QA,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P2,PLANNED +AEG-V12-5-039,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-010,Cross,Cross,Cross,Cross,T-EXA-039,OIDC/JWT provider·claims·rotation ADR,Auth ADR+E2E,"issuer/audience/claims/key rotation, fail-closed 통과",Security/BE,PM/QA,12,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-040,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-010,Cross,Cross,Cross,Cross,T-EXA-040,PII classification/redaction/Telegram test,Security evidence,log/trace/alert/prompt 고객정보 노출 0,Security/SRE,QA/Compliance,10,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-041,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-011,Cross,Cross,Cross,Cross,T-EXA-041,SBOM·license·vulnerability gate,Supply-chain evidence,NuGet/npm allowlist와 critical 취약점 0,Security/DevOps,Legal/QA,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-042,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-042,SLO/RPO/RTO·volume 승인,Operations ADR,data/recommendation/publish/reconcile/evaluation SLO 승인,SRE/PM,DBA/Ops,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-043,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-043,부하·장애·queue isolation 시험,Capacity/chaos report,research queue가 recommendation SLA 침범 0,SRE/QA,BE/DBA,14,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-044,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-044,Backup/restore·rollback drill,DR evidence,"RPO/RTO 실측, champion/fallback 복구 hash 일치",SRE/DBA,QA/Risk,12,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-045,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,QA,REQ-EXA-012,Cross,Cross,J25-J30,Cross,T-EXA-045,End-to-End Release Evidence 자동조립,Release evidence bundle,source/build/test/migration/security/rollback 누락 0,QA/Release,DevOps/Compliance,10,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-046,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,OPS,REQ-EXA-012,Cross,Cross,Cross,Cross,T-EXA-046,P1/P2 장애·정정·고객공지 Runbook,Runbook pack,Owner/Secondary/escalation/communication rehearsal,Ops/SRE,Compliance/CS,10,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-047,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,PM,REQ-EXA-012,Cross,Cross,Cross,UI-EXA,T-EXA-047,90일 Critical Path·Gate burn-down 운영,Critical path dashboard,P0 dependency/decision/evidence aging 주간 갱신,PM/PL,All Leads,8,v12.4 baseline,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-048,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-012,Cross,MIG-0017,Cross,Cross,T-EXA-048,36개월 모델·데이터·기술부채 review cadence,Operating calendar,월/분기/반기/연 review와 산출물/승인자 고정,PM/Risk,Architect/Ops,6,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-001,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ARCH,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-01,T-FE-ARCH-01,UI Vendor import boundary,ESLint/architecture rule,Feature에서 primevue/ag-grid 직접 import 0,FE Architect,QA,5,AEG-X-003,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-002,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-DS,REQ-FE-TOKEN,Cross,Cross,Cross,UI-FOUND-02,T-FE-TOKEN-01,Design token contract,tokens.css,임의 색상/spacing/금융 formatter 경로 0,UX/FE,QA,5,V13-FE-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-003,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-03,T-FE-ADAPTER-01,UiAdapter Port 정의,adapter/contracts.ts,8개 Port와 version/id 계약 고정,FE Architect,QA,5,V13-FE-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-004,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-04,T-FE-ADAPTER-02,PrimeVue/AG Grid Adapter 구현,adapter/primevue/*,Port contract test와 접근성 기본속성 통과,FE Lead,QA/UX,8,V13-FE-003,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-005,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-COMP,REQ-FE-COMP,Cross,Cross,Cross,UI-FOUND-05,T-FE-COMP-01,Ks* vendor-neutral components,shared/ui/components,Feature vendor import 없이 동작,FE Lead,QA,8,V13-FE-004,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-006,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-LAYOUT,REQ-FE-LAYOUT,Cross,Cross,Cross,UI-FOUND-06,T-FE-LAYOUT-01,AppShell/Page layouts,shared/ui/layouts,landmark/skip-link/responsive/automation boundary,UX/FE,QA/Security,7,V13-FE-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-007,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-STATE,REQ-FE-STATE,Cross,Cross,Cross,UI-FOUND-07,T-FE-STATE-01,11-state Matrix component,StandardStatePanel,각 상태의 표현/금지행동 test,UX/FE,QA,6,V13-FE-005,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-008,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-FMT,REQ-FE-FORMAT,Cross,Cross,Cross,UI-FOUND-08,T-FE-FMT-01,금융 formatter 중앙화,financial.ts,통화/비율/수량/as-of 단위 명시,FE Lead,Quant/QA,5,V13-FE-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-009,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-CONTRACT,REQ-FE-OPENAPI,Cross,Cross,Cross,UI-FOUND-09,T-FE-CONTRACT-01,OpenAPI-Zod 생성 전략 ADR,ADR-FE-CONTRACT,DTO 중복 source 0 계획 승인,BE/FE Architect,QA,5,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-010,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-BOOT,REQ-FE-BOOT,Cross,Cross,Cross,UI-FOUND-10,T-FE-SMOKE-01,PrimeVue unstyled/bootstrap 연결,main.ts,adapter 미설치 fail-fast와 smoke route,FE Lead,QA,4,V13-FE-004,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-011,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T01,Cross,Cross,Cross,UI-T01,T-FE-T01-01,T01 검색목록 화면 템플릿,screen-types/T01,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-012,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T02,Cross,Cross,Cross,UI-T02,T-FE-T02-01,T02 상세조회 화면 템플릿,screen-types/T02,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-013,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T03,Cross,Cross,Cross,UI-T03,T-FE-T03-01,T03 등록편집 화면 템플릿,screen-types/T03,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-014,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T04,Cross,Cross,Cross,UI-T04,T-FE-T04-01,T04 MasterDetail 화면 템플릿,screen-types/T04,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-015,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T05,Cross,Cross,Cross,UI-T05,T-FE-T05-01,T05 검토승인 화면 템플릿,screen-types/T05,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-016,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T06,Cross,Cross,Cross,UI-T06,T-FE-T06-01,T06 Wizard 화면 템플릿,screen-types/T06,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-017,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T07,Cross,Cross,Cross,UI-T07,T-FE-T07-01,T07 Dashboard 화면 템플릿,screen-types/T07,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-018,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T08,Cross,Cross,Cross,UI-T08,T-FE-T08-01,T08 Batch운영 화면 템플릿,screen-types/T08,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-019,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T09,Cross,Cross,Cross,UI-T09,T-FE-T09-01,T09 대사예외 화면 템플릿,screen-types/T09,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-020,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T10,Cross,Cross,Cross,UI-T10,T-FE-T10-01,T10 버전거버넌스 화면 템플릿,screen-types/T10,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-021,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-FORM,REQ-FE-FORM,Cross,Cross,Cross,UI-FORM-01,T-FE-FORM-01,vee-validate/Zod standard form,CrudFormPage,"422 field/summary, dirty, duplicate submit, If-Match",FE Lead,BE/QA,8,V13-FE-013,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-022,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-URL,REQ-FE-URL,Cross,Cross,Cross,UI-URL-01,T-FE-URL-01,Filter/page/tab URL state,router/query codec,deep-link roundtrip와 허용 filter whitelist,FE Lead,QA,6,V13-FE-011,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-023,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-GRID,REQ-FE-GRID,Cross,Cross,Cross,UI-GRID-01,T-FE-GRID-01,AG Grid server-side contract,KsDataGrid,pagination/sort/filter/column state/a11y,FE Lead,BE/QA,8,V13-FE-004,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-024,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-PERM,REQ-FE-AUTHZ,Cross,Cross,Cross,UI-AUTH-01,T-FE-AUTH-01,Permission/Capability Guard integration,AppShell/Route meta,unauthorized 존재정보 과노출 0,FE/Security,QA,7,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-025,S7,W15-16,Cross,Cross-cutting,ClientAdvisory,FE-REVIEW,REQ-ADV-REVIEW,Cross,Cross,Cross,UI-T05-ADV,T-ADV-REVIEW-UI,추천 검토 Workbench 적용,advisor/recommendations,"self-approval 0, warning ack, conflict, expiry",FE/UX,Compliance/QA,10,V13-FE-015,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-026,S8,W17-18,Cross,Cross-cutting,ClientAdvisory,FE-PUBLISH,REQ-ADV-PUBLISH,Cross,Cross,Cross,UI-T02-ADV,T-ADV-PUBLISH-UI,고객 제안 상세 적용,advice detail,승인본 hash/as-of/version만 고객 노출,FE/UX,Compliance/QA,9,V13-FE-012,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-027,S8,W17-18,Cross,Cross-cutting,DataOperations,FE-BATCH,REQ-OPS-BATCH,Cross,Cross,Cross,UI-T08-OPS,T-OPS-BATCH-UI,Data/Job Run Batch 화면 적용,ops/data-runs,JobRun/Watermark/reprocess dry-run/audit,FE/Ops,SRE/QA,9,V13-FE-018,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-028,S8,W17-18,Cross,Cross-cutting,ExecutionReconciliation,FE-RECON,REQ-RECON-UI,Cross,Cross,Cross,UI-T09-RECON,T-RECON-UI,대사·정정 화면 적용,ops/reconciliation,"before/after, maker-checker, blind overwrite 0",FE/Ops,DBA/QA,9,V13-FE-019,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-029,S11,W23-24,Cross,Cross-cutting,ModelOperations,FE-GOV,REQ-MODEL-GOV-UI,Cross,Cross,Cross,UI-T10-MODEL,T-MODEL-GOV-UI,모델 버전 비교 화면 적용,ops/model-governance,"same dataset/cost, gate pack, rollback",FE/Quant,Risk/QA,10,V13-FE-020,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-030,S11,W23-24,Cross,Cross-cutting,Evaluation,FE-DASH,REQ-EVAL-DASH,Cross,Cross,Cross,UI-T07-EVAL,T-EVAL-DASH,일평가 Scorecard 적용,research/evaluations,metric definition/sample/window/table alternative,FE/Quant,QA/UX,9,V13-FE-017,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-031,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-A11Y,REQ-FE-A11Y,Cross,Cross,Cross,UI-ALL,T-FE-A11Y-01,접근성 자동·수동 Matrix,a11y test pack,keyboard/focus/ARIA/contrast/table alternative,QA/UX,FE,8,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-032,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-VISUAL,REQ-FE-VISUAL,Cross,Cross,Cross,UI-ALL,T-FE-VISUAL-01,Visual regression baseline,Playwright screenshots,T01~T10 desktop/mobile 의미 diff 0,QA/UX,FE,8,V13-FE-011..020,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-033,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-ERROR,REQ-FE-ERROR,Cross,Cross,Cross,UI-ALL,T-FE-ERROR-01,ProblemDetails mapping,error mapper,401/403/409/422/429/503 표준행동,FE/BE,QA,7,V13-FE-007,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-034,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-IDEMP,REQ-FE-IDEMP,Cross,Cross,Cross,UI-ALL,T-FE-IDEMP-01,Idempotency retry contract,command composable,"동일 retry key 재사용, 중복 side effect 0",FE/BE,QA,7,V13-FE-021,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-035,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-FRESH,REQ-FE-FRESH,Cross,Cross,Cross,UI-ALL,T-FE-FRESH-01,Data freshness/version standard,freshness/version components,as-of/published_at/revision/stale 일관,FE/Data,QA/UX,7,V13-FE-007,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-036,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-EXPORT,REQ-FE-EXPORT,Cross,Cross,Cross,UI-ALL,T-FE-EXPORT-01,Print/export evidence contract,export footer,approved hash/as-of/version/disclaimer 포함,FE/Compliance,QA,6,V13-FE-026,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-037,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-SWAP,Cross,Cross,Cross,UI-FOUND-11,T-FE-SWAP-01,Vendor swap rehearsal,alternate fake adapter,"Feature 변경 0, contract/visual/a11y pass",FE Architect,QA/UX,8,V13-FE-004,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-038,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-PERF,REQ-FE-PERF,Cross,Cross,Cross,UI-ALL,T-FE-PERF-01,대량 화면 성능 budget,performance report,"10k row virtualized, interaction P95 승인",FE/SRE,QA,8,V13-FE-023,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-039,S14,W29-30,Cross,Cross-cutting,UIFoundation,FE-DEBT,REQ-FE-DEBT,Cross,Cross,Cross,UI-ALL,T-FE-DEBT-01,공통 컴포넌트 승격/폐기 review,component registry,owner/usage/change-axis/deprecation 기록,FE Architect,PM/QA,6,V13-FE-001..038,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-040,S15,W31-32,Cross,Cross-cutting,UIFoundation,FE-EVIDENCE,REQ-FE-REL,Cross,Cross,Cross,UI-ALL,T-FE-REL-01,FE Release Evidence assemble,release evidence,typecheck/test/e2e/a11y/visual/perf hash,QA/Release,FE/SRE,6,V13-FE-031..039,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-001,S8,W17-18,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-FREEZE,Cross,MIG-0018,J31,UI-J31,T-J31,J31 PredictionFreeze 계약·DB,prediction_freeze + registry,결과 공개 전 VersionSet hash append-only,Quant/BE,Data/QA,8,VS-09/18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-002,S8,W17-18,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-MATURITY,Cross,MIG-0018,J32,UI-J32,T-J32,J32 평가창 성숙 sweep,evaluation_window_maturity,거래세션 1/5/20/63/126/252 정확,Quant/BE,Data/QA,8,V13-MODEL-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-003,S11,W23-24,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-SELL,Cross,Cross,J33,UI-J33,T-J33,J33 매도·재진입 attribution,weekly evidence,false-exit/gain/capture/delay cost 정의 일치,Quant/Risk,Advisor/QA,9,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-004,S11,W23-24,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-CAL,Cross,Cross,J34,UI-J34,T-J34,J34 calibration/regime review,calibration evidence,coverage/Brier/logloss/regime/version,Quant/Risk,Data/IV,9,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-005,S11,W23-24,Cross,Cross-cutting,Governance,MODEL-IMPROVE,REQ-MODEL-HYP,Cross,MIG-0018,J35,UI-J35,T-J35,J35 개선가설 생성,model_improvement_hypothesis,문제/증거/변경/효과/반증/비목표/만료,Quant Lead,Risk/Architect,9,V13-MODEL-003..004,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-006,S11,W23-24,Cross,Cross-cutting,Governance,MODEL-IMPROVE,REQ-MODEL-CHAL,Cross,Cross,J36,UI-J36,T-J36,J36 Challenger 계획,experiment plan,승인 없는 train/config/activate 0,Quant Lead,IV/QA,9,V13-MODEL-005,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-007,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-VALIDATE,REQ-MODEL-IV,Cross,Cross,J37,UI-J37,T-J37,J37 독립검증 Pack,validation pack,OOS/PBO/DSR/cost2x/repro/ops 완결,IndependentValidation,Risk/Compliance,10,V13-MODEL-006,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-008,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-DEBT,REQ-MODEL-DEBT,Cross,Cross,J38,UI-J38,T-J38,J38 모델·정책 Debt review,debt decision pack,owner/expiry/remediation/exit test,Risk/Architect,Quant/PM,7,V13-MODEL-005,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-MODEL-009,S8,W17-18,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-V2,Cross,MIG-0018,J31~J38,UI-MOPS,T-SCHED-V2,model-operations.v2 contract,JSON contract,J31~J38 mode/cadence/queue/gate 검증,BE/SRE,Quant/QA,6,V13-MODEL-001..008,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-010,S8,W17-18,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-FAIL,Cross,MIG-0018,J31~J38,UI-MOPS,T-SCHED-FAIL,Schedule fail-closed migration,0018 migration,"8개 schedule enabled=false, dependency 승인 전 HOLD",DBA/BE,SRE/QA,7,V13-MODEL-009,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-011,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-CAL,Cross,Cross,J31~J34,UI-MOPS,T-SCHED-CAL,Evaluation clock/calendar tests,calendar fixtures,휴장/DST/반일장/window maturity Golden,Data/QA,Quant/BE,8,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-012,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-REV,Cross,Cross,J31~J34,UI-MOPS,T-SCHED-REV,Revision-aware replay tests,replay evidence,"과거 overwrite 0, 새 dataset/result revision",Data/BE,QA/Quant,8,V13-MODEL-001..004,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-013,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-IDEMP,Cross,Cross,J31~J38,UI-MOPS,T-SCHED-IDEMP,Job crash/retry/lease tests,fault evidence,duplicate request/artifact/hypothesis 0,BE/SRE,QA/DBA,8,V13-MODEL-009,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-014,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-SEC,REQ-MODEL-SEG,Cross,MIG-0018,J35~J37,UI-J35~J37,T-MODEL-SEG,maker-checker/segregation E2E,approval evidence,"maker != checker, expired proposal block",Risk/BE,Compliance/QA,8,V13-MODEL-005..007,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-015,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-BOUNDARY,REQ-MODEL-AUTO,Cross,Cross,J31~J38,UI-MOPS,T-MODEL-AUTO,금지 side effect architecture test,boundary tests,auto promote/config/publication/order 0,Architect/QA,Risk/Security,7,V13-MODEL-009,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-016,S14,W29-30,Cross,Cross-cutting,Governance,MODEL-OPS,REQ-MODEL-RUNBOOK,Cross,Cross,J31~J38,UI-MOPS,T-MODEL-OPS,지속 모델운영 Runbook/rollback,runbook,owner/secondary/hold/replay/rollback drill,SRE/Risk,Quant/QA,8,V13-MODEL-001..015,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-001,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-01,Cross,Cross,Cross,UI-DEV-01,T-SCAFFOLD-01,BE/FE Vertical Slice scaffolder,tools/scaffold_vertical_slice.py,dry-run/overwrite refusal/unresolved token 0,Architect/DevEx,BE/FE Lead,8,V13-FE-003,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-002,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-02,Cross,Cross,Cross,UI-DEV-02,T-SCAFFOLD-02,FastEndpoints/Dapper template,templates/vertical-slice/backend,Endpoint/Request/Response/Validator/Handler/Sql packet,BE Lead,Architect/QA,7,V13-TOOL-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-003,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-03,Cross,Cross,Cross,UI-DEV-03,T-SCAFFOLD-03,Vue/Zod/Query template,templates/vertical-slice/frontend,api/schema/query/page/test packet,FE Lead,Architect/QA,7,V13-TOOL-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-004,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-13,현재 첨부 5개 원본 보존,attachments/current_request_20260802_v13,SHA-256/size/filename byte-for-byte,PM/Architect,QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-005,S0,W1-2,Cross,Cross-cutting,Governance,TRACE,REQ-TRACE-13,Cross,Cross,Cross,Cross,T-TRACE-13,v13 Source/WBS/Trace update,docs/v13_0 CSV,"WBS 400, ID duplicate 0, J31~J38 trace",PM/QA,Architect,7,V13-TOOL-004,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-006,S14,W29-30,Cross,Cross-cutting,Quality,STATIC,REQ-STATIC-13,Cross,Cross,Cross,UI-ALL,T-STATIC-13,v13 static validator,STATIC_VALIDATION_V13_0.txt,"0 FAIL, WARN은 runtime 미실행만",QA/DevEx,Architect,8,"V13-FE-040,V13-MODEL-016",G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-007,S14,W29-30,Cross,Cross-cutting,Documentation,DOCX,REQ-DOCX-13,Cross,Cross,Cross,Cross,T-DOCX-13,v13 통합 제안서 DOCX,K-ArtSell_Aegis_v13_0*.docx,render 모든 페이지 육안 QA,PM/Consultant,QA/Architect,8,V13-TOOL-005,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-008,S15,W31-32,Cross,Cross-cutting,Release,PACKAGE,REQ-PACK-13,Cross,Cross,Cross,Cross,T-PACK-13,단일 ZIP·manifest·SHA,final package,"zip -T, manifest count/hash, 첨부 누락 0",Release/QA,PM/SRE,8,V13-TOOL-006..007,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED diff --git a/docs/v13_0/09_STATIC_VALIDATION_SCOPE.md b/docs/v13_0/09_STATIC_VALIDATION_SCOPE.md new file mode 100644 index 00000000..512cef7b --- /dev/null +++ b/docs/v13_0/09_STATIC_VALIDATION_SCOPE.md @@ -0,0 +1,17 @@ +# 정적 검증 범위와 미실행 항목 + +## 수행 + +- JSON/CSV/SQL/Markdown/TypeScript/Vue 파일 존재·중복 ID·금지 Vendor import 경계 정적 검사. +- WBS 400건, J10~J38 중복 없음, T01~T10 완전성, 첨부 SHA-256, 패키지 manifest 검증. +- Python scaffolder dry-run 및 생성 후 미해결 token 검사. +- DOCX render/페이지 이미지 육안 QA. + +## 미실행 + +- .NET 10 restore/build/test: SDK 없음. +- pnpm frozen install/typecheck/vitest/vite build/Playwright: pnpm lockfile·설치 의존성 없음. +- PostgreSQL DbUp fresh/upgrade/re-run/failure: PostgreSQL client/server 없음. +- 실제 KRX/OPENDART/KIS 호출, 252거래일 Shadow, OOS/PBO/DSR, 보안·DR·부하. + +미실행 항목은 PASS로 기록하지 않으며 G0/G1/G4/G5/G6 차단 조건이다. diff --git a/docs/v13_0/10_PACKAGE_CONTENTS.md b/docs/v13_0/10_PACKAGE_CONTENTS.md new file mode 100644 index 00000000..998c54f0 --- /dev/null +++ b/docs/v13_0/10_PACKAGE_CONTENTS.md @@ -0,0 +1,10 @@ +# v13.0 패키지 구성 + +- v12.5 전체 기준선: 코드·문서·WBS·첨부·검증자료 보존. +- `docs/v13_0/`: 비판적 통합 제안, FE Adapter/Layouts/Screen Types, 알고리즘 지속 루프, Backend/Data/Hangfire, 역할별 감사, 400 WBS, 추적성·부채·결정·Job·Source Matrix. +- `frontend/src/shared/ui/adapter`: 교체 가능한 PrimeVue/AG Grid Adapter. +- `frontend/src/shared/ui/layouts`, `screen-types`: 표준 레이아웃과 T01~T10 템플릿. +- `templates/vertical-slice`, `tools/scaffold_vertical_slice.py`: .NET/Vue 동시 Slice 기본 템플릿. +- `contracts/schedules/model-operations.v2.json`, `0018_v13_model_feedback_loop.sql`, J31~J38 registry. +- `attachments/current_request_20260802_v13/`: 현재 요청의 모든 첨부 원본. +- `PACKAGE_MANIFEST.json`, `SHA256SUMS.txt`: 전체 무결성. diff --git a/docs/v13_0/DECISION_LOG.csv b/docs/v13_0/DECISION_LOG.csv new file mode 100644 index 00000000..adc6bfa6 --- /dev/null +++ b/docs/v13_0/DECISION_LOG.csv @@ -0,0 +1,53 @@ +Decision_ID,Status,Decision_or_Question,Basis,Owner,Gate,Approved_or_Due +DEC-001,APPROVED,투자자문형→Shadow→Pilot; 자동주문 OFF,v10.0·v12.2,운영사/준법,ALL,2026-08-01 +DEC-002,APPROVED,알고리즘 상태 RESEARCH_CANDIDATE_NOT_PRODUCTION,v10.0·v12.2,투자위/리스크,G4,2026-08-01 +DEC-003,APPROVED,Modular Monolith+Vertical Slice; 조기 microservice 금지,v10.0,Architect,G0,2026-08-01 +DEC-004,APPROVED,PIT/revision/hash/lineage와 immutable Evidence 우선,v10.0·v12.2,Data/Quant,G1,2026-08-01 +DEC-005,APPROVED,매도 우선순위: impairment→survival→floor→concentration→opportunity→reentry,v12.2,투자위/Quant,G2,2026-08-01 +DEC-006,APPROVED,SellRatioOfLot와 portfolio weight/core floor 단위 분리,v12.0 Delta,Quant/Architect,G2-A,2026-08-02 +DEC-007,DECISION_REQUIRED,생산 OIDC/JWT 공급자와 claims mapping,자료 미지원,Security/PM,G5,미정 +DEC-008,DECISION_REQUIRED,PIT 총수익·상폐·컨센서스 공급원/라이선스,자료 미지원,Data Governance/Legal,G1,미정 +DEC-009,DECISION_REQUIRED,계좌·시장·venue별 Fee/Tax/FX schedule,자료 미지원,Ops/Tax/Quant,G1,미정 +DEC-010,DECISION_REQUIRED,SLO/RPO/RTO와 운영 용량 기준,자료 미지원,SRE/PM,G5,미정 +DEC-011,DECISION_REQUIRED,고객/계좌/상품 규모와 성능 테스트 볼륨,자료 미지원,PM/SRE,G6-A,미정 +DEC-012,DECISION_REQUIRED,한국 최신 PIT 데이터 확보 범위와 재검증 일정,자료 미지원,Quant/Data,G4,미정 +DEC-013,APPROVED,Lot-relative sell ratio uses CurrentLotPortfolioWeight; target security weight subtracts LotWeight×Ratio,v10/v12.1 unit-separation intent and data-consistency correction,Quant/Architect,G2-A,2026-08-02 +DEC-014,APPROVED,Ordered policy trace is immutable internal decision evidence; customer view receives curated explanation,Explainability and audit delta,Quant/Compliance/Architect,G2-A/G3,2026-08-02 +DEC-015,APPROVED,v12.2 preserves all six current-session attachments byte-for-byte and treats v12.1 as baseline,Non-regression source control,PM/Architect,G0,2026-08-02 +DEC-016,DECISION_REQUIRED,Select production OpenAPI client generation tool and ownership,Toolchain/network approval required,BE/FE/DevOps,G3,Before S11 +DEC-017,DECISION_REQUIRED,Approve .NET/PostgreSQL/pnpm runner image digests,Real build and migration evidence prerequisite,DevOps/Security,G0,Before coding start +DEC-013,DECISION_REQUIRED,자본바닥/생존 매도가 same-direction cooldown을 우회하는가,v10 우선순위는 명확하나 cooldown 예외는 첨부 근거에 명시되지 않음,투자위/리스크/Quant,G2,Before VS-10 production path +DEC-014,DECISION_REQUIRED,Hard impairment 80~100%를 어떤 증거등급/심각도로 매핑하는가,v10 범위는 80~100%; 현재 구현은 보수적으로 100%,투자위/준법/Quant,G2,Before policy parameter change +DEC-015,APPROVED,v12.2 이전 ambiguous weight context는 추정 사용하지 않고 semantics v2로 재구축한다,PIT·재현성·DECISION_REQUIRED fail-closed 원칙,Data Architect/Quant/Architect,G2-A,2026-08-02 +DEC-016,APPROVED,정책·이벤트·성과지표 계약은 버전과 hash를 가진 machine-readable artifact로 관리한다,"DOC-NR-05/06, v12.1 TD-021/032",Architect/Quant/Risk,G2/G3,2026-08-02 +DEC-022,APPROVED,스케줄러 자동화는 EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY로 제한,v10 자동주문 OFF·v12.1 연구후보 경계,Risk/Architect,ALL,2026-08-02 +DEC-023,APPROVED,모델·정책·임계값 자동 승격/변경/롤백 금지; human maker-checker 필수,모델 거버넌스와 독립검증 Gate,InvestmentCommittee/Compliance,G4/G5,2026-08-02 +DEC-024,APPROVED,15분 Dispatcher + DB schedule/lease + dynamic queue 패턴,시장별 job 난립과 DST hard-code 방지,Architect/SRE,G3,2026-08-02 +DEC-025,APPROVED,모델 평가 요청 시 승인 Dataset/Model/Config/Code/Contract VersionSet 동결,재현성·이력성·PIT 원칙,Data/Quant,G3,2026-08-02 +DEC-026,APPROVED,성과지표는 분자/분모/평가창/집계/비용을 버전 계약으로 관리,63일 연구 통계와 연간 목표 혼용 방지,Quant/Risk,G4,2026-08-02 +DEC-027,APPROVED,일/주/월/분기 평가와 revision-trigger replay를 분리,운영 부하와 증거 적시성 균형,Quant/SRE,G3/G4,2026-08-02 +DEC-028,APPROVED,J21은 개선 제안만 생성하며 코드·모델·설정 파일을 수정하지 않음,바이브코딩·홀루시네이션·과최적화 통제,Architect/Quant,G4,2026-08-02 +DEC-029,APPROVED,"J10/J11/J17 일, J18/J24 주, J19/J21/J22 월, J20/J23 분기 기본 cadence",v10 J10/J11 및 유지보수 운영리듬 계승,Risk/Ops,G3/G5,2026-08-02 +DEC-030,DECISION_REQUIRED,평가 evidence retention/partition/archive/legal hold 기간,첨부 근거에 구체 보존기간 없음,Compliance/DBA,G5/G6-A,G5 전 +DEC-031,DECISION_REQUIRED,Data/Feature/Prediction/Calibration drift metric·sample·threshold,첨부 근거는 drift 필요성만 제시하고 수치 계약 미제공,Quant/Risk,G4,J17 구현 전 +DEC-032,DECISION_REQUIRED,False-exit adverse-regret의 정확한 가격·benchmark·window 정의,첨부의 연 2% 목표와 연구 CSV를 직접 동일시할 수 없음,InvestmentCommittee/Quant,G4,J10 생산화 전 +DEC-033,APPROVED,"ModelOperations Dispatcher 기본 OFF, ShadowEvaluation과 별도 승인 필요",v10 안전경계+v12.5,Architect/Security,G0,2026-08-02 +DEC-034,APPROVED,"J10~J30은 평가·제안·훈련만 허용, 모델/주문 자동변경 금지",v12.4+v12.5,Risk/Compliance,ALL,2026-08-02 +DEC-035,APPROVED,v12.4 원본 ZIP을 immutable baseline으로 보존하고 current attachment를 직접 보존,비회귀,PM/QA,G0,2026-08-02 +DEC-036,DECISION_REQUIRED,생산 OIDC/JWT provider와 claims/key rotation,첨부 미결,Security/PM,G5,D+10 +DEC-037,DECISION_REQUIRED,총수익·상폐·컨센서스 source/license/SLA,첨부 미결,Data Governance/Legal,G1,D+10 +DEC-038,DECISION_REQUIRED,KRX/NYSE/NASDAQ market calendar source와 운영 owner,v12.4 TD-042,Data/Ops,G1,D+10 +DEC-039,DECISION_REQUIRED,Fee/Tax/FX account/venue/asset schedule,첨부 미결,Ops/Tax/Quant,G1,D+10 +DEC-040,DECISION_REQUIRED,false-exit/reentry metric denominator/window,metric governance,Risk/Quant,G4,D+30 +DEC-041,DECISION_REQUIRED,SLO/RPO/RTO와 volume assumptions,운영 미결,SRE/PM,G5,D+20 +DEC-042,APPROVED,288 baseline WBS 보존+48 execution assurance Delta,v12.5,PM/Architect,G0,2026-08-02 +DEC-043,APPROVED,직접 runtime evidence 없는 상태를 IMPLEMENTATION_TEMPLATE로 표시,신뢰성,QA/Compliance,ALL,2026-08-02 +DEC-044,DECISION_REQUIRED,투자일임형 검토 개시 시점과 독립승인 체계,252일 Shadow 이후,운영사/법무/준법,G6,Shadow+252 +DEC-045,APPROVED,Feature는 UI vendor를 직접 import하지 않고 adapter port만 사용,v10 Ch42 + v13 design,Architect/FE,G0,2026-08-02 +DEC-046,APPROVED,T01~T10을 표준 CRUD/업무화면 타입으로 사용,v10 Ch41 + v13 delta,UX/FE/QA,MVP-A,2026-08-02 +DEC-047,APPROVED,J31~J38은 evidence/proposal only이며 기본 OFF,v10/v12.5 automation boundary,Risk/Ops,ALL,2026-08-02 +DEC-048,APPROVED,모델 개선은 가설→Challenger 계획→독립검증→maker-checker 순서,model governance,Investment Committee/Risk,G4,2026-08-02 +DEC-049,DECISION_REQUIRED,승인된 PrimeVue theme와 디자인 토큰 시각 기준,runtime visual evidence missing,UX/Brand/FE,G0,D6 +DEC-050,DECISION_REQUIRED,OpenAPI→TypeScript/Zod 생성 도구와 버전 정책,tool not selected,BE/FE Architect,G3,S2 +DEC-051,DECISION_REQUIRED,Visual regression 승인 브라우저·viewport·허용차,runtime environment missing,QA/UX,MVP-B,S6 +DEC-052,DECISION_REQUIRED,모델 개선가설 보존기간·법무/준법 열람 범위,retention policy missing,Compliance/Risk,G4,S10 diff --git a/docs/v13_0/DOCX_A11Y_V13_0.json b/docs/v13_0/DOCX_A11Y_V13_0.json new file mode 100644 index 00000000..775bb8ee --- /dev/null +++ b/docs/v13_0/DOCX_A11Y_V13_0.json @@ -0,0 +1,90 @@ +{ + "file": "/mnt/data/work/KArtSell_Aegis_v13_0_standardization_complete/docs/v13_0/K-ArtSell_Aegis_v13_0_표준UI_지속모델운영_통합고도화_제안서.docx", + "counts": { + "high": 0, + "medium": 10, + "low": 0 + }, + "findings": [ + { + "severity": "medium", + "kind": "table_no_header_row", + "message": "Table first row is not marked as header (w:tblHeader missing)", + "context": { + "part": "word/document.xml" + } + }, + { + "severity": "medium", + "kind": "table_no_header_row", + "message": "Table first row is not marked as header (w:tblHeader missing)", + "context": { + "part": "word/document.xml" + } + }, + { + "severity": "medium", + "kind": "table_no_header_row", + "message": "Table first row is not marked as header (w:tblHeader missing)", + "context": { + "part": "word/document.xml" + } + }, + { + "severity": "medium", + "kind": "table_no_header_row", + "message": "Table first row is not marked as header (w:tblHeader missing)", + "context": { + "part": "word/document.xml" + } + }, + { + "severity": "medium", + "kind": "table_no_header_row", + "message": "Table first row is not marked as header (w:tblHeader missing)", + "context": { + "part": "word/document.xml" + } + }, + { + "severity": "medium", + "kind": "table_no_header_row", + "message": "Table first row is not marked as header (w:tblHeader missing)", + "context": { + "part": "word/document.xml" + } + }, + { + "severity": "medium", + "kind": "table_no_header_row", + "message": "Table first row is not marked as header (w:tblHeader missing)", + "context": { + "part": "word/document.xml" + } + }, + { + "severity": "medium", + "kind": "table_no_header_row", + "message": "Table first row is not marked as header (w:tblHeader missing)", + "context": { + "part": "word/document.xml" + } + }, + { + "severity": "medium", + "kind": "table_no_header_row", + "message": "Table first row is not marked as header (w:tblHeader missing)", + "context": { + "part": "word/document.xml" + } + }, + { + "severity": "medium", + "kind": "table_no_header_row", + "message": "Table first row is not marked as header (w:tblHeader missing)", + "context": { + "part": "word/document.xml" + } + } + ] +} diff --git a/docs/v13_0/FE_COMPONENT_CATALOGUE.csv b/docs/v13_0/FE_COMPONENT_CATALOGUE.csv new file mode 100644 index 00000000..be9f53c0 --- /dev/null +++ b/docs/v13_0/FE_COMPONENT_CATALOGUE.csv @@ -0,0 +1,18 @@ +ID,Component,Layer,Props_or_Type,Events_or_Slots,Accessibility,Required_Tests,Vendor_Boundary +C-001,AppShellLayout,Layout,product/environment/automation boundary,navigation/header/footer,skip-link/landmarks,route/auth E2E,Adapter-neutral +C-002,PageLayout,Layout,title/status/asOf/version,actions/summary/filters/aside/footer,h1/meta landmarks,responsive/state,Adapter-neutral +C-003,ReviewWorkbenchLayout,Layout,queue/detail/decision,slots,named regions/keyboard order,maker-checker E2E,Adapter-neutral +C-004,FormPageLayout,Layout,form/preview,submit,label/focus order,dirty/validation,Adapter-neutral +C-005,DashboardLayout,Layout,kpi/primary/secondary/alerts,slots,table alternative required,no-data/partial,Adapter-neutral +C-010,KsButton,Standard,label/severity/type/loading,click,button semantics,disabled/loading,Button port +C-011,KsTextField,Standard,label/error/help/model,update/blur,label/describedby/invalid,422/a11y,TextField port +C-012,KsSelect,Standard,label/options/error/model,update/blur,label/options/invalid,boundary/a11y,Select port +C-013,KsDataGrid,Standard,rows/columns/loading/selection,rowSelected,grid keyboard contract,large rows/filter,DataGrid port +C-014,KsDialog,Standard,visible/title/modal,update visible,focus trap/vendor contract,escape/modal,Dialog port +C-015,KsStatusTag,Standard,value/severity/iconLabel,-,text+icon not color only,severity matrix,StatusTag port +C-020,StandardStatePanel,Standard,11-state/title/message/trace,retry,aria-busy/status,state matrix,Adapter-neutral +T-01,CrudListPage,ScreenType,T01,slots,list semantics,filter URL/empty/auth,Layout composition +T-02,CrudDetailPage,ScreenType,T02,slots,version/as-of landmarks,published/expired/auth,Layout composition +T-03,CrudFormPage,ScreenType,T03,submit/slots,form error focus,dirty/conflict/idempotency,Layout composition +T-05,CrudReviewPage,ScreenType,T05,queue/detail/decision,keyboard review order,segregation/expiry/conflict,Layout composition +T-08,BatchOperationsPage,ScreenType,T08,timeline/records/reprocess/runbook,progress/status,retry/replay/duplicate,Layout composition diff --git a/docs/v13_0/JOB_CATALOGUE.csv b/docs/v13_0/JOB_CATALOGUE.csv new file mode 100644 index 00000000..607c7ff1 --- /dev/null +++ b/docs/v13_0/JOB_CATALOGUE.csv @@ -0,0 +1,25 @@ +Job_ID,Name,Cadence,Trigger_or_Precondition,Queue,Automation_Mode,Frozen_Context,Output,Primary_Owner,Secondary,Gate,Failure_Mode,Status +J10,OutcomeEvaluationRun,DAILY,market session closed and total-return data complete,q-evaluation,EVALUATION_ONLY,Dataset/Model/Config/Code/Contract,1/5/20/63/126/252 OutcomeObservation,Quant/Ops,Data/QA,G3,BUSINESS_HOLD on missing PIT/TR,TEMPLATE +J11,DailyScorecardBuild,DAILY,J10 due windows complete,q-evaluation,EVALUATION_ONLY,Metric definition/cohort versions,daily scorecard and alerts,Quant/Ops,Risk/SRE,G3,HOLD on sample/lag/definition mismatch,TEMPLATE +J17,DriftDetectionRun,DAILY,approved baseline and minimum sample available,q-evaluation,EVALUATION_ONLY,baseline manifest/version,data/feature/prediction/calibration drift,Quant/Risk,Data/SRE,G4,HOLD only; no automatic model change,TEMPLATE +J18,ChampionChallengerEvaluation,WEEKLY,same frozen dataset/cost/cohort available,q-evaluation,EVALUATION_ONLY,paired model VersionSets,paired comparison with confidence intervals,Quant/Risk,IndependentValidation/QA,G4,QUARANTINE on cohort mismatch,TEMPLATE +J19,FrozenOosBacktest,MONTHLY,dataset rights/hash/seed/environment manifest approved,q-research,EVALUATION_ONLY,frozen research manifest,walk-forward OOS artifacts,Quant/Data,QA/Risk,G4,FAIL artifact retained,TEMPLATE +J20,RobustnessPboDsrRun,QUARTERLY,complete experiment registry and OOS outputs,q-research,EVALUATION_ONLY,experiment registry/version,PBO/DSR/stability/cost2x report,Quant/Risk,IndependentValidation,G4,HOLD on incomplete attempt ledger,TEMPLATE +J21,ModelImprovementProposalBuild,MONTHLY,scorecard/drift/attribution/debt evidence complete,q-research,PROPOSAL_ONLY,all cited evidence hashes,review-required improvement proposals,Quant Lead,Risk/Architect,G4,no code/config/model mutation,TEMPLATE +J22,PromotionEvidenceReviewBuild,MONTHLY,candidate requests review and all gates calculated,q-control,PROPOSAL_ONLY,promotion-gate v1 evidence bundle,maker-checker review packet,Risk/InvestmentCommittee,Compliance/QA,G4,PENDING/HOLD; no activation,TEMPLATE +J23,ModelRollbackDrill,QUARTERLY,approved champion/fallback manifests and runbook,q-control,DRILL_ONLY,champion/fallback VersionSets,RTO/RPO and restore evidence,SRE/Risk,Module Owner/QA,G5,no real order submission,TEMPLATE +J24,DataRevisionRevalidation,WEEKLY+EVENT,approved revision lineage and impact index,q-backfill,EVALUATION_ONLY,before/after dataset versions,replay impact and correction proposal,Data/Quant,DBA/QA,G3,no overwrite; correction evidence only,TEMPLATE +J25,SourceContractDriftCheck,DAILY,approved source schema/license/SLA snapshot,q-evaluation,EVALUATION_ONLY,Source contract hash/version,schema/license/SLA drift evidence,Data Governance,Adapter Owner/QA,G1,BUSINESS_HOLD on unapproved change,TEMPLATE_DISABLED +J26,MarketCalendarCompletenessCheck,DAILY,approved market calendar and EOD completeness,q-market-data,EVALUATION_ONLY,Calendar/source/version,tradable-session readiness,Data/Ops,Quant/QA,G1,HOLD on holiday/DST/source mismatch,TEMPLATE_DISABLED +J27,EvidenceChainAudit,DAILY,decision/outcome/audit hash chain available,q-control,EVALUATION_ONLY,Evidence VersionSet,missing-link/mutation evidence,Compliance/QA,Data/BE,G3,QUARANTINE on hash mismatch,TEMPLATE_DISABLED +J28,ProjectionFreshnessCheck,DAILY,projection contract and watermark,q-evaluation,EVALUATION_ONLY,Projection version/watermark,staleness/rebuild diff,BE/Data,SRE/QA,G3,HOLD on stale projection,TEMPLATE_DISABLED +J29,CapacitySlaTrend,WEEKLY,approved SLO and volume assumptions,q-control,EVALUATION_ONLY,SLO/capacity version,capacity trend decision packet,SRE/PM,DBA/Module Owner,G5,WARN/HOLD on saturation,TEMPLATE_DISABLED +J30,ReleaseEvidenceAssemble,EVENT_DRIVEN,release candidate artifacts complete,q-control,PROPOSAL_ONLY,Source/build/test/migration/security/rollback hash,review-required release bundle,QA/Release Manager,Compliance/SRE,G6,HOLD on any missing artifact,TEMPLATE_DISABLED +J31,PredictionFreezeRun,DAILY,approved market cutoff before outcomes,q-evaluation,EVALUATION_ONLY,Dataset/Model/Config/Code/Contract,immutable prediction freeze,Quant/Data,QA/Risk,G3,HOLD on PIT/model context,TEMPLATE_DISABLED +J32,OutcomeMaturitySweep,DAILY,market session close and total-return/calendar complete,q-evaluation,EVALUATION_ONLY,Calendar/Dataset/Metric contract,matured 1/5/20/63/126/252 requests,Quant/Ops,Data/QA,G3,HOLD on TR/calendar gap,TEMPLATE_DISABLED +J33,SellReentryAttributionReview,WEEKLY,matured sell/reentry windows,q-evaluation,EVALUATION_ONLY,Metric/cohort/benchmark/cost versions,false-exit/gain/capture/delay evidence,Quant/Risk,Advisor/QA,G4,HOLD on metric definition mismatch,TEMPLATE_DISABLED +J34,CalibrationRegimeReview,WEEKLY,versioned prediction/cohort/regime evidence,q-evaluation,EVALUATION_ONLY,Prediction/Cohort/Regime versions,calibration/coverage/drift/regime report,Quant/Risk,Data/IV,G4,HOLD on insufficient sample,TEMPLATE_DISABLED +J35,ImprovementHypothesisBuild,MONTHLY,scorecard/attribution/drift/debt current,q-research,PROPOSAL_ONLY,Evidence and debt versions,review-required falsifiable hypothesis,Quant Lead,Risk/Architect,G4,NO OUTPUT on incomplete evidence,TEMPLATE_DISABLED +J36,ChallengerExperimentPlan,MONTHLY,approved improvement hypothesis,q-research,PROPOSAL_ONLY,Hypothesis/Experiment registry,review-required challenger plan,Quant Lead,IV/QA,G4,REJECT on unapproved change,TEMPLATE_DISABLED +J37,IndependentValidationPack,QUARTERLY,OOS/PBO/DSR/cost/repro evidence complete,q-control,PROPOSAL_ONLY,All promotion evidence versions,independent validation packet,IndependentValidation,Risk/Compliance,G4,NO-GO on missing evidence,TEMPLATE_DISABLED +J38,ModelPolicyDebtReview,MONTHLY,debt/incident/model register current,q-control,PROPOSAL_ONLY,Debt/Incident/Model versions,prioritized debt decision packet,Risk/Architect,Quant/PM,G5,HOLD on stale register,TEMPLATE_DISABLED diff --git a/docs/v13_0/K-ArtSell_Aegis_v13_0_φæ£∞ñÇUI_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx b/docs/v13_0/K-ArtSell_Aegis_v13_0_φæ£∞ñÇUI_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx new file mode 100644 index 00000000..1aea39d0 Binary files /dev/null and b/docs/v13_0/K-ArtSell_Aegis_v13_0_φæ£∞ñÇUI_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx differ diff --git a/docs/v13_0/PACKAGE_MANIFEST_CORE_V13_0.json b/docs/v13_0/PACKAGE_MANIFEST_CORE_V13_0.json new file mode 100644 index 00000000..d5f83884 --- /dev/null +++ b/docs/v13_0/PACKAGE_MANIFEST_CORE_V13_0.json @@ -0,0 +1,2514 @@ +{ + "package": "KArtSell_Aegis_v13_0_Core_NoLegacy.zip", + "distribution": "CORE_NO_LEGACY", + "created_at": "2026-08-01T18:32:28.241663+00:00", + "source_package": "KArtSell_Aegis_v13_0_StandardUI_ModelOps_Optimized.zip", + "excluded": [ + "attachments/**", + "stale PACKAGE_MANIFEST.json", + "stale SHA256SUMS.txt" + ], + "file_count": 500, + "files": [ + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/.editorconfig", + "size": 369, + "sha256": "f35bc6049060b59e664933599133dd3fa8d042434ac0200f67ce4416aac1f195" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/.gitea/workflows/ci.yml", + "size": 2541, + "sha256": "67d010885200ffc4aeedeecd118ad6c84d5c9f11e5cf8e7813dffce66ca0f8d1" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/.gitignore", + "size": 142, + "sha256": "456f6535fd54dcf2fff0031f31fe9206673bb18187be985877e83ba5e1bfa3ef" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/AGENTS.md", + "size": 5887, + "sha256": "159f7b0aa64357d56e665fd77e5066d6818686248070f4ac95458aadf7df4775" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DISTRIBUTION_README.md", + "size": 1056, + "sha256": "7542ebd573ded662e1c129a7950bf944a47c60e6a3c5f212f3b297cb32726f60" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DOCX_QA_V12_2.txt", + "size": 503, + "sha256": "d917950192b515a7736477b4a57711026debdfe596a6503d4001f6a38b1ee012" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DOCX_QA_V12_3.txt", + "size": 495, + "sha256": "1a2bf24001700357a5022f17ca169e0e9c1fc48d37e4af5b2ebff77c4450efe8" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DOCX_QA_V12_4.txt", + "size": 694, + "sha256": "dcd316fc70c0f5292009600aa815fc67fc8c5d7099a61f0e841bcfe135580fa3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DOCX_QA_V12_5.txt", + "size": 361, + "sha256": "31b7d42445993d1742fb9aa1f448367b450d8ed579c5fc0722655ad233435c41" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DOCX_QA_V13_0.txt", + "size": 716, + "sha256": "96588e0e245d371f4645affe4f24216c6f2d9f11e7a67a4d28c5580706ab9aa5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/Directory.Build.props", + "size": 427, + "sha256": "1b9316a55c61a41e2bea70fe860dc4cd6dc225b7506d8b25b9b764df97609e6e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/Directory.Packages.props", + "size": 1601, + "sha256": "ce5187f882c9b32002e8aaed7d2ad6ed076ec450ae85ccde1c8703806bcf016e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/FRONTEND_SYNTAX_VALIDATION_V13_0.txt", + "size": 41, + "sha256": "6def03419c8bf0217f90adc34c675e543501808735cc4da771d78acc9df7d545" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/KArtSell.sln", + "size": 4651, + "sha256": "db7570fb57ba130481ad22a58daa3288697e87be5720fd6e06a9c5662d8f6138" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/README.md", + "size": 3817, + "sha256": "353cd13909f2c1ace3b9b7419c7151e65191c861b6c94fc1af6854451c57fb08" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V12_1.md", + "size": 1248, + "sha256": "2165bfc06fbad044d0c9c20935de98c5b31c174f56afdce12f6ca15193be0d11" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V12_2.md", + "size": 610, + "sha256": "fec641183bd8280f5499db64dc6aaf5b30920aac3cebce82f1c56dee7344df3d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V12_3.md", + "size": 834, + "sha256": "c6ca453b2ce1754c9d3f788f808793562f6b8979fdec00b967e915ba04ab3c43" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V12_4.md", + "size": 1395, + "sha256": "98754b18b8ba071b1fa09643502f8fea0e0094b50c77515a3aa1d52bee26b041" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V12_5.md", + "size": 740, + "sha256": "b3f310ad185867a148df62429694fb13c2b0ce9c2300264978ac3a99c535ff51" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V13_0.md", + "size": 1370, + "sha256": "35b4946a192a04b127248cf32ba9d12e9b7dc2c48d73b339f5a254ca5f371a92" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RESEARCH_VALIDATION_V12_2.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RESEARCH_VALIDATION_V12_3.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RESEARCH_VALIDATION_V12_4.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RESEARCH_VALIDATION_V12_5.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SCAFFOLD_VALIDATION_V12_3.txt", + "size": 414, + "sha256": "cfb19b72d80f79fc1cf7b0ae6fb54b24db8c0b883ec312c549139ef7d5065628" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SCAFFOLD_VALIDATION_V12_4.txt", + "size": 414, + "sha256": "cfb19b72d80f79fc1cf7b0ae6fb54b24db8c0b883ec312c549139ef7d5065628" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SCAFFOLD_VALIDATION_V12_5.txt", + "size": 414, + "sha256": "cfb19b72d80f79fc1cf7b0ae6fb54b24db8c0b883ec312c549139ef7d5065628" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SCAFFOLD_VALIDATION_V13_0.txt", + "size": 349, + "sha256": "4833ec50b8916905181a334e49c0de85e96677f18c86fc13abd9437c6674e681" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SOURCE_BASIS.md", + "size": 1556, + "sha256": "eb17dcacd94d8207cc0712fb571341e2d4d56ac86d2d8b8b22574ccab144e878" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SOURCE_BASIS_V12_5.md", + "size": 880, + "sha256": "3acda947f45b7c26cc1b8a87a3ae7646de9a6058ae73bc56a95464566a8df168" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V11_1_BASELINE.txt", + "size": 1062, + "sha256": "4bd8f78683630e45d70443dc4816e193342bc7675a0eb24c8443dee1b18a939d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V12_1.txt", + "size": 1023, + "sha256": "193d6ef4580e5f617cbf92ac80fb6956d8b16c2d56be37638f49e620a30cbae8" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V12_2.txt", + "size": 1083, + "sha256": "017db182ab1a3d02e333964998d2320cae056aa0be4ad317c6b3b2b8e27e5399" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V12_3.txt", + "size": 1208, + "sha256": "17840549957551985e9d873456143f98e653492ee06a260b6e211582721da22f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V12_4.txt", + "size": 1300, + "sha256": "5511e64d441415f89faceeebb1ab899519521745768c64d6a81ac81e22e97abf" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V12_5.txt", + "size": 1013, + "sha256": "edfde4e295d1f80b169b8275877366a5c9342a71aecb4e4a016915e852fffb61" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V13_0.txt", + "size": 166, + "sha256": "b76e525ecfc20f9934f79f483f1fe509ac7f8f0c918a620cb1e7f7b6c5925ade" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V12_1.txt", + "size": 1978, + "sha256": "66f6b05facb445f83669d347ebd61a1b61afa256ac94fac6bcf0ccd8eda7e7a6" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V12_2.txt", + "size": 566, + "sha256": "fa8c07d66deda17d539fa3ae5f74093858b414b1f80c2999e7f3cea3058672fd" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V12_3.txt", + "size": 684, + "sha256": "3f8f7e4ac42253b1f3005d9efdf779f8ad7b960b8d35afae448e1d27a6382c1a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V12_4.txt", + "size": 979, + "sha256": "c195703d3c34168603f45d291d130f5d7c4410724203bb465ff98cd6c8aa762d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V12_5.txt", + "size": 784, + "sha256": "1113bb613fc804ed3770f163ec4561a05d02fe7d8a601102d7eb67f450778e02" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V13_0.txt", + "size": 1787, + "sha256": "dd22efa9924b13fa72e9b72b20728394f9f3725b82b4e2f3079931eaa21b7f16" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/README.md", + "size": 687, + "sha256": "e4d95a972d5a91d315202f27426deb59163ee9b3a843bef02cdec15eb142e9d9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/events/signal-decision-created.v2.schema.json", + "size": 1424, + "sha256": "28366a0b2d0f85493d39d440a1c754cb3f228207dc49365e7057d27b2f973776" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/metrics/outcome-metrics.v1.json", + "size": 1367, + "sha256": "d7fa0a9785ef984654dd5b85e82833de13423566b63b445c23f26827d4ebfcfe" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/metrics/outcome-metrics.v2.json", + "size": 2347, + "sha256": "632840aef35d519fb7bd7ef0e515f46d5e21f0492c85681192845776222cacc9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/model-governance/evidence-classification.v1.json", + "size": 925, + "sha256": "ecea3eaf29769083fe54f467985919197d8111ed4e7a45de0f5361fe2518de66" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/model-governance/promotion-gate.v1.json", + "size": 823, + "sha256": "f495ddef3cb3c408e0a259491384de40c93637c88c3bd2eb02094528378f3064" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/policies/sell-policy-contract.v1.json", + "size": 2167, + "sha256": "a269a0331b83c0f6ec108e7587de1d20c798036ff8d0c03d726cd854e73d8480" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/schedules/execution-assurance.v1.json", + "size": 1354, + "sha256": "0fcd3ff9940b4f8d79c3bc2d4d6c3909b246279a2e369a2aeff456fe7f7748e4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/schedules/model-operations.v1.json", + "size": 1930, + "sha256": "c484a4296f43166b88fa6d672892ec058a3b227afbf05887e598322852d083aa" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/schedules/model-operations.v2.json", + "size": 2691, + "sha256": "4a75e80ffc6919f5e83d838576c902fab96de68c8b34df474b980516f248c546" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0000_building_blocks.sql", + "size": 1348, + "sha256": "0247e5a9723d72af74ad0c585baf14d7ff64d08956796154e1aa43f7e0893f66" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0010_signal_engine.sql", + "size": 2359, + "sha256": "597a0caf9b0a4000143ea983448a5287d945f4f5ee3fc00d6191314a8d642b35" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0011_signal_engine_hardening.sql", + "size": 981, + "sha256": "3f441220471728dac654d53f5e398e268488f9ff12a208a46f6d06d392058bc7" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0012_signal_engine_integrated_hardening.sql", + "size": 6314, + "sha256": "1322a701291d2a68f6172cd0d363296afa32df724fce2965314e59ebd2af98c5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0013_execution_readiness_building_blocks.sql", + "size": 2613, + "sha256": "42035f15d92e93f24fd47cc9fd4f918c1bcd99e3188b20a056dc3499ff0cd9b1" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0014_signal_engine_lot_weight_and_policy_trace.sql", + "size": 3253, + "sha256": "af9366067f441b5b35b8702fa905579de914e5f972a7d1f26ab8fb90c8e5fc28" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0015_signal_engine_semantic_versioning.sql", + "size": 5393, + "sha256": "ae063fd73907d11c533d07510c9b48d46cd5a464e903086678e930e97a73ded2" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0016_continuous_model_operations.sql", + "size": 13586, + "sha256": "2b473bdb80bf51adf781b439ff66e9975e60a970b89b4ca8b61bc5a50699dc36" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0017_execution_assurance.sql", + "size": 8166, + "sha256": "322294527e29a78bec818eaf8090dcfc8c42ae90ea348452e34cfbb3c9f56527" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0018_v13_model_feedback_loop.sql", + "size": 6347, + "sha256": "ed849cc5b4bc28aace3004016b6fdca6bffc47cbcfb895336ae17b575bd1b9f4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docker-compose.yml", + "size": 280, + "sha256": "9550673df5a1373ae78838a43863c7decf29cb53dcfc298b698944f2d1040c78" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/00_EXECUTIVE_PROPOSAL.md", + "size": 2815, + "sha256": "5f3c881f14cacb03e78741cc313404aafcf4e6f861a10aebc4ff3aed59a29c65" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/01_SOURCE_AUDIT.md", + "size": 3621, + "sha256": "ad3c6f6d86e7e37a0037e3e401b9a0b581f6396471b04d536a7193920063c35e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/02_ALGORITHM_REFACTORING.md", + "size": 3181, + "sha256": "fa6216fe2b1a67a6cd6d0e677932450def56db4e920a7ad782ff98e4da87ff7a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/03_ARCHITECTURE_BE_FE.md", + "size": 2745, + "sha256": "1733fecb7567036fe0d6b5b963fa27d199c25b5d173fc3ba0ad1aceba389743c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/04_WBS_V11.csv", + "size": 5810, + "sha256": "8cbfacfc4e34bdf93af561ce1af1ecad51c351960d90ff2eb645635ff6d4386b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/05_TECH_DEBT_REGISTER.csv", + "size": 1301, + "sha256": "949dbf58bdf8d0ac6dc4be9e65a80b8fcef02702f2d527a2dba724eb0c59c972" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/06_VIBE_CODING_GUARDRAILS.md", + "size": 1641, + "sha256": "1d4b119e21b175fff9e4ff4ee5e054f55ac27a1e96c9c12ea1602d25212cbcee" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/07_VALIDATION_GATES.md", + "size": 1281, + "sha256": "67d2096bb9010ef4950b84ee34c277d64e967978eb238ce9bb6927c29d14f2aa" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/hardening/00_STRATEGIC_HARDENING_REPORT.md", + "size": 12702, + "sha256": "0a4fd514843232270b3823b4eaa4ee526b03e626831f4ca58261cc7fecaf7345" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/hardening/01_ARCHITECTURE_FITNESS_FUNCTIONS.md", + "size": 1297, + "sha256": "1e9824baf092631ebc9e03c5b6b7e082c5991681718e956207429fb0ba2bf4a7" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/hardening/02_ALGORITHM_CONTRACT.md", + "size": 1215, + "sha256": "5f775cf9fe110be277bb8a8bc111b1b1302506fe6eab7e075f42065fea9ac8d3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/hardening/03_WBS_DELTA_V11_1.csv", + "size": 10861, + "sha256": "d238a8bb806997b4ceb703cb737c6e383e01b1ea869476bfa08e914d0277d14a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/hardening/04_TECH_DEBT_REGISTER_V11_1.csv", + "size": 2801, + "sha256": "e469c0dcf33fcdb1816837887c6ee6afa772f5746619622b933ccfbab8e804dd" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/ADR.md", + "size": 213, + "sha256": "8990a1cd00f07e5753cbdcb566a497e3fbce5a1843067f782366745389f7ced5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/AI_CHANGE_CHECKLIST.md", + "size": 517, + "sha256": "e410c897e85ddd7771bf4bdd68d043737cac34b718021cca8fc4f4d092da87c2" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/DATA_CONTRACT.md", + "size": 328, + "sha256": "029fc8e75ec1b69fe44579c9ba229acaeb6a8f99b7006bff0b70cfcbabbc54cd" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/FEATURE_PACKET.md", + "size": 419, + "sha256": "2e9f3f43a6c4988f815d31c736d39910e98893566d63bc1ea9a0a24cbff84b3a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/IMPROVEMENT_PROPOSAL.md", + "size": 539, + "sha256": "48bf43f72416f19a8ac8b17d71c48783fa1d7f7baa97993375912e4e457ac4d3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/MODEL_CHANGE.md", + "size": 355, + "sha256": "e350cd732f504910a1d734f4734dfe7e7e1e75b933d1a35b2b641833fa9db786" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/MODEL_EVALUATION_EVIDENCE.md", + "size": 603, + "sha256": "a7b73e7a40234624234cf27cb21e0ab4cd96073d226f3a90b7a7c5ef6ee5e5f5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/MODEL_OPERATIONS_RUNBOOK.md", + "size": 454, + "sha256": "93b7bc71ff76273b2b6a1a480bfb419872c4604a8c63e5a5ed9ded86b6f8a589" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/RELEASE_EVIDENCE.md", + "size": 357, + "sha256": "3373a21328baa61a7af256ca38975c3a1f01a4f05f0733938e3c91e771ce146b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/RUNBOOK.md", + "size": 213, + "sha256": "3bcec4538808b77feaf0aadab4ad20864c2d1e6330717fb3d98f85c7be01d059" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/SLICE_SPEC.md", + "size": 391, + "sha256": "31ba947101b85f8a43c1376e9e2d8290194fd9ed3db53df09493d83b8694545f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/TECH_DEBT_ITEM.md", + "size": 180, + "sha256": "8e1083cf3d55450b1a39ba10efc45e99c28866a68a81ca3444730a56d9353ecb" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/TRACEABILITY.md", + "size": 178, + "sha256": "444fe99b4a8bdb7cf8d4267580bd5fddbb80bf0171665e319b1e04739ea94db6" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/00_EXECUTIVE_INTEGRATED_PROPOSAL.md", + "size": 4219, + "sha256": "1826870263e000902b0cc6f604ad9a4617baf880bf5bf27974cfffb379f3c1b3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/01_SOURCE_AND_GAP_AUDIT.md", + "size": 3251, + "sha256": "3e611a58c4232d911f8b2f0b0ef97f1faf7ada9db421a761fb4a34f68bdc9111" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/02_ARCHITECTURE_STANDARD.md", + "size": 2693, + "sha256": "98ed6dde35b9e9750d19eae71de9d8979b05434b830ebb009afa2d7477ba3105" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/03_ALGORITHM_AND_DATA_CONTRACT.md", + "size": 2779, + "sha256": "7fdca2d13b58e93e21697ac32ebe6ea7332c2d6242377660ca4ab66f85632476" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/04_BE_FE_COMPONENT_STANDARD.md", + "size": 2112, + "sha256": "ddfb545d33e973648546485bd4c86ac7aa4958cf34c98c3520975f10c8d16184" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/05_VIBE_CODING_AND_HALLUCINATION_CONTROL.md", + "size": 1773, + "sha256": "5bdae90c9d5cca4310c6abfd78b2fe1e3e1e0f5e51bfd7b63b979d2f09bd25b0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/06_DELIVERY_GATES.md", + "size": 1516, + "sha256": "bea750cf65879d4e84b3bfd60b8f50a2ad9bf0fcac2e2d756f0e7359bf5387d4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/07_WBS_MASTER.csv", + "size": 30625, + "sha256": "3477c3d239a6a4f66b6a08aa377969b85895268d4d7f09dcea43b68a63ae0689" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/08_TECH_DEBT_REGISTER.csv", + "size": 2709, + "sha256": "3c2eef83cb8de38158e6518ec7c2b372afe76581f1ebe2806cf4008ab6d1c79a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/09_TRACEABILITY_MATRIX.csv", + "size": 2001, + "sha256": "bf50e165191c9c31f33fce29da4f67c80b1a40a9fbfd96230419659313ad88f1" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/10_DECISION_LOG.csv", + "size": 725, + "sha256": "d1feec7f28d32fc3ca2adccb741a6c237c1a3401dd3a0c88c177f6a1d5c3fe8f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/11_20_DAY_RESTART_PLAN.md", + "size": 837, + "sha256": "38806060738e7ef0345db8e2f187c9ab65080969d848b1185af89b6220e40857" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/12_TEMPLATE_USAGE.md", + "size": 1356, + "sha256": "5dc8734f6980e63d5d69338241a9d5b36d502d574482b8a0c133de14674e310f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/K-ArtSell_Aegis_v12_φå╡φò⌐Ω│áδÅäφÖö_∞ïñφûë∞á£∞òê∞ä£.docx", + "size": 54732, + "sha256": "62845eaf5382ed78e6b6065f3e95c4af9cd87f71bc418bf0077b68e727fce832" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/SOURCE_COVERAGE_MATRIX.csv", + "size": 528, + "sha256": "d995ab9382f51286383d2cebd9c82dc8e6095f417af79cf7a115ed2ca0a145e4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/00_EXECUTIVE_EXECUTION_PROPOSAL.md", + "size": 2828, + "sha256": "60422f75964e5db2539b64f5ec04826a835919724a9c08a636566544c2e4b8f5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/01_SOURCE_COVERAGE_MATRIX.csv", + "size": 2241, + "sha256": "05c73936ad859ec66698cd745b3be4bd8bc642a4acf61c4396d169dd8e46a528" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/02_STRATEGIC_ARCHITECTURE_AND_SOLID.md", + "size": 1981, + "sha256": "2cf720645ae6b3d616668ddee566149cc4b96e698ca1a3c44d15c415d4d4e0c7" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/03_ALGORITHM_GOVERNANCE_AND_CONTRACT.md", + "size": 2369, + "sha256": "dce7ef1c369da55427cbb082a6972dc048e3b664130b068c9792315e371fb1ab" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/04_DATA_INTEGRITY_NORMALIZATION.md", + "size": 1848, + "sha256": "0b302657f300c4cf25a4a2542a9635ef71a9e18a8e17cf1c0415cd95276fdf2f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/05_BE_FE_JOB_COMPONENT_STANDARD.md", + "size": 1615, + "sha256": "cb28fafaafb10e462cee3f4e4b1e7a68cf65b6d64a37d5f8c9d1fd8ecdbc02c4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/06_SLICE_CATALOGUE.csv", + "size": 5390, + "sha256": "a3209ea8c8ed064fe22b79e320d5d56705b2a3c64cc6dcecc0f5d945fd795d11" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/07_DETAILED_WBS_MASTER.csv", + "size": 85515, + "sha256": "cdc466349eb6bc3949fb481d8a885ec304f46fa6ec886b60ee66277f228b2dc2" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/08_TECH_DEBT_REGISTER.csv", + "size": 4012, + "sha256": "333beee330da6289076674ba3814eb9a6f3db111c549f51583e49a3afcde2843" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/09_TRACEABILITY_MATRIX.csv", + "size": 3847, + "sha256": "eb24a3d8265a5b96268f363a116ab72bd5cbed6e6a4b5b604d5454450b2978c0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/10_DECISION_LOG.csv", + "size": 1496, + "sha256": "f50f0feddc870733080dcb2b18de3b2247aa8ec95df91576f7b0a5240d8fec59" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/11_VIBE_CODING_HALLUCINATION_CONTROL.md", + "size": 1250, + "sha256": "80d867db058b60503ba6cb584f952020f9388feeead89506868de914b678f0a9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/12_PROCESS_SIMPLIFICATION_AND_STANDARDIZATION.md", + "size": 1403, + "sha256": "6955334ba5cee3723454936a5ede79a0c471a06d2a09ef872949eefbd80e7699" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/13_GATES_AND_20_DAY_RESTART.md", + "size": 1204, + "sha256": "27a0f5c997fdf8c77f65071bdfcb252d58b439996a3a654c69d758ea4179d966" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/14_PACKAGE_CONTENTS.md", + "size": 723, + "sha256": "2cac8b3632b0a14318d62ba6d93a9ea099ad647cb6935da8e4c907ad7b58bed0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/K-ArtSell_Aegis_v12_1_∞ïñφûë∞ñÇδ╣ä_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 64063, + "sha256": "eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/VERSION_COVERAGE_AND_SUPERSESSION.csv", + "size": 780, + "sha256": "df2a3d8b2f4ec583554647fbe497a9479657c4a18a641a26bc6875bafe803d65" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/00_EXECUTIVE_STRATEGIC_PROPOSAL.md", + "size": 3467, + "sha256": "6539b86410feee04c09c248679b9c5fc82477dea4a76b9aa2768d40649519615" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/01_SOURCE_COVERAGE_MATRIX.csv", + "size": 1443, + "sha256": "e5483c5c0585d2774d75237e2e19a4557387e0feb5dfca00f39894177a40be84" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/02_ARCHITECTURE_REFACTORING_STANDARD.md", + "size": 1949, + "sha256": "225698b05dc81508d0d3017db48ac3c267a4f32517c8659cacdf23e7ce586010" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/03_ALGORITHM_SELL_REENTRY_CONTRACT.md", + "size": 2532, + "sha256": "b5a0a4b4bd77c23fbd2be28ca844f7094ca8685d83533fd77759006b803443e6" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/04_DATA_INTEGRITY_PIT_LEDGER_READMODEL.md", + "size": 1870, + "sha256": "71c5d215fc5905d2a7eff7b2005bc08d8142e25ea046ca54cbcdec0e103fabce" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/05_BE_FE_JOB_IMPLEMENTATION_STANDARD.md", + "size": 1847, + "sha256": "1a5e8b0f65e6fc9cb20c61187a25ee27759a4f31aa43076ac6bff127ec4abfc1" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/06_SLICE_CATALOGUE.csv", + "size": 6942, + "sha256": "4dc50fd77bd7528f2c215d9aa3fc6528838db6578a7202aa7296de88dc022e33" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/07_DETAILED_WBS_MASTER.csv", + "size": 94737, + "sha256": "fdd99b4043b4db30f13f88eae2fffda95c5753eb15a86b0e903b342bb1892713" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/08_TECH_DEBT_REGISTER.csv", + "size": 5472, + "sha256": "0350c0158bac9d71ca47a110684f3b90820f44995cd57c922145362f4d0efc07" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/09_TRACEABILITY_MATRIX.csv", + "size": 4329, + "sha256": "2e0ac20322760e79397f0068eb7bb9ac63b8462e275565372fac85679245c1cd" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/10_DECISION_LOG.csv", + "size": 2385, + "sha256": "524a34a79401942890fdae9309405464bdb7223234bf3aee1ee5efa4f9d622c9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/11_VIBE_CODING_HALLUCINATION_CONTROL.md", + "size": 1055, + "sha256": "e4e03c7cedac9da39ed47f2fcd1599fe290eb578add8e06fe5111c29f61c7eb9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/12_GATES_AND_20_DAY_RESTART.md", + "size": 887, + "sha256": "a7610a7c07dc514edb48f5a9172c0aa73daecf57b4d28470c1ea9cb9d7de244c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/13_REFACTORING_BACKLOG.md", + "size": 993, + "sha256": "8e9da021d11e263cf68d427fd2eb825a37e0ba7f414b168a823310f8aecbba1d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/14_PACKAGE_CONTENTS.md", + "size": 748, + "sha256": "7ec54578a0cb3063f00f5beae7753bf12a04a6cfd6c85389373328102c79b85b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/15_VALIDATION_MATRIX.csv", + "size": 954, + "sha256": "1a15044cf96b66e5c72d65af02cd6c5f55bc796342e2cff8272d764022bab601" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/K-ArtSell_Aegis_v12_2_∞áäδ₧╡∞áü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 57681, + "sha256": "11aea457b347d987e7a0349bbbfd3f74f9fe9c7bc95ebe46f75a41568c82d56b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/00_EXECUTIVE_DELIVERY_HARDENING.md", + "size": 2205, + "sha256": "e961de3153b6f35789865c188671c154a729c50fd60aa84b5c7deaff7cdb139a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/01_SOURCE_COVERAGE_MATRIX.csv", + "size": 1309, + "sha256": "784b776078be598424c81522896b9570ac256619e4965dac8e4f59c5e79810db" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/02_SOLID_REFACTORING_AND_COMPONENTIZATION.md", + "size": 1139, + "sha256": "ffbcd5189a47ecffdf67d6e78e7ecfdb3d2c414bcdd115872cb72ee814f5b50a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/03_ALGORITHM_CONTRACT_AND_DECISIONS.md", + "size": 1155, + "sha256": "c1a3c2896031eece98519a5510ee0db65e78d6c0746c2d8c7a03b77203c49505" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/04_DATA_SEMANTICS_PIT_AND_HISTORY.md", + "size": 1021, + "sha256": "9552b374694fb92bb23e4dfb1c4d1c6d68b9d86642b9cd638a439d99a0d3468d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/05_BE_FE_JOB_DELIVERY_STANDARD.md", + "size": 897, + "sha256": "d33c98280f2b3602a0e6853798fdfae992c216dc69176951e9a37e77db7b4788" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/06_SLICE_CATALOGUE.csv", + "size": 7040, + "sha256": "626d6ac32fe7786721fb02806aefc22a3c74576c45fc601dae53baa88d89fb05" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/07_DETAILED_WBS_MASTER.csv", + "size": 101379, + "sha256": "e9c447138c8be409bd05bf67c2d874244c857216b38ee6aa27d468e5d25c0706" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/08_TECH_DEBT_REGISTER.csv", + "size": 7136, + "sha256": "ca1babb3fa0881ed0d7a867531fec55dfc54ecc3bda4d6d352804101ec782215" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/09_TRACEABILITY_MATRIX.csv", + "size": 4813, + "sha256": "de9617ded8565f8db9eed4c4da76617b6118661123ee5327ee9760de84e541c4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/10_DECISION_LOG.csv", + "size": 3287, + "sha256": "e7170a1aebcb84292a15da3776b3d43c82b9623da5ff95463af4df61ed68e8c2" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/11_VIBE_CODING_HALLUCINATION_CONTROL.md", + "size": 637, + "sha256": "4073e040852d95bbbb018cf0cbf0872bca28750202758b3f308a790f27db2403" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/12_GATES_AND_20_DAY_RESTART.md", + "size": 725, + "sha256": "d97289545e0d1c4dfcb2519d9eeeb2dbc3aad5408d07f9b6f6c04c6830dcb2a7" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/13_PROCESS_SIMPLIFICATION.md", + "size": 453, + "sha256": "8120c5e72885f8fc8b5fed2c22ecb2036cad2fdb76954db0f2cc661de7409047" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/14_PACKAGE_CONTENTS.md", + "size": 485, + "sha256": "373d97f174c17842e7106233e1e388a744da779fcc92b74828fecceaa6836e56" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/15_VALIDATION_MATRIX.csv", + "size": 1020, + "sha256": "0d0b5234959a247e9c44ef5e46375b6fde6dfb0aa8d9dbc7c1cc05286b406897" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/K-ArtSell_Aegis_v12_3_∞ïñφûëΩ▓Ç∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 50067, + "sha256": "0923df8b0e3b85a39c5c88fa9d4603df8719cc7ddad0ee3a23333ba193be8c7f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/00_EXECUTIVE_CONTINUOUS_MODEL_OPERATIONS.md", + "size": 3979, + "sha256": "cc3e17bc4707620daf7385235462d2aa90d76352fa80912d59abb497579d4860" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/01_SOURCE_COVERAGE_MATRIX.csv", + "size": 2132, + "sha256": "a3b3c953c5fc115988f55e35c58efc8065c3c1a386f5675548753241bee159e5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/02_CONTINUOUS_MODEL_LIFECYCLE.md", + "size": 2807, + "sha256": "2120975b2fd31b9a105a58d95915facf44ed94448bb8b1736f4a9278728f2080" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/03_SCHEDULER_AND_CALENDAR_CONTRACT.md", + "size": 1845, + "sha256": "8f0c46a759b78535ed52146211a45f4fc41fce20da7bb1e23fb5a7e7a411252f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/04_ALGORITHM_IMPROVEMENT_GOVERNANCE.md", + "size": 1795, + "sha256": "3a8f5ce6d90f9c1f405c556975edadd2496d42d5762dcabdd8c9e9ffa1e8661b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/05_DATA_EVIDENCE_AND_HISTORY.md", + "size": 1657, + "sha256": "f72c9cdf547e9d17fdcf0bf4adada9afeb3c7263d2fb024481b9397bdaefafe2" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/06_BE_FE_HANGFIRE_IMPLEMENTATION.md", + "size": 2263, + "sha256": "4b06305104447624798e1dd7d39d2f2ff2739e6f791e0df73f251e20e89ff18b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/06_MODEL_EVALUATION_METRIC_CATALOGUE.csv", + "size": 2154, + "sha256": "d51fdeb497677468deb123e5cb08c1c5e686b5573fc82355c0fa71cb42d7639e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/07_SLICE_CATALOGUE.csv", + "size": 7275, + "sha256": "9a18cfa72ace61e49255d8d6f45944150683de0b670aeba630a29e504d0c7521" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/08_CONTINUOUS_MODEL_JOB_CATALOGUE.csv", + "size": 2555, + "sha256": "f17d243630c1c8a2d697998fd4fbb6cebccb74b6777b77b3ea412e3ea6f2b56a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/09_DETAILED_WBS_MASTER.csv", + "size": 116546, + "sha256": "ad45b65485e2bfa760228d9c703363b6afd3e0f14211b26e42b7da7c640a4c92" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/10_TECH_DEBT_REGISTER.csv", + "size": 9663, + "sha256": "5c1e8ae9e4cf10c08489f1e137e8e0ba9b4c2f1a5f4eb5c1ca268a5cb14594bc" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/11_TRACEABILITY_MATRIX.csv", + "size": 6527, + "sha256": "94712a972e22aff046811daff95b5fc6d4e91f2d125a50e00c52edfec7594e3c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/12_DECISION_LOG.csv", + "size": 5240, + "sha256": "a1059bb6f008b85de0ff3c0d44c0c49f52e1153270989480f7f2f1b325a15213" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/13_VIBE_CODING_HALLUCINATION_CONTROL.md", + "size": 1069, + "sha256": "d5e05db9c45e1cdfca41b60bbaa7aa1a2ae5149598a55427806304e9127c5f68" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/14_GATES_AND_ROLLOUT.md", + "size": 1172, + "sha256": "33eb6122773f6cf65a88cba3b845b4078b9eba521d299ae4693bf48ee3e08158" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/15_PACKAGE_CONTENTS.md", + "size": 1144, + "sha256": "77aaf46e95092076d58e0e1eb8949d8096975659171a1b8873f49e4f2894c4ea" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/16_VALIDATION_MATRIX.csv", + "size": 1254, + "sha256": "df1e334429741f4b231755b5a12cfe718cf350cc51f0440e545374541de604aa" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/K-ArtSell_Aegis_v12_4_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 52729, + "sha256": "e9208fa849caa6576abb3ab857da15219444925cb988ec17dfb01e41c368a148" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/00_EXECUTIVE_CRITICAL_REVIEW.md", + "size": 3440, + "sha256": "3c82e7f58adc9a73f9825c9370b806f7d13d97da006725b863fdedf506c5e16e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/01_SOURCE_COVERAGE_MATRIX.csv", + "size": 745, + "sha256": "9d0e1de97823c4e0341c71103c4d63ba5ae05bf4252cae34fa2422fd08acb63d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/02_ROLE_BASED_BRUTAL_AUDIT.md", + "size": 4524, + "sha256": "fd6af0eb082f93fa6a34d261f72df6c152ff7d95991c848c008e4d73de00ad63" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/03_TARGET_ARCHITECTURE_SOLID_REFACTORING.md", + "size": 2072, + "sha256": "af33d02d0d7d4c002ef3e47e28f8970302e417e14ddf81364bd827415a95bdc4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/04_ALGORITHM_MODEL_EVALUATION.md", + "size": 2442, + "sha256": "0918723ab1072140822e295153e86af537ee77a8aa1a23c2f418825ed9ed128d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/05_DATA_DB_INTEGRITY.md", + "size": 1989, + "sha256": "13c1ba13519ffd0828529c9460ddf99755bc8e1f52b4db0c69e974f72dcb1085" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/06_BE_FE_HANGFIRE_IMPLEMENTATION.md", + "size": 1956, + "sha256": "0629150d6cc85d20d4707c4a91834c88e07e46d03cadd3eb2dee7adad4306e93" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/07_QA_SECURITY_OPERATIONS.md", + "size": 1492, + "sha256": "cc90ccbafefabfebf5b7fe91cade2269a9dec75bc38aef253c626d7a9b63d01b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/08_PROCESS_SIMPLIFICATION_VIBE_CODING.md", + "size": 1303, + "sha256": "1670c8eba6c626f347c5cc461d415b608531a6bc41dce816055641102cfe1a05" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/09_ROADMAP_20D_90D_36M.md", + "size": 1457, + "sha256": "a0b10b3c6f2b61ae803f939900060359d400a9f775767c205abb0275ccf237c1" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/10_DETAILED_WBS_MASTER.csv", + "size": 131625, + "sha256": "25e825092a9efb87f4e239e49ebe11901c1d4bd593afd41043127c7981ef47bf" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/11_TECH_DEBT_REGISTER.csv", + "size": 12167, + "sha256": "32feff83fb421e661c17e5a0da6a9189aaaffbb19e1bdda3e0ee9de7feff2a6f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/12_TRACEABILITY_MATRIX.csv", + "size": 8591, + "sha256": "ee1337654db1046579be2f5ac0ca93b1a3cf486f9d6e6e7c7ec06df5383a8795" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/13_DECISION_LOG.csv", + "size": 6707, + "sha256": "9bb879bc462d056b410d18ff79f3fbc0e98905d74234a88597dff051301ac46f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/14_PACKAGE_CONTENTS.md", + "size": 862, + "sha256": "50d7a24ed8e7f7a3f85151fc3414fc5466e3261835be5e8302fbd50d5229047d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/15_JOB_CATALOGUE.csv", + "size": 3976, + "sha256": "86cdce40230fb7fcb2082fbc8ea1321260cc532c5878cfa8a50d594233aa2b60" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/16_RACI_MATRIX.csv", + "size": 1238, + "sha256": "b411338ae2c2216979f2340005bb15afbe9c446c737ef51c9015f4d983f92259" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/17_RISK_REGISTER.csv", + "size": 2068, + "sha256": "562ba6c1073dea33f186efb23fc77f718708c2c3339fe6f57dc6921e6cdbea1f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/18_VALIDATION_MATRIX.csv", + "size": 1057, + "sha256": "4f4de90125f8b32938a6cd51dd674369f1d92833e6dd092ce3beef0deae3046c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/K-ArtSell_Aegis_v12_5_∞ïñφûëδ│┤∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 62043, + "sha256": "751d9509524ff171d57805fb9c26a077e03b2e5e28d6651ef367565f49ef74d7" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md", + "size": 2662, + "sha256": "995b9365b2eefafbe4c237d903a2501eb747a5981eddd1c66fd2a0da1aeb0a7b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/01_BASELINE_COVERAGE_AND_NON_REGRESSION.md", + "size": 744, + "sha256": "bd1d9384996b4d3c9a8b659d426ea7c184c5b143a4aa80a651c4ac9497768338" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/02_FRONTEND_ADAPTER_DESIGN_SYSTEM.md", + "size": 1515, + "sha256": "b971aa49e0c5d7e41881f457993ccfd18a2b7bd8e6d6debdcad75b0cbb638e2a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/03_STANDARD_LAYOUT_AND_SCREEN_TYPES.md", + "size": 1383, + "sha256": "815f6b75d6bbfeccf46549ade300fa59fbce50081b73ee088cb06c6fd7d67c4e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/04_ALGORITHM_AND_CONTINUOUS_MODEL_LOOP.md", + "size": 1979, + "sha256": "efc1539dba04ec857830ad96a11b9d173e165e4dcc89f849e3d9f83dfa4a772f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/05_BACKEND_DATA_HANGFIRE_STANDARD.md", + "size": 884, + "sha256": "6af961b2b157adba4f8492439fb71ba26762cf5d80289badb03d49805544d9ca" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/06_ROLE_BASED_BRUTAL_AUDIT.md", + "size": 1175, + "sha256": "78011a7f196b5ea9b76948d0ef4580d22fed8ddb6e6f5f286913e4f1295a1481" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/07_WBS_AND_GATES.md", + "size": 934, + "sha256": "d79bedcfc3e70d2d2e18655d5aaf878fef8bb22d640b2d5669482582b2d01f8d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/08_DETAILED_WBS_MASTER.csv", + "size": 149804, + "sha256": "e274bb8ce9215b5920abeb014d9fb24f83bae8a3bdb9db4d8c209b6c897473aa" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/09_STATIC_VALIDATION_SCOPE.md", + "size": 790, + "sha256": "8c5e76412849ed51d3efeaf48fc6fb2dcfab8dec1bf48833d22ffe5b6ce7ee55" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/10_PACKAGE_CONTENTS.md", + "size": 834, + "sha256": "a59f463438a9b4f06c21e9c17d3811e79e24754a0a99267d4963cee9eb494895" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/DECISION_LOG.csv", + "size": 7774, + "sha256": "96fdf4401916d0afdb7f31505045c8ea8c41af6131a1654d7d9e2651faba350c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/DOCX_A11Y_V13_0.json", + "size": 2484, + "sha256": "03652978a3f69136d6bfbe4abc9ac4c3e2f093030bd8eb01a13c4f2d8b580d91" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/FE_COMPONENT_CATALOGUE.csv", + "size": 2101, + "sha256": "9ad930dad5e42406801383c669638db22826916ce08db75d8a9ada987ae83e7c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/JOB_CATALOGUE.csv", + "size": 5913, + "sha256": "ebea0d84107c87249b9f4f6874c994161af13fde7dba7cee0e77bcad34b32247" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/K-ArtSell_Aegis_v13_0_φæ£∞ñÇUI_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx", + "size": 59675, + "sha256": "8914f96178d545c60f7dad41a2042ecb1f8b0ec9287f95984972e43b34d93f37" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/SOURCE_COVERAGE_MATRIX.csv", + "size": 994, + "sha256": "e31f9b10829a4ab0b77e230d4b47b62c6964114011e60fd7aebcd6d1cba13dc7" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/TECH_DEBT_REGISTER.csv", + "size": 13821, + "sha256": "7d0353f540df528e715cf1c5659185a20bdcb543fcfca1badb2c0181d659b2d9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/TRACEABILITY_MATRIX.csv", + "size": 9258, + "sha256": "9d56793b54f9cf99d16daa4a77e84fb9fb5acb09e3c851a158e41c94c07ccec8" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/.env.example", + "size": 117, + "sha256": "b7440e26816e375d3f986e122a864213622322840567cbabed4d42e0e959b903" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/LOCKFILE_REQUIRED.md", + "size": 496, + "sha256": "6be1406c5d08027727363eb929ecdad5c67a041aee70a67dc7bd2c1bfc448367" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/e2e/research-boundary.spec.ts", + "size": 321, + "sha256": "1affa593f7f9c98256969f121c42127537892e71e26f31c8c6313fd1774c583c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/index.html", + "size": 294, + "sha256": "7a4ce2b77f1038902f997dda98d95ac94893207ba01bd12808843dc763ef5c94" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/package.json", + "size": 855, + "sha256": "ffe4c78a210ad972222c196b2b31ae816aad02b490e2ec9b0ea9e8581c40569b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/playwright.config.ts", + "size": 305, + "sha256": "b041e6e193829c6d40eac7465a49260832936efc0c9f1c8230f7b6614b7c54a9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/App.vue", + "size": 818, + "sha256": "b31bd056c6fbabd70b6b76957c376886becbb03f083703a8fb6da07a11f4331e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/app/queryClient.ts", + "size": 538, + "sha256": "de582e44c980fafd81ca884e0d20c364be43b4d18c6a70fa6dced78d5459a27c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/app/router.ts", + "size": 1033, + "sha256": "f0cfaa57644768bfde5c32389b8edc438b5cdd420d5e7d35309832338dcb0d55" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/design-system/base.css", + "size": 1198, + "sha256": "1171977cc9f39a2e9b71a32582115c574eeb582cd46ef122cecd07c43f787aed" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/design-system/tokens.css", + "size": 1288, + "sha256": "1d2344ab9e61ff06f34ff20d08147e9fb75b02245f0d0d8211e66dc8f2672a34" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/env.d.ts", + "size": 38, + "sha256": "65996936fbb042915f7b74a200fcdde7e410f32a669b1ab9597cfaa4b0faddb5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/data-quality/pages/DataQualityPage.vue", + "size": 1182, + "sha256": "67d58ae4e839d17a21b673596079ec6ff265460c4c02788e810b5a8f475b53fd" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/data-quality/schema.ts", + "size": 908, + "sha256": "9658c6a8d60e7b32b901dcb7f3f8a76959f9d49143775da71c0946ae9b8d436d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/data-quality/tests/schema.spec.ts", + "size": 699, + "sha256": "f31d36fe731bd0ae96b70cce69b994741b51f6c84ae8fb98066c432d43f1de5e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/api.ts", + "size": 334, + "sha256": "6210fa768523cc5b40426720151387792c37459534139393a046a0154c3db090" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/components/AutomationBoundaryPanel.vue", + "size": 813, + "sha256": "30035753459c7896966968caac81d573869be93dd1607330d9381dcdc468476a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/components/ModelOperationTable.vue", + "size": 1195, + "sha256": "a8c01732570de0680d0474ef7d0e257a0457d139db6885600510f82776d0ad98" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/pages/ModelOperationsPage.vue", + "size": 1202, + "sha256": "0247f8a973d5e9d95cdd7359ce3cf4feb1ff493437c770d896d35c9d688bc4d2" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/queries.ts", + "size": 430, + "sha256": "d6f6998a511d0fe346c286421701735b54450b2d5d4ee8a3b6b9ffe500f35717" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/schema.ts", + "size": 965, + "sha256": "4e42beabfbe81b37be744085c537ca28db51dafa61b85e89c2eaf9e6655e6b5d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/tests/schema.spec.ts", + "size": 888, + "sha256": "d63c8c3006ef1171a6e5e0c5d7941b5a200a50bea222a092b26c605dc23496ba" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/api.ts", + "size": 745, + "sha256": "5b11a1d4592d0911991d133a6a55acd189ed3542d40f8ea4c9c83b190406086f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/components/PolicyTracePanel.vue", + "size": 1225, + "sha256": "0d1c2b0d955a145c7bcc082e1c8e36e51519f168e82424323985b09d8b6fe609" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/pages/SellDecisionPage.vue", + "size": 4122, + "sha256": "ed0a28e54dfe8a3fd38f336220a4b0522af074b69d41c98764dcd25eaae53d93" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/queries.ts", + "size": 219, + "sha256": "d9cbf7fb58e0286c19a43bd6052ecf7f65b486af8588d851f2f0d9d831fb41ea" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/schema.ts", + "size": 2515, + "sha256": "7f9dedaa04a4a89490ce21c37dab6c18334d47f9c7e1ab883c3bce82123cd635" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/tests/schema.spec.ts", + "size": 1954, + "sha256": "9f7abcb83e769d81a67574c8e279d02d4ea085ccf3ae13b6310d9d30e8f8ecfd" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/ui-standard/pages/UiStandardPage.vue", + "size": 2608, + "sha256": "75178459bd73bd0651886aa9eef5da9ecd362cde639076db440f88cfdd19ee5e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/main.ts", + "size": 516, + "sha256": "dee4f911a24d6d115f9a29bd87d1a5d6a2a7b712c0260ad32fe6ad5391ab2400" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/api/client.ts", + "size": 709, + "sha256": "536919cbb4146f05fd15a408775ddc592c39af502f896758b603b74da6029762" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/api/problem.ts", + "size": 342, + "sha256": "a2c41433f08513c9139bfa9edd681ffdee9b52fc25e44bd5753c25b56c54ed62" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/auth/PermissionGuard.vue", + "size": 276, + "sha256": "90b89986d00f945b519da39beec01b80c3ecbcbb3cd19ccc2ced0c720d663c65" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/commands/idempotency.ts", + "size": 363, + "sha256": "c2a4675341e780275a0bfab7405d32f14f0ac83835123d3c27c2b06a2286a552" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/contracts/versionSet.ts", + "size": 384, + "sha256": "b9aa1927875bad6608054d32f8a99cb450c534567f117220c6409f45efcc3f8e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/formatters/financial.ts", + "size": 1194, + "sha256": "d00ca09616bea99e88bd0eeabd4f4e17e2072c11cf4aa31e596fb813d54f8ce6" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/formatters/tests/financial.spec.ts", + "size": 548, + "sha256": "4b9320a2161fbf07d609cc252e9f7e843b290b6614205841fbbd830b1db7f18c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/status/DataFreshnessBadge.vue", + "size": 549, + "sha256": "85d3a289c3e3f5e769df0a6ec9f5a7d163e5772c8416e812b30031a64cc90e56" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/DataGridShell.vue", + "size": 625, + "sha256": "2fac962bc94a84a1bfb318904e600805b61c0fcca229ea658ae055a784aba447" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/EvidenceVersionSet.vue", + "size": 650, + "sha256": "b5c46b8d4780a46c07926b8afa67ab7a8a3d5e90b491e213f6ec7595f6736a44" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/QueryStateBoundary.vue", + "size": 1615, + "sha256": "b9733a2b7cae7514eb7e3e7a81d9de6e8fbe042373c5cbdc2b635be7d9a6663a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/VersionConflictDialog.vue", + "size": 677, + "sha256": "cebfc534f43eab9f93c4037870ebd1140e21de5ddb937c38dc5b43b2ff7c2f8a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/contracts.ts", + "size": 902, + "sha256": "3e4ad75745c944cf0819806b6cc7ed64285d57c963c1252642c922dbcbaf5bbb" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/AgGridAdapter.vue", + "size": 1884, + "sha256": "0b57b8d7e0dd75d1551c293323a616d7593ba45543999bff8f78c7b77d9edd1c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeButtonAdapter.vue", + "size": 1004, + "sha256": "fdd26e0258d7721c62e3fbdd0e261097d6ff459658d29c9fe9089ee949015e38" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeCheckboxAdapter.vue", + "size": 436, + "sha256": "d7053a680874be0060eca0c36a1bcc85656297b245f89f0f73cc2871bc7d5a87" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeDialogAdapter.vue", + "size": 513, + "sha256": "c7997429a9d2c3fa5ce34da166128c15b38641fb799e5b0f7717eb0ec298e002" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeSelectAdapter.vue", + "size": 938, + "sha256": "f655c5a0d5a8182a96bfd9e34d4f06461ac0acf3fbef354ef7f208273b3cbd20" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeStatusTagAdapter.vue", + "size": 665, + "sha256": "14624b68be436b1fdebcbee32872c902b22b17de31840fa21d644f017f10660f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeTextAreaAdapter.vue", + "size": 853, + "sha256": "55432e421103111d1fb6e7d75960e7399634a6f4b15b370fb417441a81d2a4df" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeTextFieldAdapter.vue", + "size": 908, + "sha256": "20f5c4531bf07f9647f46e6d3e490a8a0da7a15788e72aa76e9aabc1df9bddc9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/adapter.css", + "size": 1799, + "sha256": "17c809beece82e5c13cf39f678b03239ff4457da6e3c14f5b70234d9d62df6c7" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/index.ts", + "size": 936, + "sha256": "b2c7d26fc0281777ec054b798edc1aa0c351203f082d671089be83819ddb9772" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/installPrimeVueAdapter.ts", + "size": 331, + "sha256": "96d68bd905939632104b9520e764f7ae9b63fcbb2fa36b12fea52b3a26f9cf86" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/tests/uiAdapter.contract.spec.ts", + "size": 616, + "sha256": "f2351c005828452e09dfd649a27a0a3a5d67cf754fa3f0aea50c8180bee0bea0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/useUiAdapter.ts", + "size": 480, + "sha256": "73d4b6217724b63dc48c09cc3be0fff77bb5835394cb58f317a9f808568200d9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsButton.vue", + "size": 597, + "sha256": "4cf1080b672a0fd6516ff144b9d923c90c7e194c69308ebd4457aa21a0c23f76" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsCheckbox.vue", + "size": 830, + "sha256": "fb9c98e5ebcc5c43d2511f80d789f936c3149f64690925d1e0c32244e0561c72" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsDataGrid.vue", + "size": 585, + "sha256": "a6eb87135abee11ec94f340c0fe49eb6c1c92da644d791813c9f6a6676faa192" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsDialog.vue", + "size": 477, + "sha256": "5aac8474ec6e588838e2287389440882445cef13627e9b862f50babac504bdef" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsSelect.vue", + "size": 1307, + "sha256": "f636c804a30bd7776c4a4e3ba1a10767f94bc1bb70cecb1f9130ac83e99d4c18" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsStatusTag.vue", + "size": 338, + "sha256": "d4d9a4f823b383981b87025425144376b1d6258c17196874941d2af36de80521" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsTextArea.vue", + "size": 1228, + "sha256": "5734d94dbb4da4ab7afdab62c43ef6c60a34614cde5f52ee37496d50088e4bee" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsTextField.vue", + "size": 1367, + "sha256": "f6c475c51e91762b40008d12ae60c30f883f0372efc4c6a064f348abb7077b6a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/index.ts", + "size": 448, + "sha256": "530a7b5e7b6945a1f08b70935c869c2d0c6f565e36daf4b9d728366e0fda52bf" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/feedback/StandardStatePanel.vue", + "size": 1327, + "sha256": "af2142b7b4666ff0a22afac9c4e417dba9471feed346e52f503135e82dd97f51" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/AppShellLayout.vue", + "size": 2506, + "sha256": "3671e53ef512823a7002778793bbf30465b6e5b9e54accc4e5ece058a8534979" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/DashboardLayout.vue", + "size": 839, + "sha256": "0a347aa9f705549fd48ffbc0b1e86d358e9823fa4c7845004f6fb91c3ae357a4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/FormPageLayout.vue", + "size": 646, + "sha256": "f14c4c20eb6d7527cffdb0022370d13515c0fa935b04b2c2f21fbc1c657d4955" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/PageLayout.vue", + "size": 2440, + "sha256": "6202ff3d13d9ed06586aac6ab4cc7e2cee15fcc725774439ccf6421a39c68733" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/ReviewWorkbenchLayout.vue", + "size": 773, + "sha256": "5ee2e04c8f1b5f99c144be8b277cf61a6d459f1aada5032b20bd02627d8403fc" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/index.ts", + "size": 333, + "sha256": "b5860635c0952120ac7829434242635da607d74ff8ab0456ba0a93a0f8f0d5ba" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/BatchOperationsPage.vue", + "size": 662, + "sha256": "1713e7863ccdad388c03730179b81d0156639ef1cbf9d4ca15c5ee3fac9a08a9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/CrudDetailPage.vue", + "size": 469, + "sha256": "e8f2f40e3167324fbfc6dab9bfa9ca8c7291162a1993cd031374b3c18d76aa04" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/CrudFormPage.vue", + "size": 550, + "sha256": "b68de3f91c2751a1a77cb1c981533ab9548baee8ca35deea33834d5a724085fd" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/CrudListPage.vue", + "size": 500, + "sha256": "3ce4ec49fae21be45f0b35405d4af97da906a141c4b8118cc768ebf3a2dc7a60" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/CrudReviewPage.vue", + "size": 561, + "sha256": "88e2ba235f4690380b91636fb91d4260542d57e04d2c352cdc338e5b0f678c18" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/catalogue.ts", + "size": 2747, + "sha256": "4a85d9a2105f2971ca1e94593b0c0f30ab320cc967a9bd8ff89a9b354e211640" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/index.ts", + "size": 355, + "sha256": "32a6270c8a14a9effb0880a0263b231153c2ade767f2c30d128aafab36a68b1a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/tests/catalogue.spec.ts", + "size": 718, + "sha256": "30bc7fcfb06956193ecfa6b27a5bef96ac8e548b903e48602230159abeb2fbc4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/tests/idempotency.spec.ts", + "size": 381, + "sha256": "4bb9102b6728f74db62ffca6c4706b17234ebe61c516e112b35ff92f76dc0575" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/tsconfig.json", + "size": 414, + "sha256": "653c000f3e469b362c64a1ddd19e0ae0ffb342c03584d642c9ccfb8e143cebfc" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/vite.config.ts", + "size": 310, + "sha256": "f891ca0002307beb575781f2c724a5536b1a0cc9e20cb3a1b88b27e87f6c9931" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/global.json", + "size": 111, + "sha256": "20c93ca7812d0a9825eef71217156f95ab2f4fe5aadfeb22ebc1c24b630018d3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/hardening/README.md", + "size": 764, + "sha256": "cc0d904862710d49ca540eb8134711e96021f819acf342ca666ce0e3cfab5a9d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/hardening/TEST_RESULTS.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/hardening/TEST_RESULTS_V12_1.txt", + "size": 562, + "sha256": "77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/hardening/kartsell_policy_contract.py", + "size": 7537, + "sha256": "cef2bc0a58a291a799a0da88a43e23200a6beadf70b5a0e3e31114672378f70c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/hardening/test_policy_contract.py", + "size": 2256, + "sha256": "b03c46d40ddf70ba27e62ca95ad10a34c3bd17fd39f3cf84fd8abb16033393dc" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/K-ArtSell_12_2_README.txt", + "size": 516, + "sha256": "64b0cef0ade8479cd3006142ba03fd630dfccce7907463a36e78d07780bdc2b9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/K-ArtSell_12_2_config_proposal.yaml", + "size": 4696, + "sha256": "ea5a116771766142f802ded9fcaa851abc24d549cb61e70fdc260f41b7b5154e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/K-ArtSell_12_2_quant_review_ko.md", + "size": 25117, + "sha256": "14eda6f50daf6c66f18a14921f6c02810a5a07a801fe5f05cea352ed4d233d49" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/K-ArtSell_12_2_source_manifest.json", + "size": 1120, + "sha256": "80916d1091353de4e80f89ee2e0227231eb477b77c1c5ccf14e713634fcc1be0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/kartsell_parameter_robustness_fast.py", + "size": 5506, + "sha256": "75a42fcff9f2df1ea5e46b6f4abaf516557114ae2c10ff15a2fc0085e6121712" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/kartsell_v12_2_extension.py", + "size": 11377, + "sha256": "22b5b0078ca861d8832ad4f2d0763917898dd4403e2df56fc4cb340091856d37" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/kartsell_v12_research.py", + "size": 22598, + "sha256": "dd8c564a1cd3fe87ed8db9b4e89f5e43f1ea41102adbb81a675b4b5f621663e6" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/000660_v11_events.csv", + "size": 61728, + "sha256": "679e0cecf72ff5f5bc1d808ccbe73d228678ba300aa6f4a671c11bf9bcfa9ebe" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/000660_v12_events.csv", + "size": 8605, + "sha256": "6277c1ab963fed3689cdb214426082a480be0dac17640df5918bd8dc6ee560ac" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/005930_v11_events.csv", + "size": 102283, + "sha256": "3b0d9d29d8522669c3989b57f79823628112a71ebd419e6424d20ef3e34e0b76" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/005930_v12_events.csv", + "size": 11061, + "sha256": "532ace9444a55b25ed132e7e1295efb8054f238e0bce8a6249692e7baa3caf1f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/035900_v11_events.csv", + "size": 73261, + "sha256": "1355c28b430af95bcaa387fc5771fd57e36fa1bf2f3e833883c9845f01ed526e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/035900_v12_events.csv", + "size": 7599, + "sha256": "aaf0e084affdc2b2db3f524bc14c11d1c70094fe70f168b40f4f5a3f2840ccee" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_asset_metrics_10bps.csv", + "size": 4266, + "sha256": "c70823802228d86860a0dc2f28f59391b387bee0e0cb9c4ff220b1202eda89e0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_cost_sensitivity.csv", + "size": 2047, + "sha256": "dc295ed6b722f7d333264359347ca2ea25bbc20f148a474e5e6c4153890b01aa" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_data_quality.csv", + "size": 625, + "sha256": "6d86d16d7d1b655c7687163d609855c2e203f3620f610e6c531918034c1696a9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_period_metrics_10bps.csv", + "size": 21342, + "sha256": "3423f6c975b1421ecdb76b93edd08fcfb8dee0bf65d293f2fd9de3653701421c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_buy_hold.csv", + "size": 327036, + "sha256": "8cf47e7a69b859f0e01932d92ce2cbb1fbe20b46e6cd8c98fac87a9463579efd" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_kartsell_v11_original.csv", + "size": 437966, + "sha256": "2486ccc73f256e959a9f17fa5732eeaa515967cd6b991a4c379b6b43d1c6f611" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_kartsell_v12_candidate.csv", + "size": 420065, + "sha256": "be906730bc90aff11697109b1de251d423e3e7f371097ca23843d03375623a4b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_kartsell_v12_plus_capital_floor.csv", + "size": 417007, + "sha256": "ab1c61f623e32d65909126485653862f06196032e72b98b915cc261292e4a723" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_metrics_10bps.csv", + "size": 1920, + "sha256": "a736f32c07bde9eb5a9e21a8741a6c426daa3a80212d4f5dea8ec5bd863f574f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_trailing_12.csv", + "size": 377075, + "sha256": "d03346128abe6189212ce332e949633f950ab425dca08435ddc8d5cbbcd8758f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_trend_10m_shifted.csv", + "size": 363137, + "sha256": "3e03c4a0c528f30460d128cd05feb7e991c62bc8573a3a11c378a6de6701a2a1" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_sell_event_stats.csv", + "size": 679, + "sha256": "68cc58174ef9bad112bb687e6c85e8fc6f13df45585e64a93887a9fa8d0b6695" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_27_stdout.txt", + "size": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_9_stderr.txt", + "size": 846, + "sha256": "d142f93d8b8fa7d745b97387b88101438bfedc679f47dabc65b344a25f4d8425" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_9_stdout.txt", + "size": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_fast_stderr.txt", + "size": 864, + "sha256": "fde3291abc86719fe592191aa95fdb1c39064d60f83abe707fbc83d2b141906b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_fast_stdout.txt", + "size": 4868, + "sha256": "6efb60db099a7ce2572087c4f5b8c08b2216b666754207420e18ca35b0d1b8c5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_grid_9.csv", + "size": 4487, + "sha256": "53d994470d88e6458d9563f53b30ccc60cb3b7121a0c119b5d02d71e8e113c86" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_summary_9.csv", + "size": 128, + "sha256": "75cd54fac7c4ddfb8a17016aba507f0cd8b05914e40feb0f0d7d24ca51f97321" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_top_train_variants_9.csv", + "size": 4487, + "sha256": "53d994470d88e6458d9563f53b30ccc60cb3b7121a0c119b5d02d71e8e113c86" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/price_factor_panel_monthly.csv", + "size": 217186, + "sha256": "eaa505db2e905aee6c03044b26a59d04a1388c6bc4993fc7cfcc3b765a952a55" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/price_factor_summary.csv", + "size": 1269, + "sha256": "79f867df5001ebef5e881efd5f8ad120eb6b734eabb4977d2e51fc6ccba496f3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/spy_core_tactical_metrics.csv", + "size": 991, + "sha256": "9d9a7482b0fa34538e77b3631ec9f107f60c59311d3aef001483806ad8f8d7ac" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AAMRQ_v11_events.csv", + "size": 6855, + "sha256": "66d2dfa8b62336c40cebfb0d529d31b285d4815d01f39ccf5878ff9e0e260489" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AAMRQ_v12_events.csv", + "size": 1797, + "sha256": "1c1406de05d69355d4318e75741b9df272491ec4749b145cda9a407fb9fe6332" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AAPL_v11_events.csv", + "size": 90834, + "sha256": "eb68fdbaf0d8a984067235e17bd83e518ee179fbc1dad092b614ef3929a26c19" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AAPL_v12_events.csv", + "size": 11651, + "sha256": "723e2db979a434ee01d3f59031f4bcca98aadec640445ff991346d2fedfd70b0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AIG_v11_events.csv", + "size": 126506, + "sha256": "aee109b979b25becbe1e860540970d35c7d579407cda02b8ed68cced399bc15d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AIG_v12_events.csv", + "size": 7906, + "sha256": "0d0d4c334b3b1fd1380392de6c1ea1754d0ff630e9b15de59950e0b072cffe7a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AMZN_v11_events.csv", + "size": 98867, + "sha256": "e8c9817288685cca37cb7c8d06fa874b39a0aea504fdebd5946f3ffb077a9e54" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AMZN_v12_events.csv", + "size": 12709, + "sha256": "a7ea816fe003aba24b0dfb5d6cb645a11a183eb77f59ac9bf82d303c86713d5b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/NVDA_v11_events.csv", + "size": 102845, + "sha256": "849fc1801f7091d6dd7cc5453ddd24c1cedd7ca6dee87669894af7e6fb2a1cf5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/NVDA_v12_events.csv", + "size": 12378, + "sha256": "a550dd121f5f0645bff406656fdbcedda5530cb929995eaff3199ddb984e4b53" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/SPY_v11_events.csv", + "size": 86625, + "sha256": "46585765beb33148fbb08ab7594e4fef0ab604237a681217f649bd517d1a323d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/SPY_v12_events.csv", + "size": 9799, + "sha256": "45a3911c6ef11bb5ecbe32a195667d7fbb35dddd63bd098a4ca30fce85d28402" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/TSLA_v11_events.csv", + "size": 129116, + "sha256": "8ca591e391285d9b56e2e4a6a630e6b9f62ca64a5c7336ac6cd31a4232aad1e1" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/TSLA_v12_events.csv", + "size": 13627, + "sha256": "d82c0cd43ae199a7596a9ca8773eb45f1e4370357875be4f479a6733f372b090" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/asset_comparison_wide.csv", + "size": 3896, + "sha256": "6844a1992631c06fdc42ee9cb669c36f4e77a7464186eea5d6989c52f5534a2f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/asset_metrics.csv", + "size": 9845, + "sha256": "87fefcaa05dfffc504157afb047353731f8905b811d6db4bd8e21c9888e3089e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/data_quality.csv", + "size": 685, + "sha256": "2e6bb956f89243bb8a2cc10c7efc749696073307168e368e8c53254ec098ffe0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/opportunity_cost_protection.csv", + "size": 1099, + "sha256": "ea81cd53cd9aaebea98c2371cc476e924aaf292a8538d4b3dc54576b4f158e9f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/period_median_metrics_core_six.csv", + "size": 3344, + "sha256": "a14187aedb2db3b21a724ac555273df3d802611d1eaf7ad79d5d9713b4083127" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/period_metrics.csv", + "size": 58549, + "sha256": "d4bc325eded6037b82c05f4bf8e05f23e53fd69f11635de700182147747f8437" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_buy_hold.csv", + "size": 446563, + "sha256": "a04e584abef5c7eb0c67f5f2c871cacc64fe53cd9c4f3844fd64196645296413" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_kartsell_v11_original.csv", + "size": 619457, + "sha256": "0ff39e7f14f1e0ef1f641098883d9b364d73d5c7cada12624b8c77550d7aa7ba" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_kartsell_v12_candidate.csv", + "size": 576468, + "sha256": "04338b40657f642ad8f0443ab8a7b7e0fae9b323222e65b61e1196672a1b9ead" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_kartsell_v12_plus_capital_floor.csv", + "size": 585004, + "sha256": "f54f193832f694064dff4f0a65bea809a450f61e68ee3d1353645ea592326c83" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_trailing_12.csv", + "size": 519910, + "sha256": "9b8d5c31bbf5f0c2ac47c8f27881242d19591dbb7bfdf5cd3176147f8b95484b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_trend_10m_shifted.csv", + "size": 516387, + "sha256": "dbc21bfe64b8b7e20367cfc1ee27586e4acc31cc7dfa461d09b3d31a27237821" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_buy_hold.csv", + "size": 446470, + "sha256": "156084f5fb232f04d988d3e40da1f6064d61848ad0c45a2f6ecd249aef12037b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_kartsell_v11_original.csv", + "size": 618788, + "sha256": "b628f4c8213be786594027eacfc7321de6e87cd28622150aa3798cbcf9228f72" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_kartsell_v12_candidate.csv", + "size": 573093, + "sha256": "3032fb6dd5cd240c7880f251a1edc644a109e5313b75ea6da654e2eb6e34616e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_kartsell_v12_plus_capital_floor.csv", + "size": 580150, + "sha256": "799c1025a6973c0b16bf64fceab2ec732997e31a63daad0e26bf56f8d83a95fb" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_trailing_12.csv", + "size": 516536, + "sha256": "2777f299358851962916ad8baa4bb5443a538a9d7920178b0506cd5512b82332" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_trend_10m_shifted.csv", + "size": 515448, + "sha256": "380110402f8cacb5d048c71a4d3df0834bf67002cf46c3d6ff0ee71ae7e2f1cd" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_metrics.csv", + "size": 3683, + "sha256": "925c99ef6a0cadfbc82021060b28fdbf279851ce588af3fbe02c9eda194fc09e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_period_metrics.csv", + "size": 7317, + "sha256": "debae6607ef9e6343171764ff85c00835a566fa2f4ea58ab8c539bdd410b3c44" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/sell_event_stats.csv", + "size": 1373, + "sha256": "b21801f9679e45b6dd99b48b74b9bd845a86675ff75845603500d34b88bcc8b6" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/v11_v12_asset_deltas.csv", + "size": 1768, + "sha256": "aee6ce03a10cca43f9193bed49823a8bd66c61f9ed0a703027a53eed143ef3dc" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/__init__.py", + "size": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/generate_manifest_v125.py", + "size": 1332, + "sha256": "04780ad286c60287550cf568851fa989853ab938d6676eaba417647052d5cc37" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/scaffold_slice.py", + "size": 5228, + "sha256": "2328008d1d0bf9a76db8f5d59ced408d3ba869564a06aef3d10441d706f97ec5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/tests/__init__.py", + "size": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/tests/test_scaffold_slice.py", + "size": 1112, + "sha256": "b3d91349003f4019001da5e5ea82c3fba522773a17dce1461a5ea71de23afa54" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_static.py", + "size": 6112, + "sha256": "49f9579949239b73987e1c59182f67b38d7c647a7691a67c89e07885a851c438" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_v121.py", + "size": 9084, + "sha256": "f319db3038987ce8fc248efdbb7e8688cdcad6fe48dbdc592da966ba226f9561" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_v122.py", + "size": 10797, + "sha256": "90bef3e5e5f7208e09603e49a4db85eef140880da4440d4a591044a36aeb3673" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_v123.py", + "size": 14023, + "sha256": "a05e82dcbe04cc72c657f76dcd4b671fff7bf1b532046cbca53c8fec725c8338" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_v124.py", + "size": 18134, + "sha256": "6dc078e5fc82a022a3c326ccf1969f1007bf850ffd0a4394afdb1737019aed97" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_v125.py", + "size": 10736, + "sha256": "d1b50c2e9322ceb4a6300f6c65a238800ffdc83f3b36813bf40ccaa3ab483ffb" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/verify-prerequisites.sh", + "size": 500, + "sha256": "420dd56660dffd0beee364f28262c853a78ed85350a16409a9169f4cd0343f69" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Auditing/AuditEvent.cs", + "size": 445, + "sha256": "14520aa1e6045a4767aa659dbe4a500594f157d516a29ac074e598841f9777cb" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Capabilities/CapabilityOptions.cs", + "size": 336, + "sha256": "560b8f68d1b6156064fdef4c92a5a5fa44f0792a3b2a93ef58d2f0696fb9c72a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Data/IDbConnectionFactory.cs", + "size": 196, + "sha256": "4048b31bac16d5dbebb73fae5cac7896a2e3bd4eab06367cc782b5259bf6cea0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Data/NpgsqlConnectionFactory.cs", + "size": 348, + "sha256": "2e97a6b30a1ed06b862d97fae657f7872b139b94730dde69842c6aa42227ac43" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/DataIntegrity/PitRecordMetadata.cs", + "size": 1484, + "sha256": "6ab004694a5ff494e889d56c4d2b7a44fdc527fe7e4b551470c3212f25e47549" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Hashing/ContentHasher.cs", + "size": 283, + "sha256": "79e9fd1f5b76dd4971b7b04aa9914423aba4e87ce68a5b3f91ff2dca99b64cfc" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/KArtSell.BuildingBlocks.csproj", + "size": 158, + "sha256": "a2f4fe2a1a6c37ab31ff38e2d4838d85ecf1b4b35e85b55d4d14e6ddf75f4f3c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/ReadModels/ProjectionCheckpoint.cs", + "size": 568, + "sha256": "671d4761966593b49dfd68f24b553852ba1326149f8afb1f648d178e6efb4347" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/DapperInboxStore.cs", + "size": 1018, + "sha256": "b1815c8329074471ba5481b00e4ee4c1aa49c8d85869ea9ed451e5e10cdabd73" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/DapperJobRunRepository.cs", + "size": 3608, + "sha256": "4457e830e60b285367b29340be532e4c61ed9fbf8c2ce5e08a6b5e5727916666" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/DapperOutboxWriter.cs", + "size": 788, + "sha256": "159ecd7f618fb56862895b4daca3534b20b6fe1f7c58684729fe8f605453dfc0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/IInboxStore.cs", + "size": 364, + "sha256": "fcf9b6c0bf67ec5ba502f3a1c725a946933c61bf30187f3f840eb3e434e5654c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/IJobRunRepository.cs", + "size": 359, + "sha256": "54ed6862813d1a081892570c0f2df31d8de5d18fc7181e3230aef33bd7e17176" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/IOutboxWriter.cs", + "size": 241, + "sha256": "80d5a19b907a56fe281fcf2e212274537259fe3d5fef6fae1c941b32d0262ae0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/JobRun.cs", + "size": 681, + "sha256": "c56ef1f11d3ed2037cf6ae8470fe2d6537d2c9268f30e1e98adbc0e040453ea0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/OutboxMessage.cs", + "size": 255, + "sha256": "986920dd9f38d63782e6ca9e6d713274032fbd359c6d5f4a75c741aeebf502c3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Time/IClock.cs", + "size": 209, + "sha256": "f0ceb1632f1eab6cb4b8d9adcb3cc41c9745386f6e7a6fb5fe3d72276e31cc4b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Versioning/VersionSet.cs", + "size": 1079, + "sha256": "342eab88234a45d63e50664fc3a421187a11eb55e0af95508cc26cc11c567ceb" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.DbMigrator/KArtSell.DbMigrator.csproj", + "size": 248, + "sha256": "972880c73aee1b7b3165117fc54ec1d698422d96bd95e2b496c41f87aa68f74e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.DbMigrator/Program.cs", + "size": 820, + "sha256": "c8f954c6f8c91aed4af578d4b8bc171b18b47b13392f70ef0b6d3ca9161490f8" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/KArtSell.Host.csproj", + "size": 1231, + "sha256": "3646baaba72858ffc674afc1f176fe235033732f8cc029c38cbf46cfd7b14b1a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/Program.cs", + "size": 5221, + "sha256": "1af3935e270f41e10b01229e9c118caf9e5244d40313459be5f311f231fc21c7" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/Security/DevelopmentHeaderAuthenticationHandler.cs", + "size": 1722, + "sha256": "15bbc7992b77f39abc55c8923d8f21e5420ab8636716dd026f7c425e06f4d13b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/Security/FailClosedAuthenticationHandler.cs", + "size": 810, + "sha256": "403d488c62627943a576e7f513f9631a459b7b8f8d65bcc5733100228406cbc5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/appsettings.Development.json", + "size": 121, + "sha256": "7ee3ae000f3c9ae03e029063a4a28c75b119d988a4c6728f6aa6abda7d7d38af" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/appsettings.json", + "size": 697, + "sha256": "35371b80b902de59cb629cc83130b6bc98ac57d871dd8dd6bccd7eafb71d1e51" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Application/ModelOperationRequestService.cs", + "size": 1632, + "sha256": "59abe5ed2a6c2ef827d29b5f8d8ac29e0892894ea9ecc9ac62deef4d5c7d45a3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Application/ModelOperationsContracts.cs", + "size": 2032, + "sha256": "f88da5b17cbdca8d977c2028230fc951919420b8d0b2e3dbb1d652189526e91b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Domain/ModelLifecycle.cs", + "size": 1432, + "sha256": "f22bae39efcea2f1b12378ff73edb29cbce96c6720cea34ea20944ec517a22ae" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Domain/ModelOperationDefinition.cs", + "size": 8317, + "sha256": "2798a69fa2df11163e1e58e5282668ba6d3cd45f46c4040a4994afa19cbc1b59" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Domain/ModelOperationExecutionBoundary.cs", + "size": 1123, + "sha256": "88504bdecbb27bb98ff9eb9c108875369b039150c853190c30a23767587b6cee" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Domain/PromotionGateEvaluator.cs", + "size": 2359, + "sha256": "b626ce2351b72315d30cd7db96d00bb27dcf06b31af7da918d03b5d8d4d1d8b7" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Features/GetModelOperationsPlan/Endpoint.cs", + "size": 1116, + "sha256": "2d35d447c8b514fa039764c2a70eab78953f7f726c36fd3b2b492a0556cef57f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Features/GetModelOperationsPlan/Response.cs", + "size": 507, + "sha256": "8804bbfd9a741b6b5cee1c862997d61cdff655697484f3de9dc485d7e0027369" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Infrastructure/DapperApprovedModelContextReader.cs", + "size": 2460, + "sha256": "eb0f9bffbc88d010956992c635830fd500874f7acf79d9b9219ff60319d3c447" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Infrastructure/DapperModelOperationRequestRepository.cs", + "size": 4117, + "sha256": "4870d8b0989b4eb7f169dd75ec7581f85b8c5c079491bc15de99a2264d4934a8" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Infrastructure/DapperModelScheduleRepository.cs", + "size": 4678, + "sha256": "857cbd78ca5d197e3c1aa1a2498742bc838589609f0fb445cb963531c18d5373" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/KArtSell.Modules.ModelOperations.csproj", + "size": 307, + "sha256": "2ae3de1298c092062205e7920ca724925c644da092d51d6becae4236f086eb7a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/ModelOperationsModule.cs", + "size": 858, + "sha256": "abaa1d299f4871752c08d5c3638d936d9554bc1a59a821c154c3e664ead937b8" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Scheduling/ModelOperationsDispatcherJob.cs", + "size": 2051, + "sha256": "68448fa5efde35b3c6bb97432fd10701b91bf1a03577cce8b460e310c5e81232" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Scheduling/ModelOperationsScheduler.cs", + "size": 913, + "sha256": "3e9e2a6786c80a86a420dc455b0f0ed9730cff856c260b28674a5c9b49f3be6b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Scheduling/ScheduledModelOperationJob.cs", + "size": 1604, + "sha256": "7710839fae538111a837ad609dae92e477a38e8b0df2ead60cc25cf81f553e2c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Application/ISellDecisionService.cs", + "size": 950, + "sha256": "8ee7d75060f5e0aa38f1accb1fd3007c6ae32e6e703a89acbcc0f614fc0e0156" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Application/SellDecisionContext.cs", + "size": 1794, + "sha256": "527707dc415cde676e18af654b3b5259f43d47f28b5a8e35928b2b43d733ab4f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Application/SellDecisionService.cs", + "size": 9920, + "sha256": "a062d61b5973d8612f71bd97f485d51e4d8694d3c865127e3c217ce85407ed91" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/ISellPolicy.cs", + "size": 193, + "sha256": "d5d14fa872aedf6bfbbcc5452e849557f9e9f67cf38ae63ec125a736072e67c3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/ConcentrationLiquidityPolicy.cs", + "size": 1553, + "sha256": "fe0cbce192283c19239667357713ab8a43544406cfe22c3cdc3dfbe0ea0cb01c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/GapFloorBreachPolicy.cs", + "size": 1674, + "sha256": "94f409ad020682a44d71bf68c6834a854e7d1a039287491a19fa83ae94982914" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/HardImpairmentPolicy.cs", + "size": 1314, + "sha256": "92343ac6ff9df82ed0800174298ff9dcd9923f0040b2f61a751554b5adc13a5e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/OpportunityCostPolicy.cs", + "size": 1862, + "sha256": "63f45838322dcb10805273166528d8a52ec310e906f0948b6383b901a47171d6" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/PortfolioSurvivalPolicy.cs", + "size": 1617, + "sha256": "7d3ddd0a4dfa5ea95fc06193c948e38ccb05d35a2a1c219a890c88f6c87e297c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/TwoCloseFloorBreachPolicy.cs", + "size": 1594, + "sha256": "834ae308087842b48aa7fbf7df6ef19067f8cfca71c943051c51f14f1fa3c8bf" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/ReentryStateMachine.cs", + "size": 1598, + "sha256": "def0347a1c52c00bbaad7177c72fd84a72496dea0e17e8d4144cb7d65513e98b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/SellDecision.cs", + "size": 997, + "sha256": "a3453bc9442947cc508405b3b3aec1acc0b8861f9455401d292166f733d9e0f6" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/SellDecisionInput.cs", + "size": 2509, + "sha256": "83a537ff6c471fc4a0cf82ca1ad85478d5d73ae37e66df8136ce39c482ad69a3" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/SellPolicyChain.cs", + "size": 833, + "sha256": "56237139105c73b48cc292a32c75de7d6b71b471fe681701661392b14bf43fb0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/SellPolicyContract.cs", + "size": 2378, + "sha256": "ac5f576c7349a75034b341b4ead5fa1c38934488b1aaadeeb06f53f295e561f4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/SellPolicyResult.cs", + "size": 1550, + "sha256": "2acda27b38206e0750005e90822b0363a176b0021de0f9be4bb18d72296bf0db" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Endpoint.cs", + "size": 1820, + "sha256": "f722562261966c1e62330ebd90e66ec1cb8ab023c95fd1b870a04c554bd005af" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Request.cs", + "size": 867, + "sha256": "abb9f6b78762f631e6134f3ea4c7d20cd45280447819a4ca3a42ae0a84e1bd75" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Response.cs", + "size": 466, + "sha256": "35b5147089eafb935d95715a373a565192c82864fcbac4dcb77b9658a6a10567" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Validator.cs", + "size": 1383, + "sha256": "5b78248c1fea4e2dd665adc375bf3784b7a2fb435d49a99da4c63e444495087e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Endpoint.cs", + "size": 2369, + "sha256": "b0ee6791bd20a1e5743cb0347358e0570f4b1537d8527cc3f657fe58948ec0c8" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Request.cs", + "size": 260, + "sha256": "d45bfecac3a453729b252dbbcbd7deb57f7e3892012e796a32739af116e43340" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Response.cs", + "size": 619, + "sha256": "9251e36434382582702b8c87a3e080f9c04ea9c8450a362163e39166b3bf1217" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Validator.cs", + "size": 299, + "sha256": "918c403bacac2d9a72425cff5c6a6d23a7193391ec20b139a7f6e564f7140da4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Infrastructure/DapperSellDecisionContextReader.cs", + "size": 2471, + "sha256": "1ab0e864711b54bfce48823a6dfd6c3408fcf60af8e7438123778e18e65c8149" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/KArtSell.Modules.SignalEngine.csproj", + "size": 258, + "sha256": "d422b7370a5c318aa716bebd1a4dac01f709a9069912e143f934e158a77c6bbd" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/SignalEngineModule.cs", + "size": 1102, + "sha256": "d2e1beab4e18f7eeb9d06f4f16f8b889f93814fc060ff82843daea269b4b154e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/Module/Module.cs.template", + "size": 260, + "sha256": "2047b3ff3a6d4aa43324c6d82e2504363d284a1ad4593fd19b789d3174c12420" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Endpoint.cs.template", + "size": 528, + "sha256": "6a188d448ac4a39866d2264bd12a30910df6466c2c11325f244d60c2a1ef0374" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Handler.cs.template", + "size": 416, + "sha256": "3ce5dea3d11ae737c931b8d59c36a1e8492b62eaec12cd030c3c857bb1da64ee" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Policy.cs.template", + "size": 280, + "sha256": "ceb371f34a25108a826f395b90a4b33868421d33717277961274802a3e7012aa" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/README.md.template", + "size": 205, + "sha256": "fc39255e5515fa28a46e7494075b5da06fa79d81e6354cd59f27b6ccf72c28a0" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Request.cs.template", + "size": 108, + "sha256": "d0f55d2e3ca509008ae58d8e59f068d9797904a4059850edb5b009070938b90c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Response.cs.template", + "size": 110, + "sha256": "8023e305f0535ac9bca4404996f0d3a029909ee7abd7829eaa271115fee3f188" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Sql.cs.template", + "size": 363, + "sha256": "41c2e58cedbe58e6fd414d1e2bc58b42d7528e3888a5c253bdbf128cc9739456" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Tests.cs.template", + "size": 255, + "sha256": "613cde71f35234eb7188703c5ec2bac3cc012b014bc506b321d457a6e0cda4c5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Validator.cs.template", + "size": 277, + "sha256": "b88b320c6942ae1073e7127f36ecf7f5b18fbfc1363fc4d342a6aa68b155ae1f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/hangfire/ReliableJob.cs.template", + "size": 487, + "sha256": "86b02ba2b05cd4f3e409747a220d31a067801db443ccc1a908af9f55b756cc07" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/sql/Migration.sql.template", + "size": 393, + "sha256": "cedd0e8409863880bd3440756b38c5d3e06927efeb291e5150a26588a95dd8d9" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Endpoint.cs", + "size": 425, + "sha256": "9f107759482b99bdc19d8794ed6a01d0e465acea2a5284cf68497170045f3c83" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Handler.cs", + "size": 436, + "sha256": "62a86b432d067ec644577a0732a836bf771e1c347c7cb7cdf28a7bc924e45613" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/README.md", + "size": 270, + "sha256": "ef001a207b832694ee77f78f09e63e293988779b9e0fb350a4964a0aa911ccbc" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Request.cs", + "size": 150, + "sha256": "7aa17ff6e0f20f8f9187d9f499b04111ffa9568fc2c89a3d0867e7510d18bef8" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Response.cs", + "size": 157, + "sha256": "17470754f87b4ea683a11f937adef284de0d4d19b92a998491193a31048be239" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Sql.cs", + "size": 193, + "sha256": "ccb6587228fbd688b9e15caff2b52de0d7bd9e962786e4e0b2199c0361bc2ae5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Validator.cs", + "size": 305, + "sha256": "05a45fd89381e3d6307fd0d10f16a4ab4c43bad805ad7983bb026b772065ae8c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/frontend/api.ts", + "size": 378, + "sha256": "995f09dd9e9e17c37db3e242eb29c8773711fb2155bd903ea5c9ef98b978638c" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/frontend/pages/__FEATURE__Page.vue", + "size": 302, + "sha256": "001bad76fe89dac3548bb269e409606e79e204305be859f987ac772698a4c6d1" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/frontend/queries.ts", + "size": 360, + "sha256": "3e36f33f21360131e1bf428faf5b3e11f61261b162f36500fc887de3a6b3e345" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/frontend/schema.ts", + "size": 428, + "sha256": "d44cf205614eb5957f3d2d7f332e5a08eff7dc5e0c7849565c46abffc85e2d2f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/frontend/tests/schema.spec.ts", + "size": 282, + "sha256": "1868c28f3f45f7b70eb8af1aad996c3f1ebcd9cada89bd285676142dda85708f" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vue/Feature/api.ts.template", + "size": 309, + "sha256": "8b5f20b3b6b3b5d05ace88d569f4c354f4b641168bc9d17bbc930f2b0ed2b050" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vue/Feature/page.vue.template", + "size": 291, + "sha256": "07c89d6f6549586dfac479087b40b9ceb221e31fd7a31b0edacfe574d841fc01" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vue/Feature/queries.ts.template", + "size": 231, + "sha256": "57298077b3c709b4bb598b4d8de5eb0b7656ebac61c306d91bfac1d3bb11e99e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vue/Feature/schema.spec.ts.template", + "size": 269, + "sha256": "773758f8d9c4a6d8549ae7fe2a6fafd3871afd1e62d03e879cd25c510db32bda" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vue/Feature/schema.ts.template", + "size": 271, + "sha256": "6e13905385e900e3ec944b26ae362ae0645c55be73f065f6e69bb6e3010aa11e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ArchitectureTests/KArtSell.ArchitectureTests.csproj", + "size": 366, + "sha256": "916706ab4897ac9ac251507455b73b5ad03479cecfdd0c55287a956abf06f9a4" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ArchitectureTests/RepositoryRulesTests.cs", + "size": 6096, + "sha256": "4871eb72b1471b7b263c6fe4ff6cf7b83bc7454722513caa00826a50361530ac" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ModelOperations.UnitTests/KArtSell.ModelOperations.UnitTests.csproj", + "size": 484, + "sha256": "21ed4fe67f70ecd6d34713eea69d3830ce05dd7a5b9997c88b7895a05804b45a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ModelOperations.UnitTests/ModelOperationExecutionBoundaryTests.cs", + "size": 859, + "sha256": "1a0dc2dea56d80e1f2e2d4014e93ed8840964497cf191be7b245bd0b29eb6f0d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ModelOperations.UnitTests/ModelOperationRegistryTests.cs", + "size": 1031, + "sha256": "2282f4dca87328eb9602a029329de92abf34e4e5adbe710a86229f4aa45e275e" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ModelOperations.UnitTests/PromotionGateEvaluatorTests.cs", + "size": 1658, + "sha256": "7a7f4f70f88191943fd62ebae62756cfaa71a45d14817a4b07c7abffdb128824" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/BuildingBlocks/PitRecordMetadataTests.cs", + "size": 1045, + "sha256": "a7921afc85ad7100c176023d765f1429415cfbe920fb98f5837b9522c546a95b" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/BuildingBlocks/VersionSetTests.cs", + "size": 370, + "sha256": "7cbfbbec1b99efb5c7be94ae1bad0a63f744f7c77d1cd1ed4d6ce7525189450a" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/KArtSell.SignalEngine.UnitTests.csproj", + "size": 478, + "sha256": "bd809f8e5475fc80712a8e63ef86dde6166afbd1881b18cbc2b35d0d8e4db32d" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/ReentryStateMachineTests.cs", + "size": 1974, + "sha256": "42d5590486fe77a244ded5d486da8e89f5b4127c59e867cfc977e1876df84487" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/SellPolicyChainTests.cs", + "size": 5427, + "sha256": "f7abe2df6032b1471b8ddd7996cb55703d7c5a3bd54a6254fbc9e747baa8c8f6" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/SellPolicyContractTests.cs", + "size": 1274, + "sha256": "1b408a0bc1365638322352ef0c4f63309e60550cac6aa71fc0cb970ff0705817" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tools/scaffold_vertical_slice.py", + "size": 2315, + "sha256": "16b95ff1193efdb0317b9131fa445609562e5cd63a9794ecb8ccffa4d522d4b5" + }, + { + "path": "KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tools/validate_v13.py", + "size": 7153, + "sha256": "b1621784a67d431c59e35373b81551f92226763d542e5e961a7c472dc5790f77" + } + ] +} \ No newline at end of file diff --git a/docs/v13_0/SHA256SUMS_CORE_V13_0.txt b/docs/v13_0/SHA256SUMS_CORE_V13_0.txt new file mode 100644 index 00000000..c46b833d --- /dev/null +++ b/docs/v13_0/SHA256SUMS_CORE_V13_0.txt @@ -0,0 +1,500 @@ +f35bc6049060b59e664933599133dd3fa8d042434ac0200f67ce4416aac1f195 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/.editorconfig +67d010885200ffc4aeedeecd118ad6c84d5c9f11e5cf8e7813dffce66ca0f8d1 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/.gitea/workflows/ci.yml +456f6535fd54dcf2fff0031f31fe9206673bb18187be985877e83ba5e1bfa3ef KArtSell_Aegis_v13_0_standardization_complete_deduplicated/.gitignore +159f7b0aa64357d56e665fd77e5066d6818686248070f4ac95458aadf7df4775 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/AGENTS.md +7542ebd573ded662e1c129a7950bf944a47c60e6a3c5f212f3b297cb32726f60 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DISTRIBUTION_README.md +d917950192b515a7736477b4a57711026debdfe596a6503d4001f6a38b1ee012 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DOCX_QA_V12_2.txt +1a2bf24001700357a5022f17ca169e0e9c1fc48d37e4af5b2ebff77c4450efe8 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DOCX_QA_V12_3.txt +dcd316fc70c0f5292009600aa815fc67fc8c5d7099a61f0e841bcfe135580fa3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DOCX_QA_V12_4.txt +31b7d42445993d1742fb9aa1f448367b450d8ed579c5fc0722655ad233435c41 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DOCX_QA_V12_5.txt +96588e0e245d371f4645affe4f24216c6f2d9f11e7a67a4d28c5580706ab9aa5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/DOCX_QA_V13_0.txt +1b9316a55c61a41e2bea70fe860dc4cd6dc225b7506d8b25b9b764df97609e6e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/Directory.Build.props +ce5187f882c9b32002e8aaed7d2ad6ed076ec450ae85ccde1c8703806bcf016e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/Directory.Packages.props +6def03419c8bf0217f90adc34c675e543501808735cc4da771d78acc9df7d545 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/FRONTEND_SYNTAX_VALIDATION_V13_0.txt +db7570fb57ba130481ad22a58daa3288697e87be5720fd6e06a9c5662d8f6138 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/KArtSell.sln +353cd13909f2c1ace3b9b7419c7151e65191c861b6c94fc1af6854451c57fb08 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/README.md +2165bfc06fbad044d0c9c20935de98c5b31c174f56afdce12f6ca15193be0d11 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V12_1.md +fec641183bd8280f5499db64dc6aaf5b30920aac3cebce82f1c56dee7344df3d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V12_2.md +c6ca453b2ce1754c9d3f788f808793562f6b8979fdec00b967e915ba04ab3c43 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V12_3.md +98754b18b8ba071b1fa09643502f8fea0e0094b50c77515a3aa1d52bee26b041 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V12_4.md +b3f310ad185867a148df62429694fb13c2b0ce9c2300264978ac3a99c535ff51 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V12_5.md +35b4946a192a04b127248cf32ba9d12e9b7dc2c48d73b339f5a254ca5f371a92 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RELEASE_NOTES_V13_0.md +77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RESEARCH_VALIDATION_V12_2.txt +77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RESEARCH_VALIDATION_V12_3.txt +77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RESEARCH_VALIDATION_V12_4.txt +77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/RESEARCH_VALIDATION_V12_5.txt +cfb19b72d80f79fc1cf7b0ae6fb54b24db8c0b883ec312c549139ef7d5065628 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SCAFFOLD_VALIDATION_V12_3.txt +cfb19b72d80f79fc1cf7b0ae6fb54b24db8c0b883ec312c549139ef7d5065628 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SCAFFOLD_VALIDATION_V12_4.txt +cfb19b72d80f79fc1cf7b0ae6fb54b24db8c0b883ec312c549139ef7d5065628 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SCAFFOLD_VALIDATION_V12_5.txt +4833ec50b8916905181a334e49c0de85e96677f18c86fc13abd9437c6674e681 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SCAFFOLD_VALIDATION_V13_0.txt +eb17dcacd94d8207cc0712fb571341e2d4d56ac86d2d8b8b22574ccab144e878 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SOURCE_BASIS.md +3acda947f45b7c26cc1b8a87a3ae7646de9a6058ae73bc56a95464566a8df168 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/SOURCE_BASIS_V12_5.md +4bd8f78683630e45d70443dc4816e193342bc7675a0eb24c8443dee1b18a939d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V11_1_BASELINE.txt +193d6ef4580e5f617cbf92ac80fb6956d8b16c2d56be37638f49e620a30cbae8 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V12_1.txt +017db182ab1a3d02e333964998d2320cae056aa0be4ad317c6b3b2b8e27e5399 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V12_2.txt +17840549957551985e9d873456143f98e653492ee06a260b6e211582721da22f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V12_3.txt +5511e64d441415f89faceeebb1ab899519521745768c64d6a81ac81e22e97abf KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V12_4.txt +edfde4e295d1f80b169b8275877366a5c9342a71aecb4e4a016915e852fffb61 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V12_5.txt +b76e525ecfc20f9934f79f483f1fe509ac7f8f0c918a620cb1e7f7b6c5925ade KArtSell_Aegis_v13_0_standardization_complete_deduplicated/STATIC_VALIDATION_V13_0.txt +66f6b05facb445f83669d347ebd61a1b61afa256ac94fac6bcf0ccd8eda7e7a6 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V12_1.txt +fa8c07d66deda17d539fa3ae5f74093858b414b1f80c2999e7f3cea3058672fd KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V12_2.txt +3f8f7e4ac42253b1f3005d9efdf779f8ad7b960b8d35afae448e1d27a6382c1a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V12_3.txt +c195703d3c34168603f45d291d130f5d7c4410724203bb465ff98cd6c8aa762d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V12_4.txt +1113bb613fc804ed3770f163ec4561a05d02fe7d8a601102d7eb67f450778e02 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V12_5.txt +dd22efa9924b13fa72e9b72b20728394f9f3725b82b4e2f3079931eaa21b7f16 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/VALIDATION_EVIDENCE_V13_0.txt +e4d95a972d5a91d315202f27426deb59163ee9b3a843bef02cdec15eb142e9d9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/README.md +28366a0b2d0f85493d39d440a1c754cb3f228207dc49365e7057d27b2f973776 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/events/signal-decision-created.v2.schema.json +d7fa0a9785ef984654dd5b85e82833de13423566b63b445c23f26827d4ebfcfe KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/metrics/outcome-metrics.v1.json +632840aef35d519fb7bd7ef0e515f46d5e21f0492c85681192845776222cacc9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/metrics/outcome-metrics.v2.json +ecea3eaf29769083fe54f467985919197d8111ed4e7a45de0f5361fe2518de66 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/model-governance/evidence-classification.v1.json +f495ddef3cb3c408e0a259491384de40c93637c88c3bd2eb02094528378f3064 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/model-governance/promotion-gate.v1.json +a269a0331b83c0f6ec108e7587de1d20c798036ff8d0c03d726cd854e73d8480 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/policies/sell-policy-contract.v1.json +0fcd3ff9940b4f8d79c3bc2d4d6c3909b246279a2e369a2aeff456fe7f7748e4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/schedules/execution-assurance.v1.json +c484a4296f43166b88fa6d672892ec058a3b227afbf05887e598322852d083aa KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/schedules/model-operations.v1.json +4a75e80ffc6919f5e83d838576c902fab96de68c8b34df474b980516f248c546 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/contracts/schedules/model-operations.v2.json +0247e5a9723d72af74ad0c585baf14d7ff64d08956796154e1aa43f7e0893f66 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0000_building_blocks.sql +597a0caf9b0a4000143ea983448a5287d945f4f5ee3fc00d6191314a8d642b35 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0010_signal_engine.sql +3f441220471728dac654d53f5e398e268488f9ff12a208a46f6d06d392058bc7 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0011_signal_engine_hardening.sql +1322a701291d2a68f6172cd0d363296afa32df724fce2965314e59ebd2af98c5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0012_signal_engine_integrated_hardening.sql +42035f15d92e93f24fd47cc9fd4f918c1bcd99e3188b20a056dc3499ff0cd9b1 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0013_execution_readiness_building_blocks.sql +af9366067f441b5b35b8702fa905579de914e5f972a7d1f26ab8fb90c8e5fc28 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0014_signal_engine_lot_weight_and_policy_trace.sql +ae063fd73907d11c533d07510c9b48d46cd5a464e903086678e930e97a73ded2 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0015_signal_engine_semantic_versioning.sql +2b473bdb80bf51adf781b439ff66e9975e60a970b89b4ca8b61bc5a50699dc36 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0016_continuous_model_operations.sql +322294527e29a78bec818eaf8090dcfc8c42ae90ea348452e34cfbb3c9f56527 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0017_execution_assurance.sql +ed849cc5b4bc28aace3004016b6fdca6bffc47cbcfb895336ae17b575bd1b9f4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/db/migrations/0018_v13_model_feedback_loop.sql +9550673df5a1373ae78838a43863c7decf29cb53dcfc298b698944f2d1040c78 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docker-compose.yml +5f3c881f14cacb03e78741cc313404aafcf4e6f861a10aebc4ff3aed59a29c65 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/00_EXECUTIVE_PROPOSAL.md +ad3c6f6d86e7e37a0037e3e401b9a0b581f6396471b04d536a7193920063c35e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/01_SOURCE_AUDIT.md +fa6216fe2b1a67a6cd6d0e677932450def56db4e920a7ad782ff98e4da87ff7a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/02_ALGORITHM_REFACTORING.md +1733fecb7567036fe0d6b5b963fa27d199c25b5d173fc3ba0ad1aceba389743c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/03_ARCHITECTURE_BE_FE.md +8cbfacfc4e34bdf93af561ce1af1ecad51c351960d90ff2eb645635ff6d4386b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/04_WBS_V11.csv +949dbf58bdf8d0ac6dc4be9e65a80b8fcef02702f2d527a2dba724eb0c59c972 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/05_TECH_DEBT_REGISTER.csv +1d4b119e21b175fff9e4ff4ee5e054f55ac27a1e96c9c12ea1602d25212cbcee KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/06_VIBE_CODING_GUARDRAILS.md +67d2096bb9010ef4950b84ee34c277d64e967978eb238ce9bb6927c29d14f2aa KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/07_VALIDATION_GATES.md +0a4fd514843232270b3823b4eaa4ee526b03e626831f4ca58261cc7fecaf7345 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/hardening/00_STRATEGIC_HARDENING_REPORT.md +1e9824baf092631ebc9e03c5b6b7e082c5991681718e956207429fb0ba2bf4a7 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/hardening/01_ARCHITECTURE_FITNESS_FUNCTIONS.md +5f775cf9fe110be277bb8a8bc111b1b1302506fe6eab7e075f42065fea9ac8d3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/hardening/02_ALGORITHM_CONTRACT.md +d238a8bb806997b4ceb703cb737c6e383e01b1ea869476bfa08e914d0277d14a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/hardening/03_WBS_DELTA_V11_1.csv +e469c0dcf33fcdb1816837887c6ee6afa772f5746619622b933ccfbab8e804dd KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/hardening/04_TECH_DEBT_REGISTER_V11_1.csv +8990a1cd00f07e5753cbdcb566a497e3fbce5a1843067f782366745389f7ced5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/ADR.md +e410c897e85ddd7771bf4bdd68d043737cac34b718021cca8fc4f4d092da87c2 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/AI_CHANGE_CHECKLIST.md +029fc8e75ec1b69fe44579c9ba229acaeb6a8f99b7006bff0b70cfcbabbc54cd KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/DATA_CONTRACT.md +2e9f3f43a6c4988f815d31c736d39910e98893566d63bc1ea9a0a24cbff84b3a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/FEATURE_PACKET.md +48bf43f72416f19a8ac8b17d71c48783fa1d7f7baa97993375912e4e457ac4d3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/IMPROVEMENT_PROPOSAL.md +e350cd732f504910a1d734f4734dfe7e7e1e75b933d1a35b2b641833fa9db786 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/MODEL_CHANGE.md +a7b73e7a40234624234cf27cb21e0ab4cd96073d226f3a90b7a7c5ef6ee5e5f5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/MODEL_EVALUATION_EVIDENCE.md +93b7bc71ff76273b2b6a1a480bfb419872c4604a8c63e5a5ed9ded86b6f8a589 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/MODEL_OPERATIONS_RUNBOOK.md +3373a21328baa61a7af256ca38975c3a1f01a4f05f0733938e3c91e771ce146b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/RELEASE_EVIDENCE.md +3bcec4538808b77feaf0aadab4ad20864c2d1e6330717fb3d98f85c7be01d059 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/RUNBOOK.md +31ba947101b85f8a43c1376e9e2d8290194fd9ed3db53df09493d83b8694545f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/SLICE_SPEC.md +8e1083cf3d55450b1a39ba10efc45e99c28866a68a81ca3444730a56d9353ecb KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/TECH_DEBT_ITEM.md +444fe99b4a8bdb7cf8d4267580bd5fddbb80bf0171665e319b1e04739ea94db6 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/templates/TRACEABILITY.md +1826870263e000902b0cc6f604ad9a4617baf880bf5bf27974cfffb379f3c1b3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/00_EXECUTIVE_INTEGRATED_PROPOSAL.md +3e611a58c4232d911f8b2f0b0ef97f1faf7ada9db421a761fb4a34f68bdc9111 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/01_SOURCE_AND_GAP_AUDIT.md +98ed6dde35b9e9750d19eae71de9d8979b05434b830ebb009afa2d7477ba3105 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/02_ARCHITECTURE_STANDARD.md +7fdca2d13b58e93e21697ac32ebe6ea7332c2d6242377660ca4ab66f85632476 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/03_ALGORITHM_AND_DATA_CONTRACT.md +ddfb545d33e973648546485bd4c86ac7aa4958cf34c98c3520975f10c8d16184 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/04_BE_FE_COMPONENT_STANDARD.md +5bdae90c9d5cca4310c6abfd78b2fe1e3e1e0f5e51bfd7b63b979d2f09bd25b0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/05_VIBE_CODING_AND_HALLUCINATION_CONTROL.md +bea750cf65879d4e84b3bfd60b8f50a2ad9bf0fcac2e2d756f0e7359bf5387d4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/06_DELIVERY_GATES.md +3477c3d239a6a4f66b6a08aa377969b85895268d4d7f09dcea43b68a63ae0689 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/07_WBS_MASTER.csv +3c2eef83cb8de38158e6518ec7c2b372afe76581f1ebe2806cf4008ab6d1c79a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/08_TECH_DEBT_REGISTER.csv +bf50e165191c9c31f33fce29da4f67c80b1a40a9fbfd96230419659313ad88f1 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/09_TRACEABILITY_MATRIX.csv +d1feec7f28d32fc3ca2adccb741a6c237c1a3401dd3a0c88c177f6a1d5c3fe8f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/10_DECISION_LOG.csv +38806060738e7ef0345db8e2f187c9ab65080969d848b1185af89b6220e40857 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/11_20_DAY_RESTART_PLAN.md +5dc8734f6980e63d5d69338241a9d5b36d502d574482b8a0c133de14674e310f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/12_TEMPLATE_USAGE.md +62845eaf5382ed78e6b6065f3e95c4af9cd87f71bc418bf0077b68e727fce832 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/K-ArtSell_Aegis_v12_φå╡φò⌐Ω│áδÅäφÖö_∞ïñφûë∞á£∞òê∞ä£.docx +d995ab9382f51286383d2cebd9c82dc8e6095f417af79cf7a115ed2ca0a145e4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12/SOURCE_COVERAGE_MATRIX.csv +60422f75964e5db2539b64f5ec04826a835919724a9c08a636566544c2e4b8f5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/00_EXECUTIVE_EXECUTION_PROPOSAL.md +05c73936ad859ec66698cd745b3be4bd8bc642a4acf61c4396d169dd8e46a528 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/01_SOURCE_COVERAGE_MATRIX.csv +2cf720645ae6b3d616668ddee566149cc4b96e698ca1a3c44d15c415d4d4e0c7 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/02_STRATEGIC_ARCHITECTURE_AND_SOLID.md +dce7ef1c369da55427cbb082a6972dc048e3b664130b068c9792315e371fb1ab KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/03_ALGORITHM_GOVERNANCE_AND_CONTRACT.md +0b302657f300c4cf25a4a2542a9635ef71a9e18a8e17cf1c0415cd95276fdf2f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/04_DATA_INTEGRITY_NORMALIZATION.md +cb28fafaafb10e462cee3f4e4b1e7a68cf65b6d64a37d5f8c9d1fd8ecdbc02c4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/05_BE_FE_JOB_COMPONENT_STANDARD.md +a3209ea8c8ed064fe22b79e320d5d56705b2a3c64cc6dcecc0f5d945fd795d11 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/06_SLICE_CATALOGUE.csv +cdc466349eb6bc3949fb481d8a885ec304f46fa6ec886b60ee66277f228b2dc2 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/07_DETAILED_WBS_MASTER.csv +333beee330da6289076674ba3814eb9a6f3db111c549f51583e49a3afcde2843 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/08_TECH_DEBT_REGISTER.csv +eb24a3d8265a5b96268f363a116ab72bd5cbed6e6a4b5b604d5454450b2978c0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/09_TRACEABILITY_MATRIX.csv +f50f0feddc870733080dcb2b18de3b2247aa8ec95df91576f7b0a5240d8fec59 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/10_DECISION_LOG.csv +80d867db058b60503ba6cb584f952020f9388feeead89506868de914b678f0a9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/11_VIBE_CODING_HALLUCINATION_CONTROL.md +6955334ba5cee3723454936a5ede79a0c471a06d2a09ef872949eefbd80e7699 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/12_PROCESS_SIMPLIFICATION_AND_STANDARDIZATION.md +27a0f5c997fdf8c77f65071bdfcb252d58b439996a3a654c69d758ea4179d966 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/13_GATES_AND_20_DAY_RESTART.md +2cac8b3632b0a14318d62ba6d93a9ea099ad647cb6935da8e4c907ad7b58bed0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/14_PACKAGE_CONTENTS.md +eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/K-ArtSell_Aegis_v12_1_∞ïñφûë∞ñÇδ╣ä_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx +df2a3d8b2f4ec583554647fbe497a9479657c4a18a641a26bc6875bafe803d65 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_1/VERSION_COVERAGE_AND_SUPERSESSION.csv +6539b86410feee04c09c248679b9c5fc82477dea4a76b9aa2768d40649519615 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/00_EXECUTIVE_STRATEGIC_PROPOSAL.md +e5483c5c0585d2774d75237e2e19a4557387e0feb5dfca00f39894177a40be84 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/01_SOURCE_COVERAGE_MATRIX.csv +225698b05dc81508d0d3017db48ac3c267a4f32517c8659cacdf23e7ce586010 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/02_ARCHITECTURE_REFACTORING_STANDARD.md +b5a0a4b4bd77c23fbd2be28ca844f7094ca8685d83533fd77759006b803443e6 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/03_ALGORITHM_SELL_REENTRY_CONTRACT.md +71c5d215fc5905d2a7eff7b2005bc08d8142e25ea046ca54cbcdec0e103fabce KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/04_DATA_INTEGRITY_PIT_LEDGER_READMODEL.md +1a5e8b0f65e6fc9cb20c61187a25ee27759a4f31aa43076ac6bff127ec4abfc1 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/05_BE_FE_JOB_IMPLEMENTATION_STANDARD.md +4dc50fd77bd7528f2c215d9aa3fc6528838db6578a7202aa7296de88dc022e33 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/06_SLICE_CATALOGUE.csv +fdd99b4043b4db30f13f88eae2fffda95c5753eb15a86b0e903b342bb1892713 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/07_DETAILED_WBS_MASTER.csv +0350c0158bac9d71ca47a110684f3b90820f44995cd57c922145362f4d0efc07 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/08_TECH_DEBT_REGISTER.csv +2e0ac20322760e79397f0068eb7bb9ac63b8462e275565372fac85679245c1cd KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/09_TRACEABILITY_MATRIX.csv +524a34a79401942890fdae9309405464bdb7223234bf3aee1ee5efa4f9d622c9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/10_DECISION_LOG.csv +e4e03c7cedac9da39ed47f2fcd1599fe290eb578add8e06fe5111c29f61c7eb9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/11_VIBE_CODING_HALLUCINATION_CONTROL.md +a7610a7c07dc514edb48f5a9172c0aa73daecf57b4d28470c1ea9cb9d7de244c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/12_GATES_AND_20_DAY_RESTART.md +8e9da021d11e263cf68d427fd2eb825a37e0ba7f414b168a823310f8aecbba1d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/13_REFACTORING_BACKLOG.md +7ec54578a0cb3063f00f5beae7753bf12a04a6cfd6c85389373328102c79b85b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/14_PACKAGE_CONTENTS.md +1a15044cf96b66e5c72d65af02cd6c5f55bc796342e2cff8272d764022bab601 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/15_VALIDATION_MATRIX.csv +11aea457b347d987e7a0349bbbfd3f74f9fe9c7bc95ebe46f75a41568c82d56b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_2/K-ArtSell_Aegis_v12_2_∞áäδ₧╡∞áü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx +e961de3153b6f35789865c188671c154a729c50fd60aa84b5c7deaff7cdb139a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/00_EXECUTIVE_DELIVERY_HARDENING.md +784b776078be598424c81522896b9570ac256619e4965dac8e4f59c5e79810db KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/01_SOURCE_COVERAGE_MATRIX.csv +ffbcd5189a47ecffdf67d6e78e7ecfdb3d2c414bcdd115872cb72ee814f5b50a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/02_SOLID_REFACTORING_AND_COMPONENTIZATION.md +c1a3c2896031eece98519a5510ee0db65e78d6c0746c2d8c7a03b77203c49505 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/03_ALGORITHM_CONTRACT_AND_DECISIONS.md +9552b374694fb92bb23e4dfb1c4d1c6d68b9d86642b9cd638a439d99a0d3468d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/04_DATA_SEMANTICS_PIT_AND_HISTORY.md +d33c98280f2b3602a0e6853798fdfae992c216dc69176951e9a37e77db7b4788 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/05_BE_FE_JOB_DELIVERY_STANDARD.md +626d6ac32fe7786721fb02806aefc22a3c74576c45fc601dae53baa88d89fb05 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/06_SLICE_CATALOGUE.csv +e9c447138c8be409bd05bf67c2d874244c857216b38ee6aa27d468e5d25c0706 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/07_DETAILED_WBS_MASTER.csv +ca1babb3fa0881ed0d7a867531fec55dfc54ecc3bda4d6d352804101ec782215 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/08_TECH_DEBT_REGISTER.csv +de9617ded8565f8db9eed4c4da76617b6118661123ee5327ee9760de84e541c4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/09_TRACEABILITY_MATRIX.csv +e7170a1aebcb84292a15da3776b3d43c82b9623da5ff95463af4df61ed68e8c2 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/10_DECISION_LOG.csv +4073e040852d95bbbb018cf0cbf0872bca28750202758b3f308a790f27db2403 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/11_VIBE_CODING_HALLUCINATION_CONTROL.md +d97289545e0d1c4dfcb2519d9eeeb2dbc3aad5408d07f9b6f6c04c6830dcb2a7 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/12_GATES_AND_20_DAY_RESTART.md +8120c5e72885f8fc8b5fed2c22ecb2036cad2fdb76954db0f2cc661de7409047 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/13_PROCESS_SIMPLIFICATION.md +373d97f174c17842e7106233e1e388a744da779fcc92b74828fecceaa6836e56 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/14_PACKAGE_CONTENTS.md +0d0b5234959a247e9c44ef5e46375b6fde6dfb0aa8d9dbc7c1cc05286b406897 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/15_VALIDATION_MATRIX.csv +0923df8b0e3b85a39c5c88fa9d4603df8719cc7ddad0ee3a23333ba193be8c7f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_3/K-ArtSell_Aegis_v12_3_∞ïñφûëΩ▓Ç∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx +cc3e17bc4707620daf7385235462d2aa90d76352fa80912d59abb497579d4860 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/00_EXECUTIVE_CONTINUOUS_MODEL_OPERATIONS.md +a3b3c953c5fc115988f55e35c58efc8065c3c1a386f5675548753241bee159e5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/01_SOURCE_COVERAGE_MATRIX.csv +2120975b2fd31b9a105a58d95915facf44ed94448bb8b1736f4a9278728f2080 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/02_CONTINUOUS_MODEL_LIFECYCLE.md +8f0c46a759b78535ed52146211a45f4fc41fce20da7bb1e23fb5a7e7a411252f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/03_SCHEDULER_AND_CALENDAR_CONTRACT.md +3a8f5ce6d90f9c1f405c556975edadd2496d42d5762dcabdd8c9e9ffa1e8661b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/04_ALGORITHM_IMPROVEMENT_GOVERNANCE.md +f72c9cdf547e9d17fdcf0bf4adada9afeb3c7263d2fb024481b9397bdaefafe2 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/05_DATA_EVIDENCE_AND_HISTORY.md +4b06305104447624798e1dd7d39d2f2ff2739e6f791e0df73f251e20e89ff18b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/06_BE_FE_HANGFIRE_IMPLEMENTATION.md +d51fdeb497677468deb123e5cb08c1c5e686b5573fc82355c0fa71cb42d7639e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/06_MODEL_EVALUATION_METRIC_CATALOGUE.csv +9a18cfa72ace61e49255d8d6f45944150683de0b670aeba630a29e504d0c7521 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/07_SLICE_CATALOGUE.csv +f17d243630c1c8a2d697998fd4fbb6cebccb74b6777b77b3ea412e3ea6f2b56a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/08_CONTINUOUS_MODEL_JOB_CATALOGUE.csv +ad45b65485e2bfa760228d9c703363b6afd3e0f14211b26e42b7da7c640a4c92 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/09_DETAILED_WBS_MASTER.csv +5c1e8ae9e4cf10c08489f1e137e8e0ba9b4c2f1a5f4eb5c1ca268a5cb14594bc KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/10_TECH_DEBT_REGISTER.csv +94712a972e22aff046811daff95b5fc6d4e91f2d125a50e00c52edfec7594e3c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/11_TRACEABILITY_MATRIX.csv +a1059bb6f008b85de0ff3c0d44c0c49f52e1153270989480f7f2f1b325a15213 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/12_DECISION_LOG.csv +d5e05db9c45e1cdfca41b60bbaa7aa1a2ae5149598a55427806304e9127c5f68 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/13_VIBE_CODING_HALLUCINATION_CONTROL.md +33eb6122773f6cf65a88cba3b845b4078b9eba521d299ae4693bf48ee3e08158 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/14_GATES_AND_ROLLOUT.md +77aaf46e95092076d58e0e1eb8949d8096975659171a1b8873f49e4f2894c4ea KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/15_PACKAGE_CONTENTS.md +df1e334429741f4b231755b5a12cfe718cf350cc51f0440e545374541de604aa KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/16_VALIDATION_MATRIX.csv +e9208fa849caa6576abb3ab857da15219444925cb988ec17dfb01e41c368a148 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_4/K-ArtSell_Aegis_v12_4_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx +3c82e7f58adc9a73f9825c9370b806f7d13d97da006725b863fdedf506c5e16e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/00_EXECUTIVE_CRITICAL_REVIEW.md +9d0e1de97823c4e0341c71103c4d63ba5ae05bf4252cae34fa2422fd08acb63d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/01_SOURCE_COVERAGE_MATRIX.csv +fd6af0eb082f93fa6a34d261f72df6c152ff7d95991c848c008e4d73de00ad63 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/02_ROLE_BASED_BRUTAL_AUDIT.md +af33d02d0d7d4c002ef3e47e28f8970302e417e14ddf81364bd827415a95bdc4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/03_TARGET_ARCHITECTURE_SOLID_REFACTORING.md +0918723ab1072140822e295153e86af537ee77a8aa1a23c2f418825ed9ed128d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/04_ALGORITHM_MODEL_EVALUATION.md +13c1ba13519ffd0828529c9460ddf99755bc8e1f52b4db0c69e974f72dcb1085 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/05_DATA_DB_INTEGRITY.md +0629150d6cc85d20d4707c4a91834c88e07e46d03cadd3eb2dee7adad4306e93 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/06_BE_FE_HANGFIRE_IMPLEMENTATION.md +cc90ccbafefabfebf5b7fe91cade2269a9dec75bc38aef253c626d7a9b63d01b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/07_QA_SECURITY_OPERATIONS.md +1670c8eba6c626f347c5cc461d415b608531a6bc41dce816055641102cfe1a05 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/08_PROCESS_SIMPLIFICATION_VIBE_CODING.md +a0b10b3c6f2b61ae803f939900060359d400a9f775767c205abb0275ccf237c1 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/09_ROADMAP_20D_90D_36M.md +25e825092a9efb87f4e239e49ebe11901c1d4bd593afd41043127c7981ef47bf KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/10_DETAILED_WBS_MASTER.csv +32feff83fb421e661c17e5a0da6a9189aaaffbb19e1bdda3e0ee9de7feff2a6f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/11_TECH_DEBT_REGISTER.csv +ee1337654db1046579be2f5ac0ca93b1a3cf486f9d6e6e7c7ec06df5383a8795 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/12_TRACEABILITY_MATRIX.csv +9bb879bc462d056b410d18ff79f3fbc0e98905d74234a88597dff051301ac46f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/13_DECISION_LOG.csv +50d7a24ed8e7f7a3f85151fc3414fc5466e3261835be5e8302fbd50d5229047d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/14_PACKAGE_CONTENTS.md +86cdce40230fb7fcb2082fbc8ea1321260cc532c5878cfa8a50d594233aa2b60 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/15_JOB_CATALOGUE.csv +b411338ae2c2216979f2340005bb15afbe9c446c737ef51c9015f4d983f92259 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/16_RACI_MATRIX.csv +562ba6c1073dea33f186efb23fc77f718708c2c3339fe6f57dc6921e6cdbea1f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/17_RISK_REGISTER.csv +4f4de90125f8b32938a6cd51dd674369f1d92833e6dd092ce3beef0deae3046c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/18_VALIDATION_MATRIX.csv +751d9509524ff171d57805fb9c26a077e03b2e5e28d6651ef367565f49ef74d7 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v12_5/K-ArtSell_Aegis_v12_5_∞ïñφûëδ│┤∞ª¥_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx +995b9365b2eefafbe4c237d903a2501eb747a5981eddd1c66fd2a0da1aeb0a7b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md +bd1d9384996b4d3c9a8b659d426ea7c184c5b143a4aa80a651c4ac9497768338 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/01_BASELINE_COVERAGE_AND_NON_REGRESSION.md +b971aa49e0c5d7e41881f457993ccfd18a2b7bd8e6d6debdcad75b0cbb638e2a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/02_FRONTEND_ADAPTER_DESIGN_SYSTEM.md +815f6b75d6bbfeccf46549ade300fa59fbce50081b73ee088cb06c6fd7d67c4e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/03_STANDARD_LAYOUT_AND_SCREEN_TYPES.md +efc1539dba04ec857830ad96a11b9d173e165e4dcc89f849e3d9f83dfa4a772f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/04_ALGORITHM_AND_CONTINUOUS_MODEL_LOOP.md +6af961b2b157adba4f8492439fb71ba26762cf5d80289badb03d49805544d9ca KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/05_BACKEND_DATA_HANGFIRE_STANDARD.md +78011a7f196b5ea9b76948d0ef4580d22fed8ddb6e6f5f286913e4f1295a1481 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/06_ROLE_BASED_BRUTAL_AUDIT.md +d79bedcfc3e70d2d2e18655d5aaf878fef8bb22d640b2d5669482582b2d01f8d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/07_WBS_AND_GATES.md +e274bb8ce9215b5920abeb014d9fb24f83bae8a3bdb9db4d8c209b6c897473aa KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/08_DETAILED_WBS_MASTER.csv +8c5e76412849ed51d3efeaf48fc6fb2dcfab8dec1bf48833d22ffe5b6ce7ee55 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/09_STATIC_VALIDATION_SCOPE.md +a59f463438a9b4f06c21e9c17d3811e79e24754a0a99267d4963cee9eb494895 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/10_PACKAGE_CONTENTS.md +96fdf4401916d0afdb7f31505045c8ea8c41af6131a1654d7d9e2651faba350c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/DECISION_LOG.csv +03652978a3f69136d6bfbe4abc9ac4c3e2f093030bd8eb01a13c4f2d8b580d91 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/DOCX_A11Y_V13_0.json +9ad930dad5e42406801383c669638db22826916ce08db75d8a9ada987ae83e7c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/FE_COMPONENT_CATALOGUE.csv +ebea0d84107c87249b9f4f6874c994161af13fde7dba7cee0e77bcad34b32247 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/JOB_CATALOGUE.csv +8914f96178d545c60f7dad41a2042ecb1f8b0ec9287f95984972e43b34d93f37 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/K-ArtSell_Aegis_v13_0_φæ£∞ñÇUI_∞ºÇ∞åì모δì╕∞Ü┤∞ÿü_φå╡φò⌐Ω│áδÅäφÖö_∞á£∞òê∞ä£.docx +e31f9b10829a4ab0b77e230d4b47b62c6964114011e60fd7aebcd6d1cba13dc7 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/SOURCE_COVERAGE_MATRIX.csv +7d0353f540df528e715cf1c5659185a20bdcb543fcfca1badb2c0181d659b2d9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/TECH_DEBT_REGISTER.csv +9d56793b54f9cf99d16daa4a77e84fb9fb5acb09e3c851a158e41c94c07ccec8 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/docs/v13_0/TRACEABILITY_MATRIX.csv +b7440e26816e375d3f986e122a864213622322840567cbabed4d42e0e959b903 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/.env.example +6be1406c5d08027727363eb929ecdad5c67a041aee70a67dc7bd2c1bfc448367 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/LOCKFILE_REQUIRED.md +1affa593f7f9c98256969f121c42127537892e71e26f31c8c6313fd1774c583c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/e2e/research-boundary.spec.ts +7a4ce2b77f1038902f997dda98d95ac94893207ba01bd12808843dc763ef5c94 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/index.html +ffe4c78a210ad972222c196b2b31ae816aad02b490e2ec9b0ea9e8581c40569b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/package.json +b041e6e193829c6d40eac7465a49260832936efc0c9f1c8230f7b6614b7c54a9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/playwright.config.ts +b31bd056c6fbabd70b6b76957c376886becbb03f083703a8fb6da07a11f4331e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/App.vue +de582e44c980fafd81ca884e0d20c364be43b4d18c6a70fa6dced78d5459a27c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/app/queryClient.ts +f0cfaa57644768bfde5c32389b8edc438b5cdd420d5e7d35309832338dcb0d55 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/app/router.ts +1171977cc9f39a2e9b71a32582115c574eeb582cd46ef122cecd07c43f787aed KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/design-system/base.css +1d2344ab9e61ff06f34ff20d08147e9fb75b02245f0d0d8211e66dc8f2672a34 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/design-system/tokens.css +65996936fbb042915f7b74a200fcdde7e410f32a669b1ab9597cfaa4b0faddb5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/env.d.ts +67d58ae4e839d17a21b673596079ec6ff265460c4c02788e810b5a8f475b53fd KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/data-quality/pages/DataQualityPage.vue +9658c6a8d60e7b32b901dcb7f3f8a76959f9d49143775da71c0946ae9b8d436d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/data-quality/schema.ts +f31d36fe731bd0ae96b70cce69b994741b51f6c84ae8fb98066c432d43f1de5e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/data-quality/tests/schema.spec.ts +6210fa768523cc5b40426720151387792c37459534139393a046a0154c3db090 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/api.ts +30035753459c7896966968caac81d573869be93dd1607330d9381dcdc468476a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/components/AutomationBoundaryPanel.vue +a8c01732570de0680d0474ef7d0e257a0457d139db6885600510f82776d0ad98 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/components/ModelOperationTable.vue +0247f8a973d5e9d95cdd7359ce3cf4feb1ff493437c770d896d35c9d688bc4d2 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/pages/ModelOperationsPage.vue +d6f6998a511d0fe346c286421701735b54450b2d5d4ee8a3b6b9ffe500f35717 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/queries.ts +4e42beabfbe81b37be744085c537ca28db51dafa61b85e89c2eaf9e6655e6b5d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/schema.ts +d63c8c3006ef1171a6e5e0c5d7941b5a200a50bea222a092b26c605dc23496ba KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/model-operations/tests/schema.spec.ts +5b11a1d4592d0911991d133a6a55acd189ed3542d40f8ea4c9c83b190406086f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/api.ts +0d1c2b0d955a145c7bcc082e1c8e36e51519f168e82424323985b09d8b6fe609 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/components/PolicyTracePanel.vue +ed0a28e54dfe8a3fd38f336220a4b0522af074b69d41c98764dcd25eaae53d93 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/pages/SellDecisionPage.vue +d9cbf7fb58e0286c19a43bd6052ecf7f65b486af8588d851f2f0d9d831fb41ea KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/queries.ts +7f9dedaa04a4a89490ce21c37dab6c18334d47f9c7e1ab883c3bce82123cd635 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/schema.ts +9f7abcb83e769d81a67574c8e279d02d4ea085ccf3ae13b6310d9d30e8f8ecfd KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/sell-decision/tests/schema.spec.ts +75178459bd73bd0651886aa9eef5da9ecd362cde639076db440f88cfdd19ee5e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/features/ui-standard/pages/UiStandardPage.vue +dee4f911a24d6d115f9a29bd87d1a5d6a2a7b712c0260ad32fe6ad5391ab2400 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/main.ts +536919cbb4146f05fd15a408775ddc592c39af502f896758b603b74da6029762 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/api/client.ts +a2c41433f08513c9139bfa9edd681ffdee9b52fc25e44bd5753c25b56c54ed62 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/api/problem.ts +90b89986d00f945b519da39beec01b80c3ecbcbb3cd19ccc2ced0c720d663c65 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/auth/PermissionGuard.vue +c2a4675341e780275a0bfab7405d32f14f0ac83835123d3c27c2b06a2286a552 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/commands/idempotency.ts +b9aa1927875bad6608054d32f8a99cb450c534567f117220c6409f45efcc3f8e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/contracts/versionSet.ts +d00ca09616bea99e88bd0eeabd4f4e17e2072c11cf4aa31e596fb813d54f8ce6 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/formatters/financial.ts +4b9320a2161fbf07d609cc252e9f7e843b290b6614205841fbbd830b1db7f18c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/formatters/tests/financial.spec.ts +85d3a289c3e3f5e769df0a6ec9f5a7d163e5772c8416e812b30031a64cc90e56 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/status/DataFreshnessBadge.vue +2fac962bc94a84a1bfb318904e600805b61c0fcca229ea658ae055a784aba447 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/DataGridShell.vue +b5c46b8d4780a46c07926b8afa67ab7a8a3d5e90b491e213f6ec7595f6736a44 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/EvidenceVersionSet.vue +b9733a2b7cae7514eb7e3e7a81d9de6e8fbe042373c5cbdc2b635be7d9a6663a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/QueryStateBoundary.vue +cebfc534f43eab9f93c4037870ebd1140e21de5ddb937c38dc5b43b2ff7c2f8a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/VersionConflictDialog.vue +3e4ad75745c944cf0819806b6cc7ed64285d57c963c1252642c922dbcbaf5bbb KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/contracts.ts +0b57b8d7e0dd75d1551c293323a616d7593ba45543999bff8f78c7b77d9edd1c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/AgGridAdapter.vue +fdd26e0258d7721c62e3fbdd0e261097d6ff459658d29c9fe9089ee949015e38 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeButtonAdapter.vue +d7053a680874be0060eca0c36a1bcc85656297b245f89f0f73cc2871bc7d5a87 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeCheckboxAdapter.vue +c7997429a9d2c3fa5ce34da166128c15b38641fb799e5b0f7717eb0ec298e002 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeDialogAdapter.vue +f655c5a0d5a8182a96bfd9e34d4f06461ac0acf3fbef354ef7f208273b3cbd20 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeSelectAdapter.vue +14624b68be436b1fdebcbee32872c902b22b17de31840fa21d644f017f10660f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeStatusTagAdapter.vue +55432e421103111d1fb6e7d75960e7399634a6f4b15b370fb417441a81d2a4df KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeTextAreaAdapter.vue +20f5c4531bf07f9647f46e6d3e490a8a0da7a15788e72aa76e9aabc1df9bddc9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/PrimeTextFieldAdapter.vue +17c809beece82e5c13cf39f678b03239ff4457da6e3c14f5b70234d9d62df6c7 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/adapter.css +b2c7d26fc0281777ec054b798edc1aa0c351203f082d671089be83819ddb9772 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/index.ts +96d68bd905939632104b9520e764f7ae9b63fcbb2fa36b12fea52b3a26f9cf86 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/primevue/installPrimeVueAdapter.ts +f2351c005828452e09dfd649a27a0a3a5d67cf754fa3f0aea50c8180bee0bea0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/tests/uiAdapter.contract.spec.ts +73d4b6217724b63dc48c09cc3be0fff77bb5835394cb58f317a9f808568200d9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/adapter/useUiAdapter.ts +4cf1080b672a0fd6516ff144b9d923c90c7e194c69308ebd4457aa21a0c23f76 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsButton.vue +fb9c98e5ebcc5c43d2511f80d789f936c3149f64690925d1e0c32244e0561c72 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsCheckbox.vue +a6eb87135abee11ec94f340c0fe49eb6c1c92da644d791813c9f6a6676faa192 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsDataGrid.vue +5aac8474ec6e588838e2287389440882445cef13627e9b862f50babac504bdef KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsDialog.vue +f636c804a30bd7776c4a4e3ba1a10767f94bc1bb70cecb1f9130ac83e99d4c18 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsSelect.vue +d4d9a4f823b383981b87025425144376b1d6258c17196874941d2af36de80521 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsStatusTag.vue +5734d94dbb4da4ab7afdab62c43ef6c60a34614cde5f52ee37496d50088e4bee KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsTextArea.vue +f6c475c51e91762b40008d12ae60c30f883f0372efc4c6a064f348abb7077b6a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/KsTextField.vue +530a7b5e7b6945a1f08b70935c869c2d0c6f565e36daf4b9d728366e0fda52bf KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/components/index.ts +af2142b7b4666ff0a22afac9c4e417dba9471feed346e52f503135e82dd97f51 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/feedback/StandardStatePanel.vue +3671e53ef512823a7002778793bbf30465b6e5b9e54accc4e5ece058a8534979 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/AppShellLayout.vue +0a347aa9f705549fd48ffbc0b1e86d358e9823fa4c7845004f6fb91c3ae357a4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/DashboardLayout.vue +f14c4c20eb6d7527cffdb0022370d13515c0fa935b04b2c2f21fbc1c657d4955 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/FormPageLayout.vue +6202ff3d13d9ed06586aac6ab4cc7e2cee15fcc725774439ccf6421a39c68733 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/PageLayout.vue +5ee2e04c8f1b5f99c144be8b277cf61a6d459f1aada5032b20bd02627d8403fc KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/ReviewWorkbenchLayout.vue +b5860635c0952120ac7829434242635da607d74ff8ab0456ba0a93a0f8f0d5ba KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/layouts/index.ts +1713e7863ccdad388c03730179b81d0156639ef1cbf9d4ca15c5ee3fac9a08a9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/BatchOperationsPage.vue +e8f2f40e3167324fbfc6dab9bfa9ca8c7291162a1993cd031374b3c18d76aa04 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/CrudDetailPage.vue +b68de3f91c2751a1a77cb1c981533ab9548baee8ca35deea33834d5a724085fd KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/CrudFormPage.vue +3ce4ec49fae21be45f0b35405d4af97da906a141c4b8118cc768ebf3a2dc7a60 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/CrudListPage.vue +88e2ba235f4690380b91636fb91d4260542d57e04d2c352cdc338e5b0f678c18 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/CrudReviewPage.vue +4a85d9a2105f2971ca1e94593b0c0f30ab320cc967a9bd8ff89a9b354e211640 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/catalogue.ts +32a6270c8a14a9effb0880a0263b231153c2ade767f2c30d128aafab36a68b1a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/index.ts +30bc7fcfb06956193ecfa6b27a5bef96ac8e548b903e48602230159abeb2fbc4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/screen-types/tests/catalogue.spec.ts +4bb9102b6728f74db62ffca6c4706b17234ebe61c516e112b35ff92f76dc0575 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/src/shared/ui/tests/idempotency.spec.ts +653c000f3e469b362c64a1ddd19e0ae0ffb342c03584d642c9ccfb8e143cebfc KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/tsconfig.json +f891ca0002307beb575781f2c724a5536b1a0cc9e20cb3a1b88b27e87f6c9931 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/frontend/vite.config.ts +20c93ca7812d0a9825eef71217156f95ab2f4fe5aadfeb22ebc1c24b630018d3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/global.json +cc0d904862710d49ca540eb8134711e96021f819acf342ca666ce0e3cfab5a9d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/hardening/README.md +77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/hardening/TEST_RESULTS.txt +77df1e886cf382820ed3e7dde597efa6d089c10db9778cfbbbe193675d8dc62c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/hardening/TEST_RESULTS_V12_1.txt +cef2bc0a58a291a799a0da88a43e23200a6beadf70b5a0e3e31114672378f70c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/hardening/kartsell_policy_contract.py +b03c46d40ddf70ba27e62ca95ad10a34c3bd17fd39f3cf84fd8abb16033393dc KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/hardening/test_policy_contract.py +64b0cef0ade8479cd3006142ba03fd630dfccce7907463a36e78d07780bdc2b9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/K-ArtSell_12_2_README.txt +ea5a116771766142f802ded9fcaa851abc24d549cb61e70fdc260f41b7b5154e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/K-ArtSell_12_2_config_proposal.yaml +14eda6f50daf6c66f18a14921f6c02810a5a07a801fe5f05cea352ed4d233d49 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/K-ArtSell_12_2_quant_review_ko.md +80916d1091353de4e80f89ee2e0227231eb477b77c1c5ccf14e713634fcc1be0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/K-ArtSell_12_2_source_manifest.json +75a42fcff9f2df1ea5e46b6f4abaf516557114ae2c10ff15a2fc0085e6121712 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/kartsell_parameter_robustness_fast.py +22b5b0078ca861d8832ad4f2d0763917898dd4403e2df56fc4cb340091856d37 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/kartsell_v12_2_extension.py +dd8c564a1cd3fe87ed8db9b4e89f5e43f1ea41102adbb81a675b4b5f621663e6 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/kartsell_v12_research.py +679e0cecf72ff5f5bc1d808ccbe73d228678ba300aa6f4a671c11bf9bcfa9ebe KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/000660_v11_events.csv +6277c1ab963fed3689cdb214426082a480be0dac17640df5918bd8dc6ee560ac KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/000660_v12_events.csv +3b0d9d29d8522669c3989b57f79823628112a71ebd419e6424d20ef3e34e0b76 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/005930_v11_events.csv +532ace9444a55b25ed132e7e1295efb8054f238e0bce8a6249692e7baa3caf1f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/005930_v12_events.csv +1355c28b430af95bcaa387fc5771fd57e36fa1bf2f3e833883c9845f01ed526e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/035900_v11_events.csv +aaf0e084affdc2b2db3f524bc14c11d1c70094fe70f168b40f4f5a3f2840ccee KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/035900_v12_events.csv +c70823802228d86860a0dc2f28f59391b387bee0e0cb9c4ff220b1202eda89e0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_asset_metrics_10bps.csv +dc295ed6b722f7d333264359347ca2ea25bbc20f148a474e5e6c4153890b01aa KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_cost_sensitivity.csv +6d86d16d7d1b655c7687163d609855c2e203f3620f610e6c531918034c1696a9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_data_quality.csv +3423f6c975b1421ecdb76b93edd08fcfb8dee0bf65d293f2fd9de3653701421c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_period_metrics_10bps.csv +8cf47e7a69b859f0e01932d92ce2cbb1fbe20b46e6cd8c98fac87a9463579efd KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_buy_hold.csv +2486ccc73f256e959a9f17fa5732eeaa515967cd6b991a4c379b6b43d1c6f611 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_kartsell_v11_original.csv +be906730bc90aff11697109b1de251d423e3e7f371097ca23843d03375623a4b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_kartsell_v12_candidate.csv +ab1c61f623e32d65909126485653862f06196032e72b98b915cc261292e4a723 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_kartsell_v12_plus_capital_floor.csv +a736f32c07bde9eb5a9e21a8741a6c426daa3a80212d4f5dea8ec5bd863f574f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_metrics_10bps.csv +d03346128abe6189212ce332e949633f950ab425dca08435ddc8d5cbbcd8758f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_trailing_12.csv +3e03c4a0c528f30460d128cd05feb7e991c62bc8573a3a11c378a6de6701a2a1 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_portfolio_trend_10m_shifted.csv +68cc58174ef9bad112bb687e6c85e8fc6f13df45585e64a93887a9fa8d0b6695 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/kr_sell_event_stats.csv +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_27_stdout.txt +d142f93d8b8fa7d745b97387b88101438bfedc679f47dabc65b344a25f4d8425 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_9_stderr.txt +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_9_stdout.txt +fde3291abc86719fe592191aa95fdb1c39064d60f83abe707fbc83d2b141906b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_fast_stderr.txt +6efb60db099a7ce2572087c4f5b8c08b2216b666754207420e18ca35b0d1b8c5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_fast_stdout.txt +53d994470d88e6458d9563f53b30ccc60cb3b7121a0c119b5d02d71e8e113c86 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_grid_9.csv +75cd54fac7c4ddfb8a17016aba507f0cd8b05914e40feb0f0d7d24ca51f97321 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_robustness_summary_9.csv +53d994470d88e6458d9563f53b30ccc60cb3b7121a0c119b5d02d71e8e113c86 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/parameter_top_train_variants_9.csv +eaa505db2e905aee6c03044b26a59d04a1388c6bc4993fc7cfcc3b765a952a55 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/price_factor_panel_monthly.csv +79f867df5001ebef5e881efd5f8ad120eb6b734eabb4977d2e51fc6ccba496f3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/price_factor_summary.csv +9d9a7482b0fa34538e77b3631ec9f107f60c59311d3aef001483806ad8f8d7ac KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_kr/spy_core_tactical_metrics.csv +66d2dfa8b62336c40cebfb0d529d31b285d4815d01f39ccf5878ff9e0e260489 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AAMRQ_v11_events.csv +1c1406de05d69355d4318e75741b9df272491ec4749b145cda9a407fb9fe6332 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AAMRQ_v12_events.csv +eb68fdbaf0d8a984067235e17bd83e518ee179fbc1dad092b614ef3929a26c19 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AAPL_v11_events.csv +723e2db979a434ee01d3f59031f4bcca98aadec640445ff991346d2fedfd70b0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AAPL_v12_events.csv +aee109b979b25becbe1e860540970d35c7d579407cda02b8ed68cced399bc15d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AIG_v11_events.csv +0d0d4c334b3b1fd1380392de6c1ea1754d0ff630e9b15de59950e0b072cffe7a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AIG_v12_events.csv +e8c9817288685cca37cb7c8d06fa874b39a0aea504fdebd5946f3ffb077a9e54 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AMZN_v11_events.csv +a7ea816fe003aba24b0dfb5d6cb645a11a183eb77f59ac9bf82d303c86713d5b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/AMZN_v12_events.csv +849fc1801f7091d6dd7cc5453ddd24c1cedd7ca6dee87669894af7e6fb2a1cf5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/NVDA_v11_events.csv +a550dd121f5f0645bff406656fdbcedda5530cb929995eaff3199ddb984e4b53 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/NVDA_v12_events.csv +46585765beb33148fbb08ab7594e4fef0ab604237a681217f649bd517d1a323d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/SPY_v11_events.csv +45a3911c6ef11bb5ecbe32a195667d7fbb35dddd63bd098a4ca30fce85d28402 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/SPY_v12_events.csv +8ca591e391285d9b56e2e4a6a630e6b9f62ca64a5c7336ac6cd31a4232aad1e1 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/TSLA_v11_events.csv +d82c0cd43ae199a7596a9ca8773eb45f1e4370357875be4f479a6733f372b090 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/TSLA_v12_events.csv +6844a1992631c06fdc42ee9cb669c36f4e77a7464186eea5d6989c52f5534a2f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/asset_comparison_wide.csv +87fefcaa05dfffc504157afb047353731f8905b811d6db4bd8e21c9888e3089e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/asset_metrics.csv +2e6bb956f89243bb8a2cc10c7efc749696073307168e368e8c53254ec098ffe0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/data_quality.csv +ea81cd53cd9aaebea98c2371cc476e924aaf292a8538d4b3dc54576b4f158e9f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/opportunity_cost_protection.csv +a14187aedb2db3b21a724ac555273df3d802611d1eaf7ad79d5d9713b4083127 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/period_median_metrics_core_six.csv +d4bc325eded6037b82c05f4bf8e05f23e53fd69f11635de700182147747f8437 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/period_metrics.csv +a04e584abef5c7eb0c67f5f2c871cacc64fe53cd9c4f3844fd64196645296413 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_buy_hold.csv +0ff39e7f14f1e0ef1f641098883d9b364d73d5c7cada12624b8c77550d7aa7ba KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_kartsell_v11_original.csv +04338b40657f642ad8f0443ab8a7b7e0fae9b323222e65b61e1196672a1b9ead KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_kartsell_v12_candidate.csv +f54f193832f694064dff4f0a65bea809a450f61e68ee3d1353645ea592326c83 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_kartsell_v12_plus_capital_floor.csv +9b8d5c31bbf5f0c2ac47c8f27881242d19591dbb7bfdf5cd3176147f8b95484b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_trailing_12.csv +dbc21bfe64b8b7e20367cfc1ee27586e4acc31cc7dfa461d09b3d31a27237821 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_all_seven_including_delisted_stress_trend_10m_shifted.csv +156084f5fb232f04d988d3e40da1f6064d61848ad0c45a2f6ecd249aef12037b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_buy_hold.csv +b628f4c8213be786594027eacfc7321de6e87cd28622150aa3798cbcf9228f72 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_kartsell_v11_original.csv +3032fb6dd5cd240c7880f251a1edc644a109e5313b75ea6da654e2eb6e34616e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_kartsell_v12_candidate.csv +799c1025a6973c0b16bf64fceab2ec732997e31a63daad0e26bf56f8d83a95fb KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_kartsell_v12_plus_capital_floor.csv +2777f299358851962916ad8baa4bb5443a538a9d7920178b0506cd5512b82332 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_trailing_12.csv +380110402f8cacb5d048c71a4d3df0834bf67002cf46c3d6ff0ee71ae7e2f1cd KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_core_six_dynamic_equal_weight_trend_10m_shifted.csv +925c99ef6a0cadfbc82021060b28fdbf279851ce588af3fbe02c9eda194fc09e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_metrics.csv +debae6607ef9e6343171764ff85c00835a566fa2f4ea58ab8c539bdd410b3c44 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/portfolio_period_metrics.csv +b21801f9679e45b6dd99b48b74b9bd845a86675ff75845603500d34b88bcc8b6 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/sell_event_stats.csv +aee6ce03a10cca43f9193bed49823a8bd66c61f9ed0a703027a53eed143ef3dc KArtSell_Aegis_v13_0_standardization_complete_deduplicated/research/original/results_us/v11_v12_asset_deltas.csv +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/__init__.py +04780ad286c60287550cf568851fa989853ab938d6676eaba417647052d5cc37 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/generate_manifest_v125.py +2328008d1d0bf9a76db8f5d59ced408d3ba869564a06aef3d10441d706f97ec5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/scaffold_slice.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/tests/__init__.py +b3d91349003f4019001da5e5ea82c3fba522773a17dce1461a5ea71de23afa54 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/tests/test_scaffold_slice.py +49f9579949239b73987e1c59182f67b38d7c647a7691a67c89e07885a851c438 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_static.py +f319db3038987ce8fc248efdbb7e8688cdcad6fe48dbdc592da966ba226f9561 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_v121.py +90bef3e5e5f7208e09603e49a4db85eef140880da4440d4a591044a36aeb3673 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_v122.py +a05e82dcbe04cc72c657f76dcd4b671fff7bf1b532046cbca53c8fec725c8338 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_v123.py +6dc078e5fc82a022a3c326ccf1969f1007bf850ffd0a4394afdb1737019aed97 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_v124.py +d1b50c2e9322ceb4a6300f6c65a238800ffdc83f3b36813bf40ccaa3ab483ffb KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/validate_v125.py +420dd56660dffd0beee364f28262c853a78ed85350a16409a9169f4cd0343f69 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/scripts/verify-prerequisites.sh +14520aa1e6045a4767aa659dbe4a500594f157d516a29ac074e598841f9777cb KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Auditing/AuditEvent.cs +560b8f68d1b6156064fdef4c92a5a5fa44f0792a3b2a93ef58d2f0696fb9c72a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Capabilities/CapabilityOptions.cs +4048b31bac16d5dbebb73fae5cac7896a2e3bd4eab06367cc782b5259bf6cea0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Data/IDbConnectionFactory.cs +2e97a6b30a1ed06b862d97fae657f7872b139b94730dde69842c6aa42227ac43 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Data/NpgsqlConnectionFactory.cs +6ab004694a5ff494e889d56c4d2b7a44fdc527fe7e4b551470c3212f25e47549 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/DataIntegrity/PitRecordMetadata.cs +79e9fd1f5b76dd4971b7b04aa9914423aba4e87ce68a5b3f91ff2dca99b64cfc KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Hashing/ContentHasher.cs +a2f4fe2a1a6c37ab31ff38e2d4838d85ecf1b4b35e85b55d4d14e6ddf75f4f3c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/KArtSell.BuildingBlocks.csproj +671d4761966593b49dfd68f24b553852ba1326149f8afb1f648d178e6efb4347 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/ReadModels/ProjectionCheckpoint.cs +b1815c8329074471ba5481b00e4ee4c1aa49c8d85869ea9ed451e5e10cdabd73 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/DapperInboxStore.cs +4457e830e60b285367b29340be532e4c61ed9fbf8c2ce5e08a6b5e5727916666 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/DapperJobRunRepository.cs +159ecd7f618fb56862895b4daca3534b20b6fe1f7c58684729fe8f605453dfc0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/DapperOutboxWriter.cs +fcf9b6c0bf67ec5ba502f3a1c725a946933c61bf30187f3f840eb3e434e5654c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/IInboxStore.cs +54ed6862813d1a081892570c0f2df31d8de5d18fc7181e3230aef33bd7e17176 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/IJobRunRepository.cs +80d5a19b907a56fe281fcf2e212274537259fe3d5fef6fae1c941b32d0262ae0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/IOutboxWriter.cs +c56ef1f11d3ed2037cf6ae8470fe2d6537d2c9268f30e1e98adbc0e040453ea0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/JobRun.cs +986920dd9f38d63782e6ca9e6d713274032fbd359c6d5f4a75c741aeebf502c3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Reliability/OutboxMessage.cs +f0ceb1632f1eab6cb4b8d9adcb3cc41c9745386f6e7a6fb5fe3d72276e31cc4b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Time/IClock.cs +342eab88234a45d63e50664fc3a421187a11eb55e0af95508cc26cc11c567ceb KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.BuildingBlocks/Versioning/VersionSet.cs +972880c73aee1b7b3165117fc54ec1d698422d96bd95e2b496c41f87aa68f74e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.DbMigrator/KArtSell.DbMigrator.csproj +c8f954c6f8c91aed4af578d4b8bc171b18b47b13392f70ef0b6d3ca9161490f8 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.DbMigrator/Program.cs +3646baaba72858ffc674afc1f176fe235033732f8cc029c38cbf46cfd7b14b1a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/KArtSell.Host.csproj +1af3935e270f41e10b01229e9c118caf9e5244d40313459be5f311f231fc21c7 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/Program.cs +15bbc7992b77f39abc55c8923d8f21e5420ab8636716dd026f7c425e06f4d13b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/Security/DevelopmentHeaderAuthenticationHandler.cs +403d488c62627943a576e7f513f9631a459b7b8f8d65bcc5733100228406cbc5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/Security/FailClosedAuthenticationHandler.cs +7ee3ae000f3c9ae03e029063a4a28c75b119d988a4c6728f6aa6abda7d7d38af KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/appsettings.Development.json +35371b80b902de59cb629cc83130b6bc98ac57d871dd8dd6bccd7eafb71d1e51 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Host/appsettings.json +59abe5ed2a6c2ef827d29b5f8d8ac29e0892894ea9ecc9ac62deef4d5c7d45a3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Application/ModelOperationRequestService.cs +f88da5b17cbdca8d977c2028230fc951919420b8d0b2e3dbb1d652189526e91b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Application/ModelOperationsContracts.cs +f22bae39efcea2f1b12378ff73edb29cbce96c6720cea34ea20944ec517a22ae KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Domain/ModelLifecycle.cs +2798a69fa2df11163e1e58e5282668ba6d3cd45f46c4040a4994afa19cbc1b59 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Domain/ModelOperationDefinition.cs +88504bdecbb27bb98ff9eb9c108875369b039150c853190c30a23767587b6cee KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Domain/ModelOperationExecutionBoundary.cs +b626ce2351b72315d30cd7db96d00bb27dcf06b31af7da918d03b5d8d4d1d8b7 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Domain/PromotionGateEvaluator.cs +2d35d447c8b514fa039764c2a70eab78953f7f726c36fd3b2b492a0556cef57f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Features/GetModelOperationsPlan/Endpoint.cs +8804bbfd9a741b6b5cee1c862997d61cdff655697484f3de9dc485d7e0027369 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Features/GetModelOperationsPlan/Response.cs +eb0f9bffbc88d010956992c635830fd500874f7acf79d9b9219ff60319d3c447 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Infrastructure/DapperApprovedModelContextReader.cs +4870d8b0989b4eb7f169dd75ec7581f85b8c5c079491bc15de99a2264d4934a8 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Infrastructure/DapperModelOperationRequestRepository.cs +857cbd78ca5d197e3c1aa1a2498742bc838589609f0fb445cb963531c18d5373 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Infrastructure/DapperModelScheduleRepository.cs +2ae3de1298c092062205e7920ca724925c644da092d51d6becae4236f086eb7a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/KArtSell.Modules.ModelOperations.csproj +abaa1d299f4871752c08d5c3638d936d9554bc1a59a821c154c3e664ead937b8 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/ModelOperationsModule.cs +68448fa5efde35b3c6bb97432fd10701b91bf1a03577cce8b460e310c5e81232 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Scheduling/ModelOperationsDispatcherJob.cs +3e9e2a6786c80a86a420dc455b0f0ed9730cff856c260b28674a5c9b49f3be6b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Scheduling/ModelOperationsScheduler.cs +7710839fae538111a837ad609dae92e477a38e8b0df2ead60cc25cf81f553e2c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.ModelOperations/Scheduling/ScheduledModelOperationJob.cs +8ee7d75060f5e0aa38f1accb1fd3007c6ae32e6e703a89acbcc0f614fc0e0156 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Application/ISellDecisionService.cs +527707dc415cde676e18af654b3b5259f43d47f28b5a8e35928b2b43d733ab4f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Application/SellDecisionContext.cs +a062d61b5973d8612f71bd97f485d51e4d8694d3c865127e3c217ce85407ed91 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Application/SellDecisionService.cs +d5d14fa872aedf6bfbbcc5452e849557f9e9f67cf38ae63ec125a736072e67c3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/ISellPolicy.cs +fe0cbce192283c19239667357713ab8a43544406cfe22c3cdc3dfbe0ea0cb01c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/ConcentrationLiquidityPolicy.cs +94f409ad020682a44d71bf68c6834a854e7d1a039287491a19fa83ae94982914 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/GapFloorBreachPolicy.cs +92343ac6ff9df82ed0800174298ff9dcd9923f0040b2f61a751554b5adc13a5e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/HardImpairmentPolicy.cs +63f45838322dcb10805273166528d8a52ec310e906f0948b6383b901a47171d6 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/OpportunityCostPolicy.cs +7d3ddd0a4dfa5ea95fc06193c948e38ccb05d35a2a1c219a890c88f6c87e297c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/PortfolioSurvivalPolicy.cs +834ae308087842b48aa7fbf7df6ef19067f8cfca71c943051c51f14f1fa3c8bf KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/Policies/TwoCloseFloorBreachPolicy.cs +def0347a1c52c00bbaad7177c72fd84a72496dea0e17e8d4144cb7d65513e98b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/ReentryStateMachine.cs +a3453bc9442947cc508405b3b3aec1acc0b8861f9455401d292166f733d9e0f6 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/SellDecision.cs +83a537ff6c471fc4a0cf82ca1ad85478d5d73ae37e66df8136ce39c482ad69a3 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/SellDecisionInput.cs +56237139105c73b48cc292a32c75de7d6b71b471fe681701661392b14bf43fb0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/SellPolicyChain.cs +ac5f576c7349a75034b341b4ead5fa1c38934488b1aaadeeb06f53f295e561f4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/SellPolicyContract.cs +2acda27b38206e0750005e90822b0363a176b0021de0f9be4bb18d72296bf0db KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Domain/SellPolicyResult.cs +f722562261966c1e62330ebd90e66ec1cb8ab023c95fd1b870a04c554bd005af KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Endpoint.cs +abb9f6b78762f631e6134f3ea4c7d20cd45280447819a4ca3a42ae0a84e1bd75 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Request.cs +35b5147089eafb935d95715a373a565192c82864fcbac4dcb77b9658a6a10567 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Response.cs +5b78248c1fea4e2dd665adc375bf3784b7a2fb435d49a99da4c63e444495087e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/EvaluateResearchSellPolicy/Validator.cs +b0ee6791bd20a1e5743cb0347358e0570f4b1537d8527cc3f657fe58948ec0c8 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Endpoint.cs +d45bfecac3a453729b252dbbcbd7deb57f7e3892012e796a32739af116e43340 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Request.cs +9251e36434382582702b8c87a3e080f9c04ea9c8450a362163e39166b3bf1217 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Response.cs +918c403bacac2d9a72425cff5c6a6d23a7193391ec20b139a7f6e564f7140da4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Features/GenerateSellDecision/Validator.cs +1ab0e864711b54bfce48823a6dfd6c3408fcf60af8e7438123778e18e65c8149 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/Infrastructure/DapperSellDecisionContextReader.cs +d422b7370a5c318aa716bebd1a4dac01f709a9069912e143f934e158a77c6bbd KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/KArtSell.Modules.SignalEngine.csproj +d2e1beab4e18f7eeb9d06f4f16f8b889f93814fc060ff82843daea269b4b154e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/src/KArtSell.Modules.SignalEngine/SignalEngineModule.cs +2047b3ff3a6d4aa43324c6d82e2504363d284a1ad4593fd19b789d3174c12420 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/Module/Module.cs.template +6a188d448ac4a39866d2264bd12a30910df6466c2c11325f244d60c2a1ef0374 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Endpoint.cs.template +3ce5dea3d11ae737c931b8d59c36a1e8492b62eaec12cd030c3c857bb1da64ee KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Handler.cs.template +ceb371f34a25108a826f395b90a4b33868421d33717277961274802a3e7012aa KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Policy.cs.template +fc39255e5515fa28a46e7494075b5da06fa79d81e6354cd59f27b6ccf72c28a0 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/README.md.template +d0f55d2e3ca509008ae58d8e59f068d9797904a4059850edb5b009070938b90c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Request.cs.template +8023e305f0535ac9bca4404996f0d3a029909ee7abd7829eaa271115fee3f188 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Response.cs.template +41c2e58cedbe58e6fd414d1e2bc58b42d7528e3888a5c253bdbf128cc9739456 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Sql.cs.template +613cde71f35234eb7188703c5ec2bac3cc012b014bc506b321d457a6e0cda4c5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Tests.cs.template +b88b320c6942ae1073e7127f36ecf7f5b18fbfc1363fc4d342a6aa68b155ae1f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/dotnet/VerticalSlice/Validator.cs.template +86b02ba2b05cd4f3e409747a220d31a067801db443ccc1a908af9f55b756cc07 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/hangfire/ReliableJob.cs.template +cedd0e8409863880bd3440756b38c5d3e06927efeb291e5150a26588a95dd8d9 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/sql/Migration.sql.template +9f107759482b99bdc19d8794ed6a01d0e465acea2a5284cf68497170045f3c83 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Endpoint.cs +62a86b432d067ec644577a0732a836bf771e1c347c7cb7cdf28a7bc924e45613 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Handler.cs +ef001a207b832694ee77f78f09e63e293988779b9e0fb350a4964a0aa911ccbc KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/README.md +7aa17ff6e0f20f8f9187d9f499b04111ffa9568fc2c89a3d0867e7510d18bef8 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Request.cs +17470754f87b4ea683a11f937adef284de0d4d19b92a998491193a31048be239 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Response.cs +ccb6587228fbd688b9e15caff2b52de0d7bd9e962786e4e0b2199c0361bc2ae5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Sql.cs +05a45fd89381e3d6307fd0d10f16a4ab4c43bad805ad7983bb026b772065ae8c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/backend/Validator.cs +995f09dd9e9e17c37db3e242eb29c8773711fb2155bd903ea5c9ef98b978638c KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/frontend/api.ts +001bad76fe89dac3548bb269e409606e79e204305be859f987ac772698a4c6d1 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/frontend/pages/__FEATURE__Page.vue +3e36f33f21360131e1bf428faf5b3e11f61261b162f36500fc887de3a6b3e345 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/frontend/queries.ts +d44cf205614eb5957f3d2d7f332e5a08eff7dc5e0c7849565c46abffc85e2d2f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/frontend/schema.ts +1868c28f3f45f7b70eb8af1aad996c3f1ebcd9cada89bd285676142dda85708f KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vertical-slice/frontend/tests/schema.spec.ts +8b5f20b3b6b3b5d05ace88d569f4c354f4b641168bc9d17bbc930f2b0ed2b050 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vue/Feature/api.ts.template +07c89d6f6549586dfac479087b40b9ceb221e31fd7a31b0edacfe574d841fc01 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vue/Feature/page.vue.template +57298077b3c709b4bb598b4d8de5eb0b7656ebac61c306d91bfac1d3bb11e99e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vue/Feature/queries.ts.template +773758f8d9c4a6d8549ae7fe2a6fafd3871afd1e62d03e879cd25c510db32bda KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vue/Feature/schema.spec.ts.template +6e13905385e900e3ec944b26ae362ae0645c55be73f065f6e69bb6e3010aa11e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/templates/vue/Feature/schema.ts.template +916706ab4897ac9ac251507455b73b5ad03479cecfdd0c55287a956abf06f9a4 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ArchitectureTests/KArtSell.ArchitectureTests.csproj +4871eb72b1471b7b263c6fe4ff6cf7b83bc7454722513caa00826a50361530ac KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ArchitectureTests/RepositoryRulesTests.cs +21ed4fe67f70ecd6d34713eea69d3830ce05dd7a5b9997c88b7895a05804b45a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ModelOperations.UnitTests/KArtSell.ModelOperations.UnitTests.csproj +1a0dc2dea56d80e1f2e2d4014e93ed8840964497cf191be7b245bd0b29eb6f0d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ModelOperations.UnitTests/ModelOperationExecutionBoundaryTests.cs +2282f4dca87328eb9602a029329de92abf34e4e5adbe710a86229f4aa45e275e KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ModelOperations.UnitTests/ModelOperationRegistryTests.cs +7a7f4f70f88191943fd62ebae62756cfaa71a45d14817a4b07c7abffdb128824 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.ModelOperations.UnitTests/PromotionGateEvaluatorTests.cs +a7921afc85ad7100c176023d765f1429415cfbe920fb98f5837b9522c546a95b KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/BuildingBlocks/PitRecordMetadataTests.cs +7cbfbbec1b99efb5c7be94ae1bad0a63f744f7c77d1cd1ed4d6ce7525189450a KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/BuildingBlocks/VersionSetTests.cs +bd809f8e5475fc80712a8e63ef86dde6166afbd1881b18cbc2b35d0d8e4db32d KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/KArtSell.SignalEngine.UnitTests.csproj +42d5590486fe77a244ded5d486da8e89f5b4127c59e867cfc977e1876df84487 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/ReentryStateMachineTests.cs +f7abe2df6032b1471b8ddd7996cb55703d7c5a3bd54a6254fbc9e747baa8c8f6 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/SellPolicyChainTests.cs +1b408a0bc1365638322352ef0c4f63309e60550cac6aa71fc0cb970ff0705817 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tests/KArtSell.SignalEngine.UnitTests/SellPolicyContractTests.cs +16b95ff1193efdb0317b9131fa445609562e5cd63a9794ecb8ccffa4d522d4b5 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tools/scaffold_vertical_slice.py +b1621784a67d431c59e35373b81551f92226763d542e5e961a7c472dc5790f77 KArtSell_Aegis_v13_0_standardization_complete_deduplicated/tools/validate_v13.py diff --git a/docs/v13_0/SOURCE_COVERAGE_MATRIX.csv b/docs/v13_0/SOURCE_COVERAGE_MATRIX.csv new file mode 100644 index 00000000..cc26de0f --- /dev/null +++ b/docs/v13_0/SOURCE_COVERAGE_MATRIX.csv @@ -0,0 +1,6 @@ +File,Bytes,SHA256,Role,Treatment +K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx,64063,eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3,Execution-ready proposal baseline,BYTE_FOR_BYTE_RETAINED +K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,402134,d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6,Highest non-regression SI baseline,BYTE_FOR_BYTE_RETAINED +KArtSell_Aegis_v12_5_SPLIT(1).z01,94371840,7c141d504df51ced8bcad972ffd012b7f729cd9d1b55939f919325f050d4564c,v12.5 split implementation package source,BYTE_FOR_BYTE_RETAINED +KArtSell_Aegis_v12_5_SPLIT(1).z02,94371840,d4c9332da83bfab484c6722b9cc2076fee82e50953c04dcbabaa174ad452437d,v12.5 split implementation package source,BYTE_FOR_BYTE_RETAINED +KArtSell_Aegis_v12_5_SPLIT(1).zip,85883855,45434a9de4183a2aceae23b5160226cb04fe1d950366ba126dba122c9dcf0c99,v12.5 split implementation package source,BYTE_FOR_BYTE_RETAINED diff --git a/docs/v13_0/TECH_DEBT_REGISTER.csv b/docs/v13_0/TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..22a126c5 --- /dev/null +++ b/docs/v13_0/TECH_DEBT_REGISTER.csv @@ -0,0 +1,81 @@ +ID,Priority,Debt,Impact,Remediation,Gate,Owner,Status +TD-001,P0,도구체인 실빌드 미검증,C# 컴파일/패키지 호환 결함 가능,승인 .NET 10 runner에서 restore/build/test,G0,DevOps,OPEN +TD-002,P0,pnpm-lock.yaml 부재,FE 공급망·재현성 미확보,승인 네트워크에서 pnpm install 후 lock review/commit,G0,FE Lead,OPEN +TD-003,P0,PostgreSQL migration rehearsal 미실행,fresh/upgrade/re-run/복구 실패 가능,PostgreSQL 승인 버전 4시나리오 자동화,G0,DBA,OPEN +TD-004,P0,원시 연구 데이터 권리·checksum·환경 lock 미완전,제3자 clean-room 재현 불가,Source catalog/license/raw checksum/container digest 확보,G1,Data Governance,OPEN +TD-005,P0,KR 검증 종료 2021-04-16,최근 시장국면 검증 공백,2026 현재까지 PIT 총수익·상폐·기업행사 보충 후 frozen OOS,G4,Quant/Data,OPEN +TD-006,P0,실제 OIDC/JWT 공급자 미결정,외부 Pilot 접근통제 불가,"Auth ADR, key rotation, claims/RBAC E2E",G5,Security,OPEN +TD-007,P0,총수익·상폐수익·컨센서스 공급계약 미확정,생존편향·성과왜곡,공식/상용 source 계약·SLA·재배포 권리 승인,G1,Data Governance,OPEN +TD-008,P0,Fee/Tax/FX PIT 표 미확정,비용후 기대효용 왜곡,valid_from/to 계좌·venue·상품·side·band schedule,G1,DBA/Quant,OPEN +TD-009,P0,Outbox/Inbox crash/replay 실증 미완료,side effect 누락·중복,lease/dead-letter/replay chaos test,G3,BE/SRE,IN_PROGRESS +TD-010,P1,JobRun·Watermark 표준의 일부 구현만 존재,배치 재처리·감사 불완전,공통 JobRun scope/version/hash/heartbeat 정책 적용,G1,BE/SRE,IN_PROGRESS +TD-011,P1,Architecture test가 정적 문자열 규칙 중심,금지 의존 누락 가능,assembly/namespace/schema/API fitness function 확대,G0,Architect,IN_PROGRESS +TD-012,P1,OpenAPI→FE contract 자동생성 미도입,DTO drift·홀루시네이션 위험,OpenAPI artifact diff + generated client/schema gate,G3,BE/FE,OPEN +TD-013,P1,PII redaction·Telegram 보안 테스트 미완성,고객정보 노출 가능,classification/redaction test와 secret scan,G5,Security/SRE,OPEN +TD-014,P1,Model promotion workflow 미완성,무단 모델 활성화 위험,model card/maker-checker/effective_at/rollback 구현,G4,Risk/BE,OPEN +TD-015,P1,Read Model rebuild runner 미완성,stale projection 복구 불가,projection version/watermark/rebuild/diff 도구,G3,BE/Data,IN_PROGRESS +TD-016,P1,SLO/RPO/RTO 미승인,운영 Go 판단 불가,부하시험·백업복구·DR ADR 승인,G5,SRE/DBA,OPEN +TD-017,P2,공통 UI 컴포넌트 승격 기준 미운영,중복 또는 과도한 추상화,3회 반복+동일 의미/변경축 확인 후 승격,S10,FE Lead,OPEN +TD-018,P1,PBO/DSR 전체 탐색·시도 원장 미완성,과최적화 위험,전체 실험 registry+CSCV/PBO/DSR/block bootstrap,G4,Quant/Risk,OPEN +TD-019,P1,자산유형별 재진입 확인팩터 공급원 미완성,재진입 품질 저하,asset policy contract+PIT source+missing evidence downgrade,G2,Quant/Data,OPEN +TD-020,P0,자동주문/KIS 제출은 금지 상태,오활성화 사고 위험,Options ValidateOnStart+CI config scan+runtime kill switch 유지,ALL,Security/Ops,MITIGATED +TD-021,P1,정책 임계값이 문서·YAML·C#에 중복될 가능성,계약 drift,승인 config registry+schema+hash+generated constants,G2,Quant/BE,OPEN +TD-022,P1,DB immutable trigger와 correction event 운영절차 미실증,정정/감사 장애 가능,maker-checker correction replay와 audit trace E2E,G3,DBA/Compliance,OPEN +TD-023,P2,프런트 서버상태/Pinia 책임 경계의 팀 규율 미검증,중복 캐시·stale UI,lint/review checklist+query key registry,MVP-B,FE Lead,OPEN +TD-024,P1,Dependency vulnerability/license 자동검사 미구성,공급망 리스크,NuGet/npm SBOM·license allowlist·vulnerability gate,G5,Security/DevOps,OPEN +TD-025,P1,성능 규모 가정 미확정,배치 SLA/DB index 과·소설계,portfolio/security/client volume 결정·capacity test,G6-A,PM/SRE,OPEN +TD-026,P0,Security/Lot weight field ambiguity in v12.1,Partial-lot sell could miscalculate target security weight,MIG-0014 + domain/API/FE golden vectors,G2-A,Quant/BE,IN_PROGRESS +TD-027,P1,Only final sell policy reason was persisted,Blocked/not-applicable priority path was not auditable,Persist ordered policy_trace_json and internal trace contract,G2-A,BE/Quant,IN_PROGRESS +TD-028,P0,Current-session attachment set differs from prior package manifest,Source coverage claim can become stale,Rebuild source index from six current attachments and verify SHA,G0,PM/QA,MITIGATED +TD-029,P1,Request execution contract remains endpoint-local,Error/idempotency/correlation behavior can drift,Adopt reviewed request execution template after characterization tests,G0,BE Lead,OPEN +TD-030,P0,Outbox dispatcher runtime implementation is incomplete,Stored events may not publish or may duplicate,Lease/dead-letter/replay implementation and crash tests,G3,BE/SRE,OPEN +TD-031,P0,Inbox result-hash/replay proof is incomplete,Duplicate downstream side effects remain possible,Consumer-specific transaction and crash/replay tests,G3,BE/SRE,OPEN +TD-032,P1,Outcome metric definitions are not fully versioned,Historical false-exit/gain-capture can drift,outcome-metrics.v1 registry added; Quant/Risk approval and DB scorecard binding remain,G3,Quant/Risk,IN_PROGRESS +TD-033,P1,Module and feature scaffolding depended on manual copying,Pattern drift and vibe-coding hallucination,deterministic scaffold_slice.py + reviewed templates + tests,G0,Architect,MITIGATED +TD-034,P0,v12.2 legacy weight backfill could be treated as explicit lot semantics,Historic context may create incorrect partial-lot target weight,MIG-0015 semantics version; reader accepts version 2 only; rebuild required,G2-A,DBA/BE/Quant,MITIGATED +TD-035,P0,Opportunity edge with zero requested ratio was clamped to 10% sell,Missing quantity decision could become unintended sell,Fail closed with OPPORTUNITY_RATIO_NOT_POSITIVE and Golden test,G2-A,BE/Quant,IN_PROGRESS +TD-036,P1,CI referenced v12.1 validator and contained duplicate working-directory key,Latest controls could be skipped and YAML behavior ambiguous,"Use validate_v123, single working-directory, scaffold tests",G0,DevOps/QA,MITIGATED +TD-037,P1,Policy values duplicated between documents and C# magic numbers,Threshold and priority drift,SellPolicyContract + machine-readable registry + static cross-check,G2,Quant/BE,IN_PROGRESS +TD-038,P1,Previous package did not include v12.2 itself as a new source attachment,Cumulative source chain incomplete for next delta,Seven-file source coverage and SHA index,G0,PM/QA,MITIGATED +TD-039,P0,pnpm lockfile still cannot be generated in isolated environment,Frontend dependency resolution is not reproducible,Generate and review pnpm-lock.yaml on approved connected runner; frozen CI only,G0,FE Lead/DevOps,OPEN +TD-040,P0,v12.3 C# and PostgreSQL changes are statically validated only,"Compile, package compatibility and migration runtime defects may remain",Run .NET 10 build/test and PostgreSQL fresh/upgrade/re-run/failure rehearsal,G0,DevOps/DBA/QA,OPEN +TD-041,P0,v12.4 ModelOperations .NET 실빌드 미검증,scheduler/API/DI/SQL compile 또는 runtime 결함 가능,승인 .NET 10 runner에서 restore/build/test와 PostgreSQL integration 실행,G0/G3,DevOps/BE,OPEN +TD-042,P0,시장별 거래일·휴장·DST 기반 due 계산 미구현,평가 시점 지연 또는 잘못된 세션 평가,MarketCalendar 기반 next_due resolver와 KRX/NYSE/NASDAQ Golden calendar,G3,Data/BE,OPEN +TD-043,P0,false-exit 정확한 adverse-regret 정의 미승인,연 2% 목표의 재현성과 비교 가능성 훼손,분자/분모/가격/benchmark/window/결측 정의를 투자위 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-044,P0,승인 Dataset Manifest와 Model Registry 초기 데이터 부재,모든 scheduled request가 BusinessHold,source/license/hash/model card 승인 후 seed를 별도 승인 migration으로 추가,G3,Data Governance/Risk,OPEN +TD-045,P0,J10~J24 실제 계산 consumer는 작업요청 template 수준,스케줄은 요청을 만들지만 성과·drift·OOS artifact 미생성,VS-18/19/20별 evaluator와 Golden/integration 구현,G4,Quant/BE,OPEN +TD-046,P1,drift baseline·metric·threshold 미승인,과민 또는 지연 경보,feature/data/prediction/calibration drift별 sample minimum과 threshold 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-047,P1,Champion/Challenger cohort 할당·동일성 계약 미완료,비교 편향과 승자 선택 오류,동일 PIT dataset/cost/window/cohort matching 및 holdout 정책 승인,G4,Quant/IndependentValidation,OPEN +TD-048,P1,개선 제안 우선순위와 중복 병합 운영 미실증,제안 폭증·기술부채 누락·과유불급,impact/risk/evidence/cost rubric와 월간 triage WIP limit 운영,G4,Quant Lead/Architect,OPEN +TD-049,P0,모델 승격 maker-checker workflow와 실제 IdP claims 미연결,무단 또는 자기승인 가능,OIDC claims/RBAC/SoD E2E와 감사 원장 연결,G5,Security/Risk,OPEN +TD-050,P1,scheduler lease·enqueue crash chaos 미실증,중복/누락 request 또는 stale lease,다중 worker·DB restart·enqueue 전후 crash·clock skew chaos test,G5,SRE/BE,OPEN +TD-051,P1,모델 rollback drill 실증 없음,모델 이상 시 복구시간 불명,"분기 fallback manifest restore와 Capability hold, RTO/RPO 측정",G5,SRE/Risk,OPEN +TD-052,P1,평가 evidence 보존기간·partition·archive 정책 미결정,DB 팽창 또는 감사자료 조기 삭제,"규제/계약 기준 retention, monthly partition, legal hold, archive restore ADR",G5/G6-A,DBA/Compliance,DECISION_REQUIRED +TD-053,P0,ModelOperations dispatcher가 이전 버전에서 무조건 등록,미승인 평가 자동실행,v12.5 기본 OFF+Capability startup guard+등록 제거 test,G0,BE/Security,MITIGATED +TD-054,P0,기존 J10~J24 schedule enabled seed,Dispatcher 활성 시 재승인 없이 실행 가능,"0017에서 모두 disabled, 운영 변경승인으로 개별 enable",G3,Ops/Risk,MITIGATED +TD-055,P0,실제 evaluator handler 미구현,요청만 생성되고 평가 결과 없음,J10~J30 handler contract·integration·artifact 구현,G3,BE/Quant,OPEN +TD-056,P0,Hangfire enqueue와 schedule mark 사이 원자성 공백,중복 background job 또는 lost dispatch,dispatch-intent outbox 또는 reconciliation 설계와 chaos test,G3,BE/SRE,OPEN +TD-057,P0,승인 시장캘린더/DST 미구현,잘못된 session·lookahead·SLA,J26와 MarketCalendar contract/Golden,G1,Data/Quant,OPEN +TD-058,P1,Promotion thresholds C# hardcode,문서/JSON/C# drift,machine-readable registry+generated constants+drift test,G4,Quant/BE,OPEN +TD-059,P1,Metric Definition 승인 workflow 미완성,false-exit/reentry 수치 조작 가능,definition maker-checker/effective/version/hash,G4,Risk/BE,OPEN +TD-060,P1,Operation artifact retention/archive 미정,증거 유실 또는 DB 비대,artifact class별 retention/legal hold/archive policy,G5,Compliance/DBA,OPEN +TD-061,P1,Release Evidence 자동조립 미구현,수동 누락과 허위 Go,J30 bundle과 required artifact gate,G6,QA/Release,OPEN +TD-062,P1,Projection rebuild diff 미구현,stale/read model 오류 복구 불가,J28+rebuild runner+source watermark diff,G3,BE/Data,OPEN +TD-063,P0,총수익·상폐수익·기업행사 Golden 미완성,성과·Lot·원가 왜곡,공식 source와 golden reconciliation,G1,Data/DBA,OPEN +TD-064,P1,PIT 유효구간 충돌 제약 미완성,중복 current/effective record,bitemporal unique/exclusion constraints,G1,DBA/Data,OPEN +TD-065,P1,고객 UX 불확실성·반대증거 검증 미실행,오해·민원·부적합성,사용성/접근성/준법 테스트,G3,UX/Compliance,OPEN +TD-066,P0,OIDC/JWT·PII·Telegram 운영보안 미실증,무단접근·정보유출,Auth E2E+redaction+secret scan,G5,Security/SRE,OPEN +TD-067,P0,SLO/Volume/Queue isolation 미승인,배치 SLA와 DB 과소/과설계,capacity ADR+load/chaos test,G5,SRE/PM,OPEN +TD-068,P1,현재 패키지 직접 첨부와 이전 누적 첨부가 혼재,Source coverage 오해,direct/transitive coverage와 immutable baseline archive 구분,G0,PM/QA,MITIGATED +TD-069,P0,Feature의 UI Vendor 직접 import 가능,교체성·테스트·접근성 계약 붕괴,import boundary architecture rule,G0,FE Architect,IN_PROGRESS +TD-070,P0,표준 화면 상태 Matrix의 화면별 편차,경고·만료·충돌 오표현,StandardStatePanel+T01~T10 tests,MVP-B,UX/QA,IN_PROGRESS +TD-071,P1,PrimeVue/AG Grid 실제 build 미검증,API/type drift 가능,pnpm lock+typecheck+vitest+build,G0,FE Lead,OPEN +TD-072,P1,Visual regression baseline 부재,adapter 교체 시 의미 회귀,Playwright screenshots and approval,MVP-B,QA/UX,OPEN +TD-073,P1,OpenAPI→Zod 자동생성 미완료,DTO drift·홀루시네이션,versioned generated contract gate,G3,BE/FE,OPEN +TD-074,P0,Prediction freeze runtime 미구현,사후정보 혼입·평가 재현성 상실,J31+append-only freeze integration,G3,Quant/BE,OPEN +TD-075,P0,평가창 성숙 calendar 미실증,1/5/20/63/126/252 window 오류,J32 market-calendar Golden,G3,Data/QA,OPEN +TD-076,P1,개선가설 maker-checker UI/API 미구현,자의적 모델 변경 위험,J35 hypothesis workflow E2E,G4,Risk/BE/FE,OPEN +TD-077,P1,Challenger 실험 registry 미완료,선택적 보고·PBO 왜곡,experiment registry and all-attempt ledger,G4,Quant/Risk,OPEN +TD-078,P1,Scaffolder 생성물 실빌드 미검증,템플릿 부패 가능,generated sample in CI restore/build/test,G0,DevEx,OPEN +TD-079,P2,표준 컴포넌트 사용량/Owner registry 부재,죽은 abstraction 축적,component registry/deprecation review,G6-A,FE Architect,OPEN +TD-080,P1,전체 v13 ZIP 대용량,다운로드/무결성 실패 가능,single zip test+SHA+optional documented split procedure,G6,Release,OPEN diff --git a/docs/v13_0/TRACEABILITY_MATRIX.csv b/docs/v13_0/TRACEABILITY_MATRIX.csv new file mode 100644 index 00000000..bbe59cbf --- /dev/null +++ b/docs/v13_0/TRACEABILITY_MATRIX.csv @@ -0,0 +1,62 @@ +Requirement_ID,Slice_ID,Policy_or_Data_ID,API_ID,DB_ID,Job_Event_ID,UI_ID,Test_ID,WBS_Range,Release_Gate,Evidence_Status +REQ-PLAT-001,VS-00,DATA/DOMAIN-CONTRACT,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,AEG-VS-00-01..AEG-VS-00-07,G0,SOURCE+DESIGN_PROPOSAL +REQ-IAM-001,VS-01,DATA/DOMAIN-CONTRACT,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,AEG-VS-01-01..AEG-VS-01-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-SEC-001,VS-02,DATA/DOMAIN-CONTRACT,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,AEG-VS-02-01..AEG-VS-02-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-DAT-001,VS-03,DATA/DOMAIN-CONTRACT,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,AEG-VS-03-01..AEG-VS-03-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-CA-001,VS-04,DATA/DOMAIN-CONTRACT,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,AEG-VS-04-01..AEG-VS-04-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-FND-001,VS-05,DATA/DOMAIN-CONTRACT,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,AEG-VS-05-01..AEG-VS-05-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-COST-001,VS-06,DATA/DOMAIN-CONTRACT,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,AEG-VS-06-01..AEG-VS-06-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-CLI-001,VS-07,DATA/DOMAIN-CONTRACT,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,AEG-VS-07-01..AEG-VS-07-07,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-LED-001,VS-08,DATA/DOMAIN-CONTRACT,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,AEG-VS-08-01..AEG-VS-08-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-EVD-001,VS-09,DATA/DOMAIN-CONTRACT,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,AEG-VS-09-01..AEG-VS-09-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-SELL-001,VS-10,"ALG-SELL-001~005,ALG-SELL-PORT-001",SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,AEG-VS-10-01..AEG-VS-10-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-RE-001,VS-11,ALG-REENTRY-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,AEG-VS-11-01..AEG-VS-11-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-BUY-001,VS-12,ALG-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,AEG-VS-12-01..AEG-VS-12-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RISK-001,VS-13,ALG-PORT-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,AEG-VS-13-01..AEG-VS-13-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-REC-001,VS-14,DATA/DOMAIN-CONTRACT,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,AEG-VS-14-01..AEG-VS-14-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-REV-001,VS-15,DATA/DOMAIN-CONTRACT,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,AEG-VS-15-01..AEG-VS-15-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-PUB-001,VS-16,DATA/DOMAIN-CONTRACT,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,AEG-VS-16-01..AEG-VS-16-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-CLD-001,VS-17,DATA/DOMAIN-CONTRACT,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,AEG-VS-17-01..AEG-VS-17-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-EVA-001,VS-18,DATA/DOMAIN-CONTRACT,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,AEG-VS-18-01..AEG-VS-18-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-BKT-001,VS-19,DATA/DOMAIN-CONTRACT,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,AEG-VS-19-01..AEG-VS-19-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-MOD-001,VS-20,DATA/DOMAIN-CONTRACT,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,AEG-VS-20-01..AEG-VS-20-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-REB-001,VS-21,DATA/DOMAIN-CONTRACT,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,AEG-VS-21-01..AEG-VS-21-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-RPL-001,VS-22,DATA/DOMAIN-CONTRACT,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,AEG-VS-22-01..AEG-VS-22-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RECON-001,VS-23,DATA/DOMAIN-CONTRACT,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,AEG-VS-23-01..AEG-VS-23-07,Pilot-A,SOURCE+DESIGN_PROPOSAL +REQ-RPT-001,VS-24,DATA/DOMAIN-CONTRACT,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,AEG-VS-24-01..AEG-VS-24-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-GOV-001,VS-25,DATA/DOMAIN-CONTRACT,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,AEG-VS-25-01..AEG-VS-25-07,G5,SOURCE+DESIGN_PROPOSAL +REQ-SIG-WEIGHT-022,VS-10,ALG-SELL-002~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,AEG22-VS10-001~004,G2-A,SOURCE+INFERENCE +REQ-SIG-TRACE-022,VS-10,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL +REQ-DAT-LIC-022,VS-03,DQ-01~08,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,AEG22-VS03-002,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-REL-022,Cross,DOC-NR-03/06,Cross,Cross,Cross,Cross,T-REL-022,AEG22-X-012,G6,DESIGN_PROPOSAL +REQ-CONTRACT-001,Cross/VS-10/VS-18,sell-policy.v1/outcome-metrics.v1,SIG-01/02,MIG-0015,EVT-SIG-001/J10,UI-SIG-TRACE/UI-EVAL-01,T-CONTRACT-001/T-EVAL-METRIC-001,"AEG-X-034,AEG-VS-10-08..12,AEG-VS-18-08",G2-A/G3,SOURCE+DESIGN_PROPOSAL +REQ-ARCH-SCAFFOLD,Cross,AGENTS/SLICE_SPEC,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,AEG-X-033,G0,DESIGN_PROPOSAL +REQ-SOURCE-123,Cross,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,"AEG-X-031,AEG-X-043",G0/G6,SOURCE +REQ-MO-SCHED-001,VS-18/20/25,model-operations.v1,MO-PLAN-01,MIG-0016,Dispatcher/J10~J24,UI-MO-01,"T-MO-004~007,T-MO-029","AEG-MO-001,004~007,029",G3/G5,TEMPLATE +REQ-MO-EVAL-001,VS-18,outcome-metrics.v2,EVAL-01/02/05,MIG-0016,J10/J11,UI-MO-02,"T-MO-EVAL-001/002,T-MO-ATTR-001","AEG-MO-002~003,010~011,016",G3/G4,TEMPLATE +REQ-MO-DRIFT-001,VS-20,drift-contract DEC_REQUIRED,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,AEG-MO-012,G4,DECISION_REQUIRED +REQ-MO-CC-001,VS-20,champion-challenger matched cohort,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,AEG-MO-013,G4,TEMPLATE +REQ-MO-OOS-001,VS-19,Frozen Manifest/OOS,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,AEG-MO-014,G4,TEMPLATE +REQ-MO-ROBUST-001,VS-19/20,PBO/DSR/Cost2x,BACKTEST-02,MIG-0016,J20,UI-MO-04/06,"T-MO-ROBUST-001,T-MO-MNT-002","AEG-MO-015,037",G4,TEMPLATE +REQ-MO-IMPROVE-001,VS-20,ImprovementProposal,GOV-MO-01/02,MIG-0016,J21,UI-MO-05,T-MO-IMP-001/002,"AEG-MO-017~018,034,038",G4/G5,TEMPLATE +REQ-MO-PROMOTE-001,VS-20/25,promotion-gate.v1,GOV-MO-03/04,MIG-0016,J22,UI-MO-06,T-MO-GATE-001/002,AEG-MO-019~020,G4/G5,TEMPLATE +REQ-MO-ROLLBACK-001,VS-25,rollback runbook,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,AEG-MO-024,G5,TEMPLATE +REQ-MO-REPLAY-001,VS-23,PIT revision/correction,REPLAY-01/02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001/002,AEG-MO-022~023,G3,TEMPLATE +REQ-MO-FE-001,VS-18/20/25,Zod runtime contract,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01~09,"T-MO-FE-001~003,T-MO-E2E-001","AEG-MO-008~009,021,031",G3/G5,TEMPLATE +REQ-MO-OPS-001,VS-25/Cross,observability/retry/security/capacity,MO-OPS-01~04,MIG-0016,Dispatcher/J10~J24,UI-MO-09,"T-MO-OPS-001/002,T-MO-SEC-001,T-MO-CAP-001,T-MO-CI-001","AEG-MO-025~028,032~035",G5/G6,TEMPLATE +REQ-EXA-001,Cross/VS-18/19/20/25,EXA-CONTRACT-01,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-001,AEG-V12-5-001..AEG-V12-5-004,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-002,Cross/VS-18/19/20/25,EXA-CONTRACT-02,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-002,AEG-V12-5-005..AEG-V12-5-008,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-003,Cross/VS-18/19/20/25,EXA-CONTRACT-03,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-003,AEG-V12-5-009..AEG-V12-5-012,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-004,Cross/VS-18/19/20/25,EXA-CONTRACT-04,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-004,AEG-V12-5-013..AEG-V12-5-016,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-005,Cross/VS-18/19/20/25,EXA-CONTRACT-05,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-005,AEG-V12-5-017..AEG-V12-5-020,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-006,Cross/VS-18/19/20/25,EXA-CONTRACT-06,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-006,AEG-V12-5-021..AEG-V12-5-024,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-007,Cross/VS-18/19/20/25,EXA-CONTRACT-07,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-007,AEG-V12-5-025..AEG-V12-5-028,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-008,Cross/VS-18/19/20/25,EXA-CONTRACT-08,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-008,AEG-V12-5-029..AEG-V12-5-032,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-009,Cross/VS-18/19/20/25,EXA-CONTRACT-09,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-009,AEG-V12-5-033..AEG-V12-5-036,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-010,Cross/VS-18/19/20/25,EXA-CONTRACT-10,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-010,AEG-V12-5-037..AEG-V12-5-040,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-011,Cross/VS-18/19/20/25,EXA-CONTRACT-11,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-011,AEG-V12-5-041..AEG-V12-5-044,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-012,Cross/VS-18/19/20/25,EXA-CONTRACT-12,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-012,AEG-V12-5-045..AEG-V12-5-048,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-FE-ADAPTER,Cross,UI-ADAPTER-v1,Cross,-,-,UI-FOUND-01..11,T-FE-ARCH/ADAPTER/SWAP,"V13-FE-001..010,V13-FE-037",G0/G4-A,SOURCE+DESIGN_PROPOSAL +REQ-FE-SCREEN-TYPES,Cross/VS-07..25,T01..T10,Feature contracts,Read Models,J01..J38,UI-T01..T10,T-FE-T01..T10,V13-FE-011..040,MVP-A..G6,SOURCE+DESIGN_PROPOSAL +REQ-MODEL-FEEDBACK,VS-18/19/20/25,PredictionFreeze/Maturity/Hypothesis,ModelOperations internal,MIG-0018,J31..J38,UI-J31..J38,T-J31..J38,V13-MODEL-001..016,G3..G6-A,SOURCE+DESIGN_PROPOSAL +REQ-SCAFFOLD-13,Cross,PWP/SLICE_SPEC,FastEndpoints template,DbUp placeholder,Outbox placeholder,Vue feature template,T-SCAFFOLD-01..03,V13-TOOL-001..003,G0,DESIGN_PROPOSAL diff --git a/docs/v14_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md b/docs/v14_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md new file mode 100644 index 00000000..17e82844 --- /dev/null +++ b/docs/v14_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md @@ -0,0 +1,24 @@ +# K-ArtSell Aegis v14.0 실행 고도화 결론 + +상태: `IMPLEMENTATION_TEMPLATE / STATIC_VALIDATED / RUNTIME_REHEARSAL_REQUIRED` + +v14.0은 v10.0의 비회귀·투자자문형 우선·자동주문 OFF·PIT·불변 Evidence 원칙과 v12.1/v13.0 구현 골격을 보존한다. 신규 Delta는 두 가지다. + +1. 프런트엔드를 실제로 교체 가능한 **UI Provider Adapter v2**로 만든다. Feature는 PrimeVue/AG Grid를 직접 import하지 않는다. `primevue-aggrid`와 `native-accessible` 두 공급자가 동일 10개 capability 계약을 구현한다. +2. 모델 개선을 **Freeze → Maturity → Evaluation → Diagnosis → Hypothesis → Challenger → Independent Validation → Human Review** 상태기계로 만든다. 자동화는 평가·제안까지이며 activation·고객공개·주문은 자동화하지 않는다. + +## 냉정한 결론 + +- 화면이 많다고 제품이 아니다. Source/License→PIT/DQ→Evidence→Decision→Review→Publish→Outcome→Reconciliation이 닫히지 않으면 데모다. +- 공통 컴포넌트를 많이 만드는 것은 표준화가 아니다. 교체 계약, 상태 계약, 접근성, 실패 상태, 버전 이력이 없으면 새 기술부채다. +- 모델 평가 스케줄이 있다고 지속 개선이 아니다. 반증 가능한 가설, 동일 데이터·비용·cohort 비교, 독립검증, 수동 승격이 없으면 자동 과최적화 장치다. +- 현재 패키지는 정적 검증까지만 수행했다. .NET 10 build, pnpm frozen build, PostgreSQL migration rehearsal, Playwright는 승인 CI에서 실행해야 한다. + +## v14.0 수치 + +- 상세 WBS: 480건(기존 400 + v14 Delta 80) +- 기술부채: 100건 +- 의사결정: 62건 +- 추적성 행: 81건 +- FE 컴포넌트/레이아웃/화면 카탈로그: 31건 +- 모델 운영 Job: 25건(J39 추가, 기본 disabled) diff --git a/docs/v14_0/01_ROLE_BASED_BRUTAL_AUDIT.md b/docs/v14_0/01_ROLE_BASED_BRUTAL_AUDIT.md new file mode 100644 index 00000000..f1d8e33e --- /dev/null +++ b/docs/v14_0/01_ROLE_BASED_BRUTAL_AUDIT.md @@ -0,0 +1,28 @@ +# 역할별 처절한 결함 감사 + +## 운영사 +가장 위험한 착각은 “추천이 생성되면 운영 가능”이라는 판단이다. 데이터 지연·격리·승인 대기·만료·정정·대사·민원·DR 화면과 Runbook이 없으면 운영사는 매일 DB와 로그를 뒤진다. v14는 T08/T09/T10과 J39로 운영 상태를 제품 표면에 올린다. + +## 아키텍트 +v13의 Adapter 방향은 맞지만 공급자가 하나뿐이면 교체 가능성은 선언에 불과하다. v14는 reference provider를 추가하고 contractVersion/capability/fail-fast를 도입했다. 단, Native provider를 생산 대안으로 오해하지 않도록 `productionEligible=false`로 고정한다. + +## PM/PL +400개 WBS가 있어도 “누가 어떤 증거로 완료를 승인하는가”가 약하면 숫자 장식이다. v14 Delta 80건은 각 작업에 Artifact, Acceptance Evidence, Owner, Dependency, Gate, Risk를 유지한다. P0는 Gate 전에 종료하거나 승인된 완화통제를 가져야 한다. + +## UX/AX +표준 화면은 예쁜 shell이 아니라 실패 상태의 일관성이다. LOADING/EMPTY/WARN/ERROR/권한/부분/충돌/만료/읽기전용/처리중이 누락되면 고객과 운영자는 시스템을 신뢰하지 못한다. T01~T10은 상태와 증거를 계약으로 만든다. + +## QA +정적 파일 존재 검사는 품질이 아니다. v14는 정적 검증 범위를 명시하되 typecheck/build/DB/E2E를 PASS로 주장하지 않는다. 공급자 교체는 contract test만으로 부족하며 접근성·시각회귀·대량목록 성능이 필요하다. + +## 투자 고객 +고객에게 필요한 것은 내부 점수표가 아니라 “왜, 어느 시점 데이터로, 어떤 비용과 반대증거를 보고, 언제 다시 검토하는가”다. EvidenceVersionSet, as-of, warning, 만료, 승인본 hash가 화면의 필수 정보다. + +## 개발자 +Generic Repository, God Service, 모든 클래스 interface, 모든 화면 AG Grid는 생산성을 가장한 복잡성이다. Endpoint/Application/Policy/SQL/Event/Test의 Slice를 유지하고, 외부 경계와 교체 seam에만 interface를 둔다. + +## 데이터 아키텍트/DBA +현재값 overwrite와 current flag 중심 설계는 PIT 백테스트와 감사의 적이다. Raw/PIT/DQ/Evidence/Ledger/Read Model을 분리하고, 원장·Evidence·transition은 append-only, 화면 성능은 projection으로 해결한다. + +## 컨설턴트 결론 +프로젝트의 가장 큰 위험은 기술 부족이 아니라 “검증하지 않은 것을 완료로 말하는 문화”다. Source/Assumption/Unknown/Decision Required와 실제 artifact를 PR·Release Gate의 언어로 고정해야 한다. diff --git a/docs/v14_0/02_FRONTEND_ADAPTER_STANDARD.md b/docs/v14_0/02_FRONTEND_ADAPTER_STANDARD.md new file mode 100644 index 00000000..7a40968e --- /dev/null +++ b/docs/v14_0/02_FRONTEND_ADAPTER_STANDARD.md @@ -0,0 +1,35 @@ +# FE 표준 컴포넌트·Provider Adapter v2 + +## 의존 방향 + +`Feature → Ks Component → UiAdapter contract → Provider implementation` + +Feature가 허용받는 import 경계: + +- `@/shared/ui/components` +- `@/shared/ui/layouts` +- `@/shared/ui/screen-types` + +금지: Feature의 `primevue/*`, `ag-grid-*` 직접 import. + +## Adapter v2 + +필수 capability는 Button, TextField, TextArea, Select, Checkbox, DateField, NumberField, Dialog, StatusTag, DataGrid 10종이다. 공급자는 contractVersion `2.0`과 capability set을 제공하며 bootstrap에서 누락을 fail-fast한다. + +- `primevue-aggrid`: 생산 후보 +- `native-accessible`: 교체 가능성·계약 검증용 reference, 생산 비적격 + +교체는 환경변수 `VITE_UI_ADAPTER`와 provider resolver에서 수행한다. Feature 수정은 허용하지 않는다. + +## 승격 규칙 + +공통 컴포넌트는 3회 반복만으로 승격하지 않는다. 의미, 실패 상태, 접근성, 변경축이 같아야 한다. 단순히 markup이 비슷하다는 이유로 공통화하지 않는다. + +## 공급자 교체 Gate + +1. Adapter contract test +2. 키보드·landmark·label 접근성 +3. 화면 상태별 visual regression +4. T01~T10 상태 matrix +5. 대량목록 성능 +6. 보안·라이선스 검토 diff --git a/docs/v14_0/03_STANDARD_LAYOUT_SCREEN_TYPES.md b/docs/v14_0/03_STANDARD_LAYOUT_SCREEN_TYPES.md new file mode 100644 index 00000000..2b730741 --- /dev/null +++ b/docs/v14_0/03_STANDARD_LAYOUT_SCREEN_TYPES.md @@ -0,0 +1,26 @@ +# 표준 레이아웃과 화면 타입 + +## 레이아웃 + +- AppShellLayout: 환경·자동화 경계·navigation·skip link +- PageLayout: title/as-of/version/status/actions/filters/aside/footer +- FormPageLayout: form + evidence preview +- ReviewWorkbenchLayout: queue/detail/decision maker-checker +- DashboardLayout: KPI/primary/secondary/alerts + +## T01~T10 + +| ID | Component | 용도 | 반드시 보이는 증거 | +|---|---|---|---| +| T01 | SearchListCrudPage | 검색·목록 CRUD | URL filter, 권한, export 범위 | +| T02 | DetailReadPage | 상세·증거 조회 | as-of, VersionSet, audit | +| T03 | EditFormPage | 등록·편집 | Zod, If-Match, Idempotency | +| T04 | MasterDetailCrudPage | Master-Detail | route selection, dirty guard | +| T05 | ApprovalWorkbenchPage | 검토·승인 | maker-checker, reason, warning ack | +| T06 | StepWizardPage | 단계 흐름 | resume, branch, 재검증 | +| T07 | ScorecardDashboardPage | 일평가·SLO | metric definition, sample size | +| T08 | BatchOperationsPageV2 | 배치·데이터 운영 | JobRun, watermark, replay scope | +| T09 | ReconciliationExceptionPage | 대사·정정 | before/after, correction, audit | +| T10 | VersionGovernancePage | 모델·정책·데이터 승격 | 동일 context 비교, gate pack, rollback | + +모든 화면은 StandardScreenBoundary를 통해 실패 상태를 통일한다. 디자인 시스템은 화면 상태를 숨기지 않는다. diff --git a/docs/v14_0/04_ALGORITHM_CONTINUOUS_MODEL_FEEDBACK.md b/docs/v14_0/04_ALGORITHM_CONTINUOUS_MODEL_FEEDBACK.md new file mode 100644 index 00000000..48af2554 --- /dev/null +++ b/docs/v14_0/04_ALGORITHM_CONTINUOUS_MODEL_FEEDBACK.md @@ -0,0 +1,29 @@ +# 알고리즘·지속 모델 평가/개선 루프 + +매도 우선순위는 유지한다. + +`HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION/LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION` + +상위 위험은 하위 기대수익으로 상쇄하지 않는다. 재진입은 비가치훼손 매도의 계약 일부이며 새 CycleId/Lot, 최소 대기, 단계 간격, 만료, 중복방지를 가진다. + +## v14 피드백 상태기계 + +1. J31 Prediction Freeze: PIT cutoff와 VersionSet 동결 +2. J32 Outcome Maturity: 1/5/20/63/126/252 거래일 창 성숙 +3. J10/J11 Evaluation: 비용후 outcome·scorecard +4. J17/J33/J34 Diagnosis: drift·false-exit·gain capture·reentry·calibration +5. J35 Hypothesis: supporting/counter evidence와 반증 기준 +6. J36 Challenger Plan: frozen registry, OOS, cost stress, stop criteria +7. J19/J20/J37 Independent Validation: PBO/DSR/재현성/비용 2배 +8. J22 Human Review Pack: maker-checker 투자위·리스크·준법 +9. Activation: 별도 수동 change approval만 허용 + +## 절대 금지 + +- scorecard가 좋다는 이유의 자동 model promotion +- threshold 자동 변경 +- 자동 고객 공개 +- 자동주문/KIS 제출 +- 서로 다른 dataset/cost/cohort의 champion/challenger 비교 + +J39는 feedback cycle의 stuck/illegal/evidence gap을 감사하며 기본 disabled다. diff --git a/docs/v14_0/05_BACKEND_DATA_HANGFIRE_STANDARD.md b/docs/v14_0/05_BACKEND_DATA_HANGFIRE_STANDARD.md new file mode 100644 index 00000000..14610ef6 --- /dev/null +++ b/docs/v14_0/05_BACKEND_DATA_HANGFIRE_STANDARD.md @@ -0,0 +1,20 @@ +# BE·Data·Hangfire 구현 표준 + +## Vertical Slice + +Endpoint는 HTTP/Auth/ProblemDetails, Application은 orchestration/transaction/idempotency, Domain Policy는 순수 결정, Infrastructure는 Dapper/PIT/Adapter, Outbox는 side effect를 담당한다. + +생산 Command는 Evidence 값을 클라이언트에서 받지 않는다. 최소 식별자와 as-of를 받고 서버가 승인된 PIT Context와 VersionSet을 조회한다. + +## 데이터 + +- 원장·현금·Lot·Fill: 3NF, unique source key, reversal/correction +- PIT: source_event_time/published_at/ingested_at/effective/revision/hash/dataset +- Evidence/Decision/Transition/Activation: append-only +- Read Model: Owner/ProjectionVersion/Watermark/Rebuild/Stale + +## Hangfire + +모든 Job은 JobRunId, Scope, IdempotencyKey, Watermark, Attempt, DatasetId, SourceVersion, CorrelationId를 가진다. retry는 기술 오류만 대상으로 하고 데이터 미완성·승인 미완료는 BUSINESS_HOLD로 처리한다. + +q-market-data, q-fundamentals, q-feature-risk, q-recommendation, q-evaluation, q-reconciliation, q-research/q-backfill, q-control을 분리한다. 연구 작업이 고객 SLA queue를 침범하지 않는다. diff --git a/docs/v14_0/06_WBS_GATES_AND_TECH_DEBT.md b/docs/v14_0/06_WBS_GATES_AND_TECH_DEBT.md new file mode 100644 index 00000000..6675674a --- /dev/null +++ b/docs/v14_0/06_WBS_GATES_AND_TECH_DEBT.md @@ -0,0 +1,20 @@ +# 상세 WBS·Gate·기술부채 + +v14 WBS는 480건이다. 기존 400건을 삭제하지 않고 80건을 Delta로 추가했다. + +- AEG-V14-001~012: UI Adapter/Provider/Component +- AEG-V14-013~040: T01~T10·scaffold·접근성·visual·성능 +- AEG-V14-041~060: Model Feedback Cycle·가설·J39·수동 승격 +- AEG-V14-061~070: ProblemDetails·Concurrency·Idempotency·PIT·Read Model·Outbox +- AEG-V14-071~080: CI·DB rehearsal·E2E·SBOM·SLO·Release·Packaging·Go + +Gate 기준: + +- G0: 도구체인·아키텍처·adapter contract·migration rehearsal +- G1: Source/PIT/DQ/Calendar/Cost 계약 +- G3: Outbox/Read Model/UI E2E/승인 공개 +- G4: 252일·2국면·false-exit·reentry·PBO/DSR·독립검증 +- G5: Auth/보안/DR/SLO/kill-switch +- G6: Release Evidence와 운영·준법 통합 승인 + +기술부채는 100건이며 v14 신규 TD-081~100을 추가했다. 특히 runtime build 미검증, feedback repository 미구현, pnpm lock 부재, migration 0019 rehearsal, metric definition 원장 미완료는 Gate 차단 항목이다. diff --git a/docs/v14_0/07_VALIDATION_TRUTH.md b/docs/v14_0/07_VALIDATION_TRUTH.md new file mode 100644 index 00000000..3152d239 --- /dev/null +++ b/docs/v14_0/07_VALIDATION_TRUTH.md @@ -0,0 +1,23 @@ +# 검증 진실성 + +## 수행한 검증 + +- 패키지 파일/JSON/CSV 정적 무결성 +- UI vendor import 경계 +- Adapter v2 capability 선언 +- T01~T10 파일·catalogue 계약 +- J31~J39 registry/contract/migration fail-closed +- WBS/기술부채/Decision/Traceability 개수·ID·필수 필드 +- 첨부 원본 SHA-256 +- Python unittest 및 패키징 비재귀 검사 +- DOCX render 및 페이지 시각 검사 + +## 수행하지 못한 검증 + +- .NET 10 restore/build/test: SDK 없음 +- pnpm frozen install/typecheck/test/build: 네트워크·lockfile 없음 +- PostgreSQL DbUp fresh/upgrade/rerun/failure: DB client/server 없음 +- Playwright browser E2E +- 252거래일 Shadow, PBO/DSR, 독립검증 + +미수행 항목을 PASS로 표현하지 않는다. 현재 상태는 생산 준비 완료가 아니라 실행 가능한 계약과 골격을 고도화한 상태다. diff --git a/docs/v14_0/08_DETAILED_WBS_MASTER.csv b/docs/v14_0/08_DETAILED_WBS_MASTER.csv new file mode 100644 index 00000000..a7100a2d --- /dev/null +++ b/docs/v14_0/08_DETAILED_WBS_MASTER.csv @@ -0,0 +1,481 @@ +WBS_ID,Sprint,Weeks,Slice_ID,Slice,Module,Workstream,Requirement_ID,API_ID,DB_Migration_ID,Job_Event_ID,UI_ID,Test_ID,Task,Artifact,Acceptance_Evidence,Primary_Owner,Secondary,PD,Dependency,Gate,Evidence_Class,Risk,Status +AEG-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,Cross,Version Coverage Matrix 고도화,Version Coverage Matrix·Supersession Registry,모든 첨부와 v10/v12/v12.1의 Retained/Improved/Superseded 상태 100%,PM/Architect,Architect/QA,5,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,Cross,global.json 고도화,global.json·Directory.Packages·node/packageManager·lock 정책,승인 runner에서 dotnet restore/build/test 및 pnpm frozen build 재현,DevOps,Architect/QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,Cross,모듈/namespace/schema/API 금지 의존 Architecture tests 고도화,모듈/namespace/schema/API 금지 의존 Architecture tests,"Domain 기술의존 0, 모듈 직접 DB 접근 0, ID 중복 0",Architect/QA,Architect/QA,7,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-004,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/re-run/failure 복구 rehearsal 고도화,DbUp fresh/upgrade/re-run/failure 복구 rehearsal,PostgreSQL 승인 버전에서 4 시나리오와 checksum 변경 차단 통과,DBA/BE,Architect/QA,8,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-005,S0,W1-2,Cross,Cross-cutting,Security,SEC,REQ-SEC-BASE,Cross,Cross,Cross,Cross,Cross,"OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed 고도화","OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed","비개발 무인증 접근 0, secret/log/prompt 노출 0",Security/BE,Architect/QA,7,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,ASYNC,REQ-ASYNC-001,Cross,Cross,Cross,Cross,Cross,Outbox publisher 고도화,Outbox publisher·Inbox lease·dead-letter·replay,"duplicate 0, crash-before/after-publish 시나리오와 replay hash 통과",BE/SRE,Architect/QA,10,AEG-X-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-007,S0,W1-2,Cross,Cross-cutting,Observability,OPS,REQ-OBS-001,Cross,Cross,Cross,Cross,Cross,Serilog/OTel correlation 고도화,Serilog/OTel correlation·metric naming·Telegram redaction,"trace→job→decision→outbox 연결, PII redaction test 통과",SRE/Security,Architect/QA,7,AEG-X-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-008,S0,W1-2,Cross,Cross-cutting,API Contract,CONTRACT,REQ-API-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact 고도화,OpenAPI artifact·ProblemDetails taxonomy·FE contract generation,OpenAPI diff와 breaking change approval 없이는 Release 차단,BE/FE Architect,Architect/QA,8,AEG-X-003,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-01,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,GOV,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,정책·범위·실패상태 계약 확정,"REQ-PLAT-001, VS-00 SLICE_SPEC, ADR/Decision Log",사용자 결과 '빌드·마이그레이션·관제 가능한 단일 배포 골격'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-02,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DATA,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,데이터 시점·스키마·정합성 계약,"MIG-0000/0013, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-00-01,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-03,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DOMAIN,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,도메인 불변조건·상태전이 구현,"src/Modules/Host/BuildingBlocks/PlatformBootstrap/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-00-02,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-04,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,BE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vertical Slice API/Application/SQL 구현,HEALTH-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-00-03,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-05,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,ASYNC,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-00-04,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-06,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,FE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vue feature·Zod·Query·컴포넌트 구현,UI-PLAT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-00-05,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-07,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,TESTOPS,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,회귀·관제·Runbook·Rollback 증거,T-ARCH-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-00-06,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-009,S1,W3-4,Cross,Cross-cutting,Data Governance,DATA,REQ-DATA-SOURCE,Cross,Cross,Cross,Cross,Cross,Source catalog/license/SLA/timezone/unit/checksum 고도화,Source catalog/license/SLA/timezone/unit/checksum,승인 없는 source가 ingestion 또는 추천으로 진입하지 않음,Data Governance,Architect/QA,8,AEG-X-001,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-01,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,GOV,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,정책·범위·실패상태 계약 확정,"REQ-IAM-001, VS-01 SLICE_SPEC, ADR/Decision Log",사용자 결과 'MFA·RBAC·업무분장과 승인 경계'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-02,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DATA,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,데이터 시점·스키마·정합성 계약,"MIG-IAM-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-01-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-03,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DOMAIN,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,도메인 불변조건·상태전이 구현,"src/Modules/IdentityAccess/ManageIdentityAndRoles/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-01-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-04,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,BE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vertical Slice API/Application/SQL 구현,IAM-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-01-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-05,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,ASYNC,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-01-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-06,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,FE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vue feature·Zod·Query·컴포넌트 구현,UI-IAM-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-01-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-07,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,TESTOPS,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,회귀·관제·Runbook·Rollback 증거,T-IAM-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-01-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-01,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,GOV,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,정책·범위·실패상태 계약 확정,"REQ-SEC-001, VS-02 SLICE_SPEC, ADR/Decision Log",사용자 결과 '상장·상폐·상품구조·거래가능성의 PIT 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-02,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DATA,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,데이터 시점·스키마·정합성 계약,"MIG-SEC-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-02-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-03,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DOMAIN,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/SynchronizeSecurityMaster/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-02-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-04,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,BE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vertical Slice API/Application/SQL 구현,"SEC-01/02,DAT-01; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-02-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-05,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,ASYNC,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Event/Job/Inbox·재처리 구현,"J01; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-02-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-06,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,FE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SEC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-02-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-07,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,TESTOPS,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,회귀·관제·Runbook·Rollback 증거,T-SEC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-02-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-010,S2,W5-6,Cross,Cross-cutting,Read Model,PROJECTION,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,projection owner/version/watermark/rebuild/staleness 고도화,projection owner/version/watermark/rebuild/staleness,"write model 직접 UI join 0, rebuild 결과 hash 동일",BE/Data,Architect/QA,8,AEG-X-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-01,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,GOV,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,정책·범위·실패상태 계약 확정,"REQ-DAT-001, VS-03 SLICE_SPEC, ADR/Decision Log",사용자 결과 '원시·조정 OHLCV·FX·금리의 revision 적재'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-02,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,데이터 시점·스키마·정합성 계약,"MIG-MD-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-03-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-03,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DOMAIN,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,도메인 불변조건·상태전이 구현,"src/Modules/MarketData/IngestMarketDataPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-03-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-04,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,BE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vertical Slice API/Application/SQL 구현,DAT-02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-03-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-05,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,ASYNC,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Event/Job/Inbox·재처리 구현,"J02; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-03-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-06,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,FE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-03-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-07,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,TESTOPS,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,회귀·관제·Runbook·Rollback 증거,T-DQ-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-03-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-01,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,GOV,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,정책·범위·실패상태 계약 확정,"REQ-CA-001, VS-04 SLICE_SPEC, ADR/Decision Log",사용자 결과 '분할·배당·증자·합병·상폐의 가격·수량·원가 일관성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-03",G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-02,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DATA,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,데이터 시점·스키마·정합성 계약,"MIG-CA-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-04-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-03,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DOMAIN,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/ApplyCorporateActions/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-04-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-04,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,BE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vertical Slice API/Application/SQL 구현,DAT-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-04-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-05,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,ASYNC,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Event/Job/Inbox·재처리 구현,"J03; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-04-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-06,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,FE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-02; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-04-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-07,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,TESTOPS,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,회귀·관제·Runbook·Rollback 증거,T-CA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-04-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-01,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,GOV,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,정책·범위·실패상태 계약 확정,"REQ-FND-001, VS-05 SLICE_SPEC, ADR/Decision Log",사용자 결과 '공시·재무·컨센서스 공개시각과 정정 이력'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-02,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DATA,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,데이터 시점·스키마·정합성 계약,"MIG-FND-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-05-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-03,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DOMAIN,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,도메인 불변조건·상태전이 구현,"src/Modules/FundamentalsPIT/IngestFundamentalsPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-05-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-04,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,BE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vertical Slice API/Application/SQL 구현,DAT-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-05-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-05,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,ASYNC,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Event/Job/Inbox·재처리 구현,"J04; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-05-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-06,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,FE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vue feature·Zod·Query·컴포넌트 구현,UI-FND-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-05-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-07,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,TESTOPS,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,회귀·관제·Runbook·Rollback 증거,T-FND-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-05-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-01,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,GOV,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,정책·범위·실패상태 계약 확정,"REQ-COST-001, VS-06 SLICE_SPEC, ADR/Decision Log",사용자 결과 '계좌·시장·상품별 Fee/Tax/FX valid-time 계약'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-02,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DATA,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,데이터 시점·스키마·정합성 계약,"MIG-COST-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-06-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-03,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DOMAIN,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainFeeTaxFxSchedule/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-06-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-04,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,BE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vertical Slice API/Application/SQL 구현,COST-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-06-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-05,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,ASYNC,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Event/Job/Inbox·재처리 구현,"J04C; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-06-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-06,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,FE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vue feature·Zod·Query·컴포넌트 구현,UI-COST-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-06-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-07,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,TESTOPS,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,회귀·관제·Runbook·Rollback 증거,T-COST-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-06-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-01,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,GOV,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,정책·범위·실패상태 계약 확정,"REQ-LED-001, VS-08 SLICE_SPEC, ADR/Decision Log",사용자 결과 '현금·체결·Lot·Cycle 불변 원장과 대사 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-06",G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-02,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DATA,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,데이터 시점·스키마·정합성 계약,"MIG-LED-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-08-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-03,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DOMAIN,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainPortfolioLedger/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-08-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-04,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,BE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vertical Slice API/Application/SQL 구현,POR-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-08-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-05,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,ASYNC,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Event/Job/Inbox·재처리 구현,"J12L; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-08-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-06,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,FE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vue feature·Zod·Query·컴포넌트 구현,UI-POR-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-08-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-07,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,TESTOPS,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,회귀·관제·Runbook·Rollback 증거,T-LED-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-08-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-011,S4,W9-10,Cross,Cross-cutting,Algorithm,GOLDEN,REQ-ALG-GOLDEN,Cross,Cross,Cross,Cross,Cross,Python↔C# Golden vector 고도화,Python↔C# Golden vector·epsilon·rounding 계약,정책 ID별 경계·우선순위·cost×2 결과 허용오차 내 동일,Quant/QA,Architect/QA,10,VS-09,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-01,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,GOV,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,정책·범위·실패상태 계약 확정,"REQ-EVD-001, VS-09 SLICE_SPEC, ADR/Decision Log",사용자 결과 'Dataset/Model/Config/Code SHA가 동결된 Evidence'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-02,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,데이터 시점·스키마·정합성 계약,"MIG-EVD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-09-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-03,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DOMAIN,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,도메인 불변조건·상태전이 구현,"src/Modules/ResearchFactors/BuildEvidenceSnapshot/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-09-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-04,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,BE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vertical Slice API/Application/SQL 구현,EVD-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-09-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-05,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,ASYNC,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Event/Job/Inbox·재처리 구현,"J06; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-09-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-06,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,FE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-09-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-07,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,TESTOPS,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,회귀·관제·Runbook·Rollback 증거,T-EVD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-09-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-01,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,GOV,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,정책·범위·실패상태 계약 확정,"REQ-SELL-001, VS-10 SLICE_SPEC, ADR/Decision Log",사용자 결과 '우선순위가 보존된 HOLD/부분매도/전량매도 결정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-09,VS-13",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-02,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DATA,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,데이터 시점·스키마·정합성 계약,"MIG-SIG-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-10-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-03,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DOMAIN,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/GenerateSellDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-10-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-04,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,BE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vertical Slice API/Application/SQL 구현,SIG-SELL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-10-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-05,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ASYNC,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Event/Job/Inbox·재처리 구현,"J08S; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-10-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-06,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SELL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-10-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-07,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,TESTOPS,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,회귀·관제·Runbook·Rollback 증거,T-SELL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-10-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-012,S5,W11-12,Cross,Cross-cutting,Research,REPRO,REQ-REPRO-001,Cross,Cross,Cross,Cross,Cross,dataset/code/config/environment manifest와 artifact hash 고도화,dataset/code/config/environment manifest와 artifact hash,"동일 manifest·seed 결과 재현, 실패 artifact 보존",Quant/Data,Architect/QA,12,AEG-X-009,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-01,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,GOV,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,정책·범위·실패상태 계약 확정,"REQ-RE-001, VS-11 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비가치훼손 매도의 재진입 계약·단계·만료'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-10,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-02,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DATA,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,데이터 시점·스키마·정합성 계약,"MIG-RE-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-11-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-03,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DOMAIN,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/ManageReentryWatch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-11-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-04,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,BE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vertical Slice API/Application/SQL 구현,RE-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-11-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-05,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ASYNC,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Event/Job/Inbox·재처리 구현,"J09; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-11-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-06,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,FE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RE-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-11-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-07,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,TESTOPS,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,회귀·관제·Runbook·Rollback 증거,T-RE-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-11-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-01,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,GOV,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,정책·범위·실패상태 계약 확정,"REQ-BKT-001, VS-19 SLICE_SPEC, ADR/Decision Log",사용자 결과 '동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06,VS-09",G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-02,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DATA,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,데이터 시점·스키마·정합성 계약,"MIG-BKT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-19-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-03,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DOMAIN,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/RunFrozenBacktest/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-19-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-04,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,BE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vertical Slice API/Application/SQL 구현,BKT-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-19-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-05,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,ASYNC,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Event/Job/Inbox·재처리 구현,"J-BKT; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-19-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-06,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,FE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BKT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-19-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-07,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,TESTOPS,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,회귀·관제·Runbook·Rollback 증거,T-BKT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-19-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-01,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,GOV,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,정책·범위·실패상태 계약 확정,"REQ-CLI-001, VS-07 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 목표·위험성향·제한상품의 버전 관리'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-02,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DATA,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,데이터 시점·스키마·정합성 계약,"MIG-CLI-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-07-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-03,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DOMAIN,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ManageClientIPS/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-07-02,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-04,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,BE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vertical Slice API/Application/SQL 구현,CLI-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-07-03,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-05,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,ASYNC,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-07-04,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-06,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,FE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLI-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-07-05,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-07,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,TESTOPS,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,회귀·관제·Runbook·Rollback 증거,T-CLI-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-07-06,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-01,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,GOV,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,정책·범위·실패상태 계약 확정,"REQ-REC-001, VS-14 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-10,VS-12,VS-13",MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-02,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DATA,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,데이터 시점·스키마·정합성 계약,"MIG-REC-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-14-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-03,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DOMAIN,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/GenerateDailyRecommendations/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-14-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-04,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vertical Slice API/Application/SQL 구현,SIG-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-14-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-05,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,ASYNC,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Event/Job/Inbox·재처리 구현,"J08; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-14-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-06,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,FE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-14-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-07,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,TESTOPS,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,회귀·관제·Runbook·Rollback 증거,T-REC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-14-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-01,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,GOV,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,정책·범위·실패상태 계약 확정,"REQ-REV-001, VS-15 SLICE_SPEC, ADR/Decision Log",사용자 결과 'maker-checker 승인·보류·기각과 낙관적 동시성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-14,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-02,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DATA,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,데이터 시점·스키마·정합성 계약,"MIG-REV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-15-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-03,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DOMAIN,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ReviewRecommendation/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-15-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-04,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,BE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vertical Slice API/Application/SQL 구현,SIG-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-15-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-05,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,ASYNC,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-06,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,FE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-15-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-07,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,TESTOPS,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,회귀·관제·Runbook·Rollback 증거,T-REV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-15-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-013,S8,W17-18,Cross,Cross-cutting,Audit,TRACE,REQ-AUDIT-E2E,Cross,Cross,Cross,Cross,Cross,Evidence→Decision→Review→Publish→Outcome trace API 고도화,Evidence→Decision→Review→Publish→Outcome trace API,"publication/decision 기준 누락 링크 0, correction event 보존",Compliance/BE,Architect/QA,8,VS-18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-01,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,GOV,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,정책·범위·실패상태 계약 확정,"REQ-PUB-001, VS-16 SLICE_SPEC, ADR/Decision Log",사용자 결과 '승인·유효·데이터 정상 제안만 고객 공개'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-15,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-02,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DATA,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,데이터 시점·스키마·정합성 계약,"MIG-PUB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-16-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-03,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DOMAIN,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/PublishClientAdvice/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-16-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-04,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vertical Slice API/Application/SQL 구현,SIG-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-16-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-05,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,ASYNC,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Event/Job/Inbox·재처리 구현,"J-PUB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-16-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-06,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,FE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-ADV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-16-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-07,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,TESTOPS,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,회귀·관제·Runbook·Rollback 증거,T-PUB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-16-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-01,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,GOV,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,정책·범위·실패상태 계약 확정,"REQ-CLD-001, VS-17 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 수락·거절·보류와 attribution 연결'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-16,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-02,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DATA,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,데이터 시점·스키마·정합성 계약,"MIG-CLD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-17-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-03,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DOMAIN,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/RecordClientDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-17-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-04,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,BE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vertical Slice API/Application/SQL 구현,SIG-06; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-17-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-05,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,ASYNC,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-17-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-06,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,FE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-17-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-07,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,TESTOPS,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,회귀·관제·Runbook·Rollback 증거,T-CLD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-17-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-01,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,정책·범위·실패상태 계약 확정,"REQ-EVA-001, VS-18 SLICE_SPEC, ADR/Decision Log",사용자 결과 '1/5/20/63/126/252일 결과·매도·재진입 품질 평가'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-10,VS-11,VS-16,VS-17",G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-02,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,데이터 시점·스키마·정합성 계약,"MIG-EVA-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-18-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-03,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DOMAIN,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/EvaluateDecisionOutcome/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-18-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-04,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vertical Slice API/Application/SQL 구현,EVA-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-05,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ASYNC,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Event/Job/Inbox·재처리 구현,"J10/J11; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-18-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-06,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVA-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-18-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-07,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,TESTOPS,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,회귀·관제·Runbook·Rollback 증거,T-EVA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-18-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-01,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,GOV,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,정책·범위·실패상태 계약 확정,"REQ-RISK-001, VS-13 SLICE_SPEC, ADR/Decision Log",사용자 결과 'ES·집중·상관·자본바닥 위험 스냅샷'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-08",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-02,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DATA,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,데이터 시점·스키마·정합성 계약,"MIG-RISK-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-13-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-03,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DOMAIN,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/CalculatePortfolioRisk/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-13-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-04,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,BE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vertical Slice API/Application/SQL 구현,POR-02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-13-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-05,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,ASYNC,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Event/Job/Inbox·재처리 구현,"J07; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-13-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-06,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,FE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RISK-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-13-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-07,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,TESTOPS,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,회귀·관제·Runbook·Rollback 증거,T-RISK-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-13-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-01,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,GOV,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,정책·범위·실패상태 계약 확정,"REQ-REB-001, VS-21 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비용·세금·위험예산·제약을 만족하는 리밸런싱'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-08,VS-12,VS-13",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-02,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DATA,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,데이터 시점·스키마·정합성 계약,"MIG-REB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-21-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-03,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DOMAIN,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/BuildRebalanceProposal/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-21-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-04,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,BE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vertical Slice API/Application/SQL 구현,REB-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-21-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-05,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,ASYNC,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Event/Job/Inbox·재처리 구현,"J-REB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-21-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-06,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,FE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REB-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-21-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-07,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,TESTOPS,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,회귀·관제·Runbook·Rollback 증거,T-REB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-21-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-01,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,GOV,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,정책·범위·실패상태 계약 확정,"REQ-BUY-001, VS-12 SLICE_SPEC, ADR/Decision Log",사용자 결과 'PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-05,VS-06,VS-09",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-02,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DATA,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,데이터 시점·스키마·정합성 계약,"MIG-BUY-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-12-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-03,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DOMAIN,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,도메인 불변조건·상태전이 구현,"src/Modules/ValuationForecast/RankBuyCandidates/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-12-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-04,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,BE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vertical Slice API/Application/SQL 구현,BUY-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-12-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-05,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,ASYNC,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Event/Job/Inbox·재처리 구현,"J08B; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-12-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-06,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,FE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BUY-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-12-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-07,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,TESTOPS,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,회귀·관제·Runbook·Rollback 증거,T-BUY-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-12-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-01,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,GOV,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,정책·범위·실패상태 계약 확정,"REQ-RPL-001, VS-22 SLICE_SPEC, ADR/Decision Log",사용자 결과 '적합성·유동성·비용후 기회우위 대체상품 비교'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-12,VS-13",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-02,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DATA,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,데이터 시점·스키마·정합성 계약,"MIG-RPL-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-22-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-03,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DOMAIN,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/SuggestReplacementProducts/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-22-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-04,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,BE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vertical Slice API/Application/SQL 구현,RPL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-22-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-05,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,ASYNC,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Event/Job/Inbox·재처리 구현,"J-RPL; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-22-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-06,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,FE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-22-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-07,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,TESTOPS,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,회귀·관제·Runbook·Rollback 증거,T-RPL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-22-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-014,S11,W23-24,Cross,Cross-cutting,Model Risk,VALIDATION,REQ-MODEL-RISK,Cross,Cross,Cross,Cross,Cross,CSCV/PBO 고도화,CSCV/PBO·DSR·block bootstrap·시도 원장,"PBO≤20%, DSR≥95%, cost×2 utility 양수 또는 승격 차단",Quant/Risk,Architect/QA,15,AEG-X-012,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-015,S11,W23-24,Cross,Cross-cutting,Shadow,EVAL,REQ-SHADOW-001,Cross,Cross,Cross,Cross,Cross,252거래일 고도화,252거래일·복수 국면 일평가 scorecard,적중률 단독 아닌 calibration/ES/false-exit/reentry/운영무결성 판정,Quant/Ops,Architect/QA,14,VS-18,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-01,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,정책·범위·실패상태 계약 확정,"REQ-MOD-001, VS-20 SLICE_SPEC, ADR/Decision Log",사용자 결과 '모델 승격 증거·승인·롤백·챔피언/챌린저'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-18,VS-19",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-02,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DATA,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,데이터 시점·스키마·정합성 계약,"MIG-MOD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-20-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-03,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DOMAIN,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/PromoteModelVersion/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-20-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-04,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,BE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vertical Slice API/Application/SQL 구현,MOD-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-20-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-05,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ASYNC,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Event/Job/Inbox·재처리 구현,"J-MOD; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-20-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-06,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-MOD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-20-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-07,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,TESTOPS,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,회귀·관제·Runbook·Rollback 증거,T-MOD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-20-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-01,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,GOV,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,정책·범위·실패상태 계약 확정,"REQ-RPT-001, VS-24 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 리포트·SignalR·Telegram 운영 경보'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-16,VS-18",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-02,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DATA,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,데이터 시점·스키마·정합성 계약,"MIG-RPT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-24-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-03,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DOMAIN,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,도메인 불변조건·상태전이 구현,"src/Modules/ReportingNotifications/ReportAndNotify/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-24-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-04,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,BE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vertical Slice API/Application/SQL 구현,RPT-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-24-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-05,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,ASYNC,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Event/Job/Inbox·재처리 구현,"J11R; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-24-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-06,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,FE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-24-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-07,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,TESTOPS,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,회귀·관제·Runbook·Rollback 증거,T-RPT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-24-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-016,S12,W25-26,Cross,Cross-cutting,Broker,CAPABILITY,REQ-KIS-OFF,Cross,Cross,Cross,Cross,Cross,KIS 주문 제출 startup/CI/runtime 차단 고도화,KIS 주문 제출 startup/CI/runtime 차단,"외부 주문 호출 0, capability override 감사·kill-switch 통과",Security/Ops,Architect/QA,7,AEG-X-005,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-01,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,GOV,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,정책·범위·실패상태 계약 확정,"REQ-RECON-001, VS-23 SLICE_SPEC, ADR/Decision Log",사용자 결과 '브로커·내부 주문·체결·보유·현금 break와 승인 정정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-16",Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-02,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,데이터 시점·스키마·정합성 계약,"MIG-EXE-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-23-01,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-03,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DOMAIN,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,도메인 불변조건·상태전이 구현,"src/Modules/ExecutionReconciliation/ReconcilePositionsAndFills/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-23-02,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-04,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,BE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vertical Slice API/Application/SQL 구현,"EXE-01/02,REC-01/02; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-23-03,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-05,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,ASYNC,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Event/Job/Inbox·재처리 구현,"J12; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-23-04,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-06,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,FE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RECON-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-23-05,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-07,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,TESTOPS,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,회귀·관제·Runbook·Rollback 증거,T-RECON-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-23-06,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-017,S13,W27-28,Cross,Cross-cutting,DR,OPS,REQ-DR-001,Cross,Cross,Cross,Cross,Cross,RPO/RTO 고도화,RPO/RTO·backup/restore·region/host failure rehearsal,"승인 RPO/RTO 내 복구, 원장·outbox·projection 대사 100%",SRE/DBA,Architect/QA,12,AEG-X-006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-01,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,GOV,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,정책·범위·실패상태 계약 확정,"REQ-GOV-001, VS-25 SLICE_SPEC, ADR/Decision Log",사용자 결과 '입력→결정→승인→공개→실행→평가 추적과 단계별 차단'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-01,VS-16,VS-20,VS-23",G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-02,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DATA,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,데이터 시점·스키마·정합성 계약,"MIG-GOV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-25-01,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-03,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DOMAIN,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/AuditAndKillSwitch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-25-02,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-04,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,BE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vertical Slice API/Application/SQL 구현,GOV-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-25-03,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-05,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,ASYNC,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Event/Job/Inbox·재처리 구현,"J-GOV; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-25-04,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-06,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,FE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-GOV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-25-05,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-07,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TESTOPS,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,회귀·관제·Runbook·Rollback 증거,T-GOV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-25-06,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-018,S14,W29-30,Cross,Cross-cutting,Performance,NFR,REQ-NFR-001,Cross,Cross,Cross,Cross,Cross,API P95 고도화,API P95·batch SLA·portfolio 규모·backfill 부하시험,개장 전 추천 SLA와 고객 API SLO가 동시에 충족,SRE/QA,Architect/QA,10,AEG-X-017,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-019,S14,W29-30,Cross,Cross-cutting,Cutover,RELEASE,REQ-CUT-001,Cross,Cross,Cross,Cross,Cross,dry-run/backfill/recon/rollback/release evidence 고도화,dry-run/backfill/recon/rollback/release evidence,"미승인 공개 0, duplicate 0, rollback 리허설과 승인 서명",PM/Ops,Architect/QA,10,AEG-X-018,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-020,S15,W31-32,Cross,Cross-cutting,Hypercare,OPS,REQ-HYP-001,Cross,Cross,Cross,Cross,Cross,P1/P2 triage 고도화,P1/P2 triage·daily reconciliation·debt burn-down,초기 안정화 Exit 기준·Owner·잔여 부채 승인,Ops/PM,Architect/QA,8,AEG-X-019,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-DOC-022,Current-session source coverage and SHA register,Source Coverage Matrix/Source Index,6 current attachments preserved byte-for-byte and hashes match,PM/Architect,QA/Compliance,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG22-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,T-CI-022,Offline-safe package manager and lockfile decision,packageManager/LOCKFILE_REQUIRED/CI guard,No silent dependency resolution; frozen install blocks until approved lock exists,DevOps,FE Lead,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,ARCH,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-ARCH-022,Module/Vertical Slice template pack,"templates/dotnet,vue,sql,hangfire",New slice can be generated without Generic Repository or controller-service duplication,Architect,BE/FE Leads,6,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-004,S0,W1-2,Cross,Cross-cutting,API,BE,REQ-API-001,API-CONTEXT-01,Cross,Cross,Cross,T-API-022,Correlation/Idempotency/ProblemDetails shared contract,request execution standard,400/401/403/409/422 and trace/idempotency rules consistent,BE Lead,QA/SRE,6,AEG-X-004,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-005,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-REHEARSAL,Cross,MIG-REHEARSAL,Cross,Cross,T-DB-022,DbUp fresh/upgrade/re-run/failure rehearsal script,scripts/rehearse_migrations.sh,Approved PostgreSQL runner produces 4 scenario artifacts,DBA,BE/DevOps,8,AEG-X-004,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-OUTBOX-001,Cross,MIG-0013,JOB-OUTBOX-01,Cross,T-OUTBOX-022,Outbox lease/dead-letter/replay hardening,outbox dispatcher template/runbook,Crash-before/after publish yields no lost message and idempotent downstream,BE/SRE,QA,10,AEG-X-006,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-007,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-INBOX-001,Cross,MIG-0013,JOB-INBOX-01,Cross,T-INBOX-022,Inbox duplicate/result-hash contract,inbox consumer template,Same consumer/message performs side effect once and replay hash is stable,BE/SRE,QA,8,AEG-X-007,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-008,S0,W1-2,Cross,Cross-cutting,Batch,JOB,REQ-JOB-001,Cross,MIG-0000,JOB-RUN-STD,UI-OPS-JOB,T-JOB-022,JobRun/Watermark/heartbeat scope standard,ReliableJob template,Concurrent duplicate is held; retry preserves scope/version/input hash,BE/SRE,QA/Data,8,AEG-X-008,G1,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-001,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,Separate security weight and lot weight,SellDecisionInput/context/migration,Lot ratio changes only lot weight; target security weight is exact,Quant/BE,DBA/QA,10,AEG-VS-10-03,G2-A,SOURCE+INFERENCE,P0,PLANNED +AEG22-VS10-002,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,Persist ordered policy evaluation trace,policy_trace_json/API schema,Applied/blocked/not-applicable reasons reproduce decision priority,BE/Quant,FE/QA,8,AEG22-VS10-001,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-003,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,QA,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-GOLDEN-022,Golden/boundary/monotonic/property vectors,unit/golden vectors,"Core clamp, survival bypass, priority and future PIT rejection pass",QA/Quant,BE,8,AEG22-VS10-002,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS10-004,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SIG-UI,SIG-RESEARCH-01,Cross,Cross,UI-SIG-01,T-FE-SIG-022,FE runtime contract for weights and policy trace,Zod schema/page/tests,Malformed response and lot>security input fail closed,FE Lead,QA/BE,5,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS09-001,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,Cross,MIG-EVD-001,J06,UI-EVD-01,T-EVD-022,Evidence completeness grade and required-field manifest,Evidence contract delta,Missing total-return/delisting/cost source downgrades or quarantines recommendation,Data/Quant,BE/QA,8,AEG-VS-09-02,G2-A,SOURCE,P0,PLANNED +AEG22-VS03-001,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-PIT-022,Enforce published_at cutoff and timezone,PIT query contract/data test,Lookahead count remains zero across replay and timezone boundaries,Data Architect,DBA/QA,8,AEG-VS-03-03,G1-B,SOURCE,P0,PLANNED +AEG22-VS03-002,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-LIC,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,Source license/SLA/checksum fail-closed gate,Source catalog contract,Unapproved/checksum-drift source cannot reach canonical/PIT layer,Data Governance,BE/Compliance,7,AEG22-VS03-001,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS08-001,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DB,REQ-LEDGER-001,POR-01,MIG-POR-001,LedgerEntryApplied,UI-POR-01,T-LEDGER-022,Lot weight derivation and reconciliation invariant,ledger/read-model contract,Lot market values equal security/account totals within tolerance,DBA/BE,Quant/QA,10,AEG-VS-08-03,G1,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS11-001,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ALG,ALG-REENTRY-001,SIG-02,MIG-SIG-REENTRY,J09,UI-SIG-02,T-REENTRY-022,Reentry stage uniqueness and cycle reset proof,state transition/golden tests,Each stage once; new CycleId/Lot; old floor/cost/high not reused,Quant/BE,QA/DBA,9,AEG-VS-11-03,G2,SOURCE,P0,PLANNED +AEG22-VS14-001,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-ADV-001,ADV-01,MIG-ADV-001,J08,UI-ADV-01,T-ADV-RUN-022,Run isolation and partial-failure quarantine,run manifest/error partition,One portfolio failure cannot publish invalid advice to another,BE Lead,SRE/QA,10,AEG-VS-14-04,MVP-B,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS15-001,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,SEC,REQ-REV-001,ADV-02,MIG-ADV-002,RecommendationReviewed,UI-ADV-02,T-REV-022,Maker-checker optimistic concurrency proof,review version/ETag tests,Self-approval and stale update rejected with audit evidence,BE/Security,FE/QA,8,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS16-001,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,ADV-03,MIG-ADV-003,AdvicePublished,UI-CLI-01,T-PUB-022,Publish snapshot hash and staleness gate,publication immutable snapshot,Expired/revised/quarantined evidence blocks publish,BE/Compliance,QA/FE,9,AEG-VS-16-04,G3,SOURCE,P0,PLANNED +AEG22-VS18-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-DEF-022,Version false-exit/gain-capture definitions,metric definition registry,Historical scorecard reproducible by metric version/revision,Quant/Risk,Data/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS19-001,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QUANT,REQ-BT-001,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-ENV-022,Environment digest and full experiment registry,frozen manifest,Data/code/config/seed/environment/all variants hashed,Quant/Data,Risk/QA,10,AEG-VS-19-03,G2,SOURCE,P0,PLANNED +AEG22-VS19-002,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QA,REQ-BT-002,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-XLANG-022,Python-.NET decision golden cross-check,cross-language vectors,Policy/action/ratio/target/trace match within tolerance,QA/Quant,BE,8,AEG22-VS19-001,G2,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS23-001,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,OPS,REQ-REC-001,EXE-01,MIG-EXE-001,J12,UI-OPS-REC,T-REC-CORR-022,Approved correction/reversal workflow,break/correction/audit contract,No direct edit; before/after/hash/approver/replay reconcile to zero,Ops/DBA,Compliance/QA,10,AEG-VS-23-04,Pilot-A,SOURCE,P0,PLANNED +AEG22-VS25-001,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-GOV-001,GOV-01,MIG-GOV-001,KillSwitchChanged,UI-GOV-01,T-KILL-022,Automatic-order capability tripwire,capability tests/runbook,Any AutomaticOrder/KIS drift blocks start/release/action,Security/Ops,DevOps/QA,8,AEG-VS-25-04,ALL,SOURCE,P0,PLANNED +AEG22-X-009,S11,W23-24,Cross,Cross-cutting,Frontend,FE,REQ-FE-CONTRACT,Cross,Cross,Cross,Cross,T-FE-OPENAPI-022,OpenAPI artifact diff and generated contract plan,contract generation ADR,DTO drift visible in CI; Zod remains trust boundary,BE/FE,QA/Architect,7,AEG-X-012,G3,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-010,S11,W23-24,Cross,Cross-cutting,Observability,SRE,REQ-OBS-001,Cross,Cross,Cross,UI-OPS-01,T-OBS-022,Metric cardinality/PII/redaction budget,telemetry policy/tests,No high-cardinality account/security tags or PII in telemetry,SRE/Security,BE/QA,7,AEG-X-013,G5,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-011,S14,W29-30,Cross,Cross-cutting,Performance,SRE,REQ-CAP-001,Cross,Cross,Cross,Cross,T-CAP-022,Capacity assumptions and workload pack,capacity profile,Approved volumes map to API/batch/DB SLO evidence,PM/SRE,DBA/QA,10,AEG-X-025,G6-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-012,S15,W31-32,Cross,Cross-cutting,Release,OPS,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-022,Release evidence and rollback rehearsal,release manifest/checksum/runbook,Source→requirement→code→test→artifact hashes and rollback complete,PM/SRE,QA/Compliance,8,AEG22-X-011,G6,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-031,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,Rebuild seven-file current-session source coverage,Source matrix·SHA index,7개 첨부 원본·크기·SHA-256·역할이 패키지와 1:1 일치,PM/QA,Architect,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG-X-032,S0,W1-2,Cross,Cross-cutting,CI/CD,DEVEX,REQ-PLAT-CI,Cross,Cross,Cross,Cross,T-CI-003,Correct stale CI validator and duplicate YAML key,Gitea ci.yml,"validate_v123 실행, 중복 working-directory 0, static/scaffold tests 연결",DevOps,QA,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-033,S0,W1-2,Cross,Cross-cutting,Architecture,SCAFFOLD,REQ-ARCH-SCAFFOLD,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,Implement deterministic fail-closed slice scaffolder,scaffold_slice.py·templates·tests,"dry-run deterministic, 기존 파일 overwrite 0, 미승인 placeholder 명시",Architect,BE/FE,7,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-034,S0,W1-2,Cross,Cross-cutting,Contract,CONTRACT,REQ-CONTRACT-001,Cross,Cross,Cross,Cross,T-CONTRACT-001,Create machine-readable policy/event/metric contract registry,contracts/**,"JSON parse, C# 상수 교차검증, 이벤트 schema v2, metric definition version",Architect/Quant,QA/Risk,7,AEG-X-003,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-035,S0,W1-2,Cross,Cross-cutting,Validation,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-STATIC-123,Extend static validator for semantic version and contract drift,validate_v123.py,"WBS 250, 7첨부, 0015, registry, context filter, CI key 검사 통과",QA,Architect,6,AEG-X-034,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-08,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-CONTRACT-001,Centralize approved sell policy constants,SellPolicyContract.cs,정책 ID·우선순위·임계값 중복 제거 및 JSON registry와 일치,Quant/BE,Risk/QA,6,AEG-X-034,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-09,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-ZERO-RATIO,Fix positive-edge zero-ratio opportunity sell defect,OpportunityCostPolicy.cs·tests,"edge>0·ratio=0에서 HOLD, trace=BLOCKED, 자동 10% 매도 0",BE/Quant,QA/Risk,5,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-10,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Data integrity,REQ-SIG-SELL,SIG-01,MIG-0015,-,-,T-SIG-SEM-001,Version lot/security weight semantics and block legacy contexts,0015 migration·context reader,weight_semantics_version=2만 결정 입력 사용; legacy backfill 추정 사용 0,DBA/BE,Quant/QA,8,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-11,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Evidence,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-EVT-002,Persist decision and policy-trace contract versions,API·DB·event v2,decision_contract_version과 policy_trace_schema_version이 DB/API/event/hash에 포함,BE,DBA/FE/QA,7,AEG-VS-10-10,G2-A,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-12,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Frontend,REQ-SIG-SELL,SIG-02,MIG-0015,-,UI-SIG-TRACE,T-FE-SIG-TRACE,Componentize ordered policy trace display,PolicyTracePanel.vue·Zod,우선순위/Disposition/요청·적용비율/Core clamp를 runtime contract로 표시,FE,UX/QA,5,AEG-VS-10-11,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-08,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,Metric governance,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-METRIC-001,Version false-exit and reentry metric definitions,outcome-metrics.v1.json,"분모/분자/평가창/집계/정의버전 명시, 연 2% 목표와 직접비교 금지",Quant/Risk,Data/QA,6,AEG-X-034,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-036,S1,W3-4,Cross,Cross-cutting,Security,AUTH,REQ-IAM-001,Cross,Cross,Cross,Cross,T-AUTH-ADR,Keep OIDC/JWT provider decision fail-closed,Decision Log,공급자/claims 미결정 시 Development 외 인증 성공 0,Security,PM/BE,3,AEG-X-005,G5,SOURCE,P0,PLANNED +AEG-X-037,S2,W5-6,Cross,Cross-cutting,Data governance,PIT,REQ-DAT-SOURCE,Cross,Cross,Cross,Cross,T-DATA-LICENSE,Reconfirm total-return/delisting/consensus source decisions,Decision Log·source catalog,미승인 source 추천 진입 0; DECISION_REQUIRED 유지,Data Governance,Legal/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-038,S3,W7-8,Cross,Cross-cutting,Cost data,PIT,REQ-COST-001,Cross,Cross,Cross,Cross,T-COST-PIT,Reconfirm Fee/Tax/FX valid-time schedule decisions,Decision Log·data contract,current 단일값 사용 0; 미결정 계좌/venue 추천 보류,Ops/Tax,DBA/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-039,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-013,Resolve survival cooldown bypass rule,Decision record·Golden vectors,승인 전 기존 fail-closed 유지; 승인 후 정책·모델카드·OOS 동시변경,Investment Committee,Quant/Risk/BE,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P0,PLANNED +AEG-X-040,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-014,Resolve hard impairment 80-100% severity mapping,Decision record·evidence grading,severity source 미승인 시 100% 보수값 유지; 임의 80% 적용 금지,Investment Committee,Compliance/Quant,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P1,PLANNED +AEG-X-041,S11,W23-24,Cross,Cross-cutting,Supply chain,SECURITY,REQ-SEC-SBOM,Cross,Cross,Cross,Cross,T-SBOM-001,Add SBOM/license/vulnerability release evidence contract,Release Evidence template,실제 scanner 미실행은 PASS 표기 금지; artifact 경로와 allowlist 필수,Security/DevOps,Legal/QA,5,AEG-X-032,G5,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-042,S14,W29-30,Cross,Cross-cutting,Capacity,NFR,REQ-NFR-CAP,Cross,Cross,Cross,Cross,T-CAP-001,Approve load volumes before index or partition optimization,Capacity ADR,고객/계좌/종목/배치량 결정 전 투기적 index·partition 추가 0,PM/SRE,DBA/BE,5,DEC-011,G6-A,DECISION_REQUIRED,P1,PLANNED +AEG-X-043,S15,W31-32,Cross,Cross-cutting,Release,EVIDENCE,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-123,Assemble v12.3 release evidence and checksum manifest,Validation evidence·manifest·SHA256,실행/미실행을 구분하고 패키지 전 파일 hash·첨부 hash가 일치,QA/Release,PM/Architect,7,AEG-X-035,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-001,지속 모델 운영 자동화 경계 확정,model-operations.v1·promotion-gate.v1 계약,"EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY 외 모드 0, AUTO_PROMOTE/AUTO_ORDER 0",Risk/Architect,Compliance/Quant,4,DEC-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-002,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-002,성과지표 정의 v2 확정,outcome-metrics.v2·Metric Definition Registry,각 지표의 분자·분모·평가창·집계·비용·PIT·revision 정의와 content hash 보존,Quant/Risk,Data/QA,6,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-003,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10,UI-MO-01,T-MO-003,평가 Dataset Manifest와 Model Registry 계약,evaluation.dataset_manifest·governance.model_version_registry,"요청 시점 Dataset/Model/Config/Code/Contract VersionSet 동결, 미승인 context는 BusinessHold",Data Architect/Quant,DBA/Risk,6,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-004,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DB,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-004,Model Operations 증분 migration 구현,0016_continuous_model_operations.sql,fresh/upgrade/re-run/failure에서 schedule/request/metric/proposal/review/drill schema와 제약 통과,DBA/BE,QA/Data,8,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-005,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-005,15분 Scheduler Dispatcher와 lease 구현,ModelOperationsDispatcherJob·DapperModelScheduleRepository,"FOR UPDATE SKIP LOCKED, 14분 lease, batch 50, dynamic queue, crash/retry 중복 request 0",BE/SRE,DBA/QA,8,AEG-MO-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-006,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,ModelOperationRequested,UI-MO-01,T-MO-006,평가 요청·Outbox 동일 트랜잭션 구현,ModelOperationRequestService·Repository·event v1,"동일 idempotency key의 request/outbox side effect 1회, VersionSet 누락 시 저장 0",BE Lead,SRE/QA,8,AEG-MO-005,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-007,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-007,명시적 ModelOperationRegistry 구현,ModelOperationDefinition·contract drift test,"Job code/주기/queue/mode/owner/gate 중복 0, JSON/C# drift 0",BE/Architect,Quant/QA,5,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-008,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-001,모델 운영 계획 조회 API·Zod 구현,GET /internal/v1/model-operations/plan·schema.ts,"응답 runtime validation, 자동승격 모드 파싱 거부, RBAC 401/403 검증",BE/FE,Security/QA,6,AEG-MO-007,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-009,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-002,모델 운영 대시보드 기본 화면,ModelOperationsPage·BoundaryPanel·OperationTable,일/주/월/분기 작업과 EVALUATION/PROPOSAL/DRILL 경계가 명확하고 로딩/오류/빈상태 접근성 검증,FE/UX,QA/Risk,7,AEG-MO-008,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-010,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-01,MIG-0016,J10,UI-MO-02,T-MO-EVAL-001,1/5/20/63/126/252일 Outcome evaluator 구현,versioned OutcomeObservation·attribution,거래일창·benchmark·FX·delisting·no-fill·partial-fill·revision replay Golden 통과,Quant/BE,Data/QA,12,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-011,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-02,MIG-0016,J11,UI-MO-02,T-MO-EVAL-002,Daily Scorecard와 cohort aggregation,DailyScorecard·cohort metric snapshots,운영오류·calibration·매수·매도·재진입·비용후 효용의 sample/lag/version 표시,Quant/BE,Risk/QA,9,AEG-MO-010,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-012,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-DRIFT-001,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,Data/Feature/Prediction/Calibration drift evaluator,DriftObservation·baseline manifest·alert,"baseline version, PSI/KS/calibration drift와 sample minimum이 승인되고 임계 초과 시 HOLD만 생성",Quant/Risk,Data/SRE,10,AEG-MO-011,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-013,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-CC-001,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,Champion/Challenger 동일 cohort 비교,paired comparison·model card delta,동일 Dataset/Cost/Cohort/Window에서 효과·위험·false-exit·reentry 차이와 신뢰구간 보존,Quant/Risk,IndependentValidation/QA,12,AEG-MO-012,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-014,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-OOS-001,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,월간 Frozen Walk-forward OOS 실행,manifest/hash/seed/environment·OOS artifacts,"동일 manifest 허용오차 내 동일, lookahead 0, 상폐/CA/TR/cost2x 포함, 실패 artifact 보존",Quant/Data,QA/Risk,14,AEG-MO-003,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-015,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-ROBUST-001,BACKTEST-02,MIG-0016,J20,UI-MO-04,T-MO-ROBUST-001,분기 PBO/DSR/Parameter Stability/Block Bootstrap,experiment registry·CSCV/PBO/DSR report,"전체 시도 원장 기준 PBO≤20%, DSR≥95%, 비용2배 양수 여부를 재현하며 기준 미달 시 HOLD",Quant/Risk,IndependentValidation/QA,15,AEG-MO-014,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-016,S11,W23-24,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-05,MIG-0016,J11/J21,UI-MO-02,T-MO-ATTR-001,False-exit·Reentry attribution 정의 확정,metric definition v2·decision log,분자/분모/기준가격/benchmark/평가창/중도상폐/결측 처리 승인 전 생산 KPI 사용 차단,Quant/Risk,InvestmentCommittee/Data,7,DEC-032,G4,SOURCE+DECISION_REQUIRED,P0,PLANNED +AEG-MO-017,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-01,MIG-0016,J21,UI-MO-05,T-MO-IMP-001,월간 개선 제안 생성 규칙,ModelImprovementProposal·ranking rubric,데이터·정책·calibration·risk·기술부채 제안을 구분하고 자동 코드/임계값 변경 0,Quant Lead,Risk/Architect,8,AEG-MO-012~016,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-018,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-02,MIG-0016,J21,UI-MO-05,T-MO-IMP-002,개선 제안 반대증거·만료·중복 통제,proposal schema·content hash·expiry,근거/반대증거/기대효과/위험/필수테스트/Owner/만료가 없으면 REVIEW_REQUIRED 생성 금지,Risk/Architect,Quant/QA,7,AEG-MO-017,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-019,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-PROMOTE-001,GOV-MO-03,MIG-0016,J22,UI-MO-06,T-MO-GATE-001,PromotionGateEvaluator와 증거 패킷,promotion-gate.v1·PromotionGateResult,252일/2국면/효용/calibration/false-exit/reentry/PBO/DSR/cost2x/운영오류를 모두 평가하되 human approval=true,Risk/BE,Quant/QA,9,AEG-MO-015~018,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-020,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,SEC,REQ-MO-PROMOTE-001,GOV-MO-04,MIG-0016,J22,UI-MO-06,T-MO-GATE-002,모델 승격 maker-checker·업무분장,model_promotion_review·RBAC,"maker≠checker, 개발자 단독승격 0, 독립검증·준법·보안 evidence 누락 시 승인 불가",Risk/Security,Compliance/QA,8,AEG-MO-019,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-021,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MO-FE-001,GOV-MO-05,MIG-0016,J17~J22,UI-MO-03~06,T-MO-FE-003,Drift·비교·OOS·제안·Gate 화면 컴포넌트,DriftPanel·ComparisonPanel·EvidenceGatePanel,version/sample/window/data warning/반대증거/readonly 상태를 표시하고 내부점수 고객 노출 0,FE/UX,Risk/QA,12,AEG-MO-012~020,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-022,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-01,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001,Data revision 영향 인덱스와 재평가 요청,decision↔dataset/revision impact index,정정 source/revision이 영향 decision/window를 결정적으로 산출하고 승인 없는 대량 replay 0,Data/BE,DBA/Quant,10,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-023,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-002,Revision-aware correction evidence,new observation/snapshot·Supersession link,"과거 evidence overwrite 0, before/after hash·사유·승인자·영향 KPI가 보존",Data/Compliance,Quant/QA,8,AEG-MO-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-024,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-ROLLBACK-001,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,분기 Model rollback drill,model_rollback_drill·Runbook evidence,fallback manifest 복원·Capability 차단·RTO 측정·Secondary 수행·실주문 0,SRE/Risk,Module Owner/QA,10,AEG-MO-020,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-025,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OBS,REQ-MO-OPS-001,MO-OPS-01,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-001,Scheduler·평가 관제 표준,OTel metrics·Serilog correlation·alerts,due lag/lease conflict/request duplicate/context hold/runtime/backlog/error가 trace→schedule→request→artifact로 연결,SRE/BE,Security/QA,8,AEG-MO-005~006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-026,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-02,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-002,Error taxonomy·retry·dead-letter·BusinessHold,Runbook·retry matrix·dead-letter procedure,"transient/business/poison 분리, blind retry 0, same scope 중복 side effect 0",SRE/BE,Ops/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-027,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-MO-OPS-001,MO-OPS-03,MIG-0016,J10~J24,UI-MO-09,T-MO-SEC-001,모델 evidence·알림 PII/secret 보안,classification/redaction/secret scan,계좌·고객·토큰·원시 payload가 log/trace/Telegram/prompt에 노출 0,Security/SRE,Compliance/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-028,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-04,MIG-0016,J10~J24,UI-MO-09,T-MO-CAP-001,평가 Queue 격리·용량·SLA 시험,capacity report·queue quotas,q-research가 고객 batch SLA를 침범하지 않고 backlog/CPU/DB lock/IO 한도와 degradation 정책 승인,SRE/DBA,Quant/QA,10,AEG-MO-025,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-029,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-SCHED-001,MO-TEST-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-CONC-001,Scheduler concurrency·crash·clock 회귀,integration/chaos tests,"다중 worker lease 경쟁, enqueue 전후 crash, clock skew, DST/휴장, 장기 downtime catch-up에서 중복 0",QA/SRE,BE/DBA,12,AEG-MO-005,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-030,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-EVAL-001,MO-TEST-02,MIG-0016,J10~J22,UI-MO-02~06,T-MO-GOLDEN-001,Python/.NET metric Golden 교차검증,Golden vectors·tolerance registry,동일 frozen input에서 Python 연구와 .NET 평가가 승인 허용오차 내 일치하고 차이 artifact 보존,QA/Quant,BE/Data,12,AEG-MO-010~020,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-031,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-FE-001,MO-TEST-03,MIG-0016,J10~J24,UI-MO-01~09,T-MO-E2E-001,모델 운영 Playwright E2E,role/state/evidence flows,"Quant/Risk/Auditor 권한, loading/empty/stale/warn/hold/review/expired/readonly와 접근성 통과",QA/FE,Security/UX,8,AEG-MO-009~021,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-032,S14,W29-30,Cross,Cross-cutting,Toolchain,CI,REQ-MO-OPS-001,Cross,MIG-0016,Cross,Cross,T-MO-CI-001,Gitea CI에 v12.4 validator·ModelOps tests·contract drift 추가,ci.yml·validate_v124.py,"static/JSON/CSV/WBS/contract/Python tests green, .NET/pnpm/DB evidence 없이는 PASS 주장 금지",DevOps/QA,Architect/Security,8,AEG-MO-001~031,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-033,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-OPS-001,Cross,Cross,Cross,Cross,Cross,모델 운영 Release Evidence 템플릿,MODEL_EVALUATION_EVIDENCE.md·IMPROVEMENT_PROPOSAL.md,"Source/Assumption/Unknown/DecisionRequired, 명령·hash·sample·window·approval·rollback가 누락 없이 연결",PM/Risk,QA/Architect,5,AEG-MO-032,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-034,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-IMPROVE-001,Cross,Cross,Cross,Cross,Cross,바이브코딩 모델 변경 작업 패킷,MODEL_CHANGE + evaluation packet,AI가 임계값·팩터·모델·스케줄을 추정하지 않고 승인 source와 실제 test artifact 없으면 PR 차단,Architect/Quant,Risk/QA,6,AEG-MO-033,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-035,S15,W31-32,Cross,Cross-cutting,Release,CUTOVER,REQ-MO-OPS-001,Cross,MIG-0016,J10~J24,UI-MO-01~09,T-MO-REL-001,20영업일 ModelOps 단계 배포,runbook·feature/capability config·rollback,DISABLED→EVALUATION_ONLY→PROPOSAL_ONLY 순으로 승격하고 자동 model/order mutation은 계속 OFF,Release/SRE,Risk/Compliance,8,AEG-MO-032~034,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-036,MNT,Monthly,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,MNT,REQ-MO-EVAL-001,EVAL-MNT-01,MIG-0016,J10/J11/J17,UI-MO-02/03,T-MO-MNT-001,월간 성과·drift·false-exit·reentry 리뷰,monthly model health pack,metric version/sample/lag/drift/반대증거/기술부채와 개선 제안이 투자위 회의록에 연결,Quant/Risk,Ops/QA,4,Go-Live,MNT,SOURCE+OPERATING_EVIDENCE,P1,PLANNED +AEG-MO-037,MNT,Quarterly,VS-19/20,RunFrozenBacktest/PromoteModelVersion,BacktestingEvaluation/GovernanceAudit,MNT,REQ-MO-ROBUST-001,GOV-MNT-01,MIG-0016,J18~J23,UI-MO-04~08,T-MO-MNT-002,분기 OOS·PBO/DSR·승격/롤백 검토,quarterly independent validation pack,"복합 Gate 우회 0, 기준 미달 모델은 HOLD/REJECTED, rollback drill evidence 존재",Risk/InvestmentCommittee,IndependentValidation/Compliance,8,AEG-MO-036,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-MO-038,MNT,Release,Cross,Cross-cutting,GovernanceAudit,MNT,REQ-MO-IMPROVE-001,Cross,Cross,ModelChanged,Cross,T-MO-MNT-003,모델/정책/지표 변경 비회귀 릴리스,Model Change·Golden·Frozen OOS·Supersession,"문서/JSON/C#/DB/API/FE/test hash 정렬, 이전 계약 원문 보존, 자동승격/자동주문 OFF",Architect/Risk,Quant/QA/SRE,6,Approved Model Change,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-V12-5-001,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-001,기준선 직접/전이 첨부 Coverage와 Supersession 승인,Current source coverage+baseline transitive index,"현재 첨부 3개 SHA 일치, v12.4 내부 누적 첨부 경로 검증",PM/Architect,Compliance/QA,5,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-002,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-002,Build/Runtime/Shadow Evidence 상태모델 승인,Evidence status registry,STATIC/BUILD/DB/SHADOW/PILOT 상태의 허용 전이가 승인됨,PM/QA,Architect/Compliance,4,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-003,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-003,Decision Required 만료·aging 운영,Decision aging dashboard,"P0 decision owner/due/expiry 100%, 만료 시 Gate 자동 HOLD",PMO,Owner/QA,5,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-004,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-004,Release Evidence maker-checker 계약,Release evidence contract,"maker≠checker, 필수 artifact 누락 시 APPROVED 불가",QA/Release,Compliance/SRE,6,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-005,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,DEVEX,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-005,.NET 10 승인 runner restore/build/test,TRX+build logs,warning-as-error Release build 및 전체 test artifact,DevOps,BE/QA,10,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-006,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,DEVEX,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-006,pnpm lockfile 생성·검토·frozen build,pnpm-lock+CI logs,"lock diff 승인, typecheck/test/build/e2e 재현",FE Lead,DevOps/QA,8,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-007,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,FITNESS,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-007,Assembly/namespace/schema/API ownership test,Architecture fitness suite,"금지 의존, 직접 cross-schema write, ID 충돌 0",Architect/QA,BE/DBA,8,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-008,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,CONTRACT,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-008,OpenAPI artifact diff와 FE generated contract,OpenAPI client/Zod artifact,"DTO drift 0, runtime validation 통과",BE/FE,QA/Architect,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-009,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-009,Source/License/SLA/Timezone/Unit 계약 승인,Source contract snapshots,승인 없는 source ingestion/recommendation 0,Data Governance,Legal/QA,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-010,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-010,KRX/NYSE/NASDAQ calendar·DST·반일장 구현,Market calendar contract,휴장/반일장/DST Golden과 tradable_session 통과,Data/Quant,QA/Ops,12,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-011,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-011,총수익·상폐수익·기업행사 Golden,Golden dataset,price/quantity/cost/cash/return 대사 100%,Data/DBA,Quant/QA,12,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-012,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-012,Fee/Tax/FX valid-time schedule 확정,Cost schedule,계좌/venue/asset/side/band PIT 적용과 boundary 통과,Ops/Tax,Quant/DBA,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-013,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-013,PIT bitemporal unique/exclusion 제약 설계,DDL+ADR,중복 유효구간과 current overwrite 경로 0,DBA/Data Architect,BE/QA,8,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-014,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-014,Migration fresh/upgrade/re-run/failure rehearsal,Migration evidence,"4시나리오 통과, checksum 변경 차단, rollback/runbook",DBA/BE,QA/SRE,10,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-015,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-015,볼륨·partition·index·retention 결정,Capacity ADR,"실제 규모/쿼리계획으로 승인, 근거 없는 index 0",DBA/SRE,PM/Data,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-016,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,DQ,REQ-EXA-004,Cross,Cross,J25-J30,Cross,T-EXA-016,DQ incident·quarantine·reprocess E2E,DQ E2E evidence,"격리 데이터 추천 0, correction revision 보존",Data/QA,BE/Ops,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-017,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-017,false-exit metric definition version 확정,Metric definition,분자/분모/window/benchmark/cost/revision 승인,Quant/Risk,QA/Investment Committee,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-018,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-018,reentry capture/delay metric definition 확정,Metric definition,stage/cycle/expiry/no-fill 포함 정의 승인,Quant/Risk,QA/Data,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-019,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-019,Evidence grade와 counter-evidence 계약,Policy contract,DQ/freshness/revision/source coverage에 따른 downgrade 재현,Quant/Data,Risk/QA,8,v12.4 baseline,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-020,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-020,승격 threshold machine-readable 단일화,Promotion contract registry,"JSON/C#/문서 drift 0, 승인 version/hash 기록",Quant/BE,Risk/QA,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-021,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-021,전체 실험 registry·CSCV/PBO/DSR,Experiment registry,"숨은 시도 0, deterministic seed, independent replay",Quant/Risk,Independent Validation,16,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-022,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-022,Champion/Challenger paired comparison,Comparison artifact,"동일 data/cost/cohort/window, sample mismatch HOLD",Quant/QA,Risk/Data,12,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-023,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-023,revision impact replay와 correction link,Revision replay evidence,before/after dataset/hash와 영향 decision 100% 연결,Data/Quant,DBA/QA,12,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-024,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-024,Cost2x·missing·delisting·CA·FX stress,Stress report,모든 승인 candidate에 필수 stress artifact,Quant/QA,Risk/Data,12,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-025,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-025,ModelOperations Dispatcher fail-closed 검증,Capability tests,"기본 OFF, ShadowEvaluation false면 startup 차단",BE/Security,QA/SRE,6,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-026,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-026,Dispatch enqueue/mark gap 제거 설계,Dispatch intent/outbox ADR,crash timing에서 duplicate request/손실 0,BE/SRE,Architect/QA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-027,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-027,Model operation 상태전이 서비스,Status transition slice,"허용 transition, optimistic concurrency, append event 100%",BE Lead,QA/DBA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-028,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-028,BusinessHold/Quarantine/Poison 분류,Failure taxonomy,"blind retry 0, dead-letter/runbook 연결",BE/SRE,Data/QA,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-029,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-029,J10~J30 executor handler 계약,Operation handler registry,"Scheduler에 수식 없음, handler contract test 100%",BE/Quant,Architect/QA,18,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-030,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-030,Operation artifact store·retention,Artifact repository,content hash/retention/source request 추적 100%,BE/DBA,Compliance/SRE,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-031,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-031,Outbox/Inbox crash/replay chaos,Chaos evidence,"crash-before/after-publish, duplicate side effect 0",BE/SRE,QA/DBA,14,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-032,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-032,Projection rebuild/diff runner,Projection runner,version/watermark/stale/rebuild diff 통과,BE/Data,QA/SRE,12,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-033,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,UX,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-033,고객 투자제안 정보위계 프로토타입,UX prototype,행동/근거/반대증거/비용/불확실성/다음검토 usability 통과,UX/AX,Advisor/Compliance,10,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-034,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,UX,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-034,운용자 maker-checker 검토함 프로토타입,Ops prototype,"작성자 단독승인 0, expiry/DQ/version 경고 명확",UX/FE,Advisor/QA,10,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-035,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-035,Query key registry·Pinia 경계 lint,FE architecture rules,"server state Pinia 복제 0, invalidation contract 통과",FE Lead,QA/Architect,8,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-036,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-036,Zod request/response/error runtime validation,FE contract tests,성공/오류/nullable/version mismatch 전부 차단·표시,FE Lead,BE/QA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-037,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-010,Cross,Cross,Cross,UI-EXA,T-EXA-037,Accessibility keyboard/screen-reader test,A11y evidence,WCAG 핵심 흐름 keyboard/label/focus 통과,FE/UX,QA/Compliance,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-038,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-010,Cross,Cross,Cross,UI-EXA,T-EXA-038,Evidence/VersionSet/Readiness 공통 컴포넌트,Shared components,3회 반복+동일 의미/변경축 근거와 component tests,FE Lead,UX/QA,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P2,PLANNED +AEG-V12-5-039,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-010,Cross,Cross,Cross,Cross,T-EXA-039,OIDC/JWT provider·claims·rotation ADR,Auth ADR+E2E,"issuer/audience/claims/key rotation, fail-closed 통과",Security/BE,PM/QA,12,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-040,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-010,Cross,Cross,Cross,Cross,T-EXA-040,PII classification/redaction/Telegram test,Security evidence,log/trace/alert/prompt 고객정보 노출 0,Security/SRE,QA/Compliance,10,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-041,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-011,Cross,Cross,Cross,Cross,T-EXA-041,SBOM·license·vulnerability gate,Supply-chain evidence,NuGet/npm allowlist와 critical 취약점 0,Security/DevOps,Legal/QA,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-042,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-042,SLO/RPO/RTO·volume 승인,Operations ADR,data/recommendation/publish/reconcile/evaluation SLO 승인,SRE/PM,DBA/Ops,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-043,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-043,부하·장애·queue isolation 시험,Capacity/chaos report,research queue가 recommendation SLA 침범 0,SRE/QA,BE/DBA,14,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-044,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-044,Backup/restore·rollback drill,DR evidence,"RPO/RTO 실측, champion/fallback 복구 hash 일치",SRE/DBA,QA/Risk,12,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-045,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,QA,REQ-EXA-012,Cross,Cross,J25-J30,Cross,T-EXA-045,End-to-End Release Evidence 자동조립,Release evidence bundle,source/build/test/migration/security/rollback 누락 0,QA/Release,DevOps/Compliance,10,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-046,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,OPS,REQ-EXA-012,Cross,Cross,Cross,Cross,T-EXA-046,P1/P2 장애·정정·고객공지 Runbook,Runbook pack,Owner/Secondary/escalation/communication rehearsal,Ops/SRE,Compliance/CS,10,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-047,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,PM,REQ-EXA-012,Cross,Cross,Cross,UI-EXA,T-EXA-047,90일 Critical Path·Gate burn-down 운영,Critical path dashboard,P0 dependency/decision/evidence aging 주간 갱신,PM/PL,All Leads,8,v12.4 baseline,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-048,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-012,Cross,MIG-0017,Cross,Cross,T-EXA-048,36개월 모델·데이터·기술부채 review cadence,Operating calendar,월/분기/반기/연 review와 산출물/승인자 고정,PM/Risk,Architect/Ops,6,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-001,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ARCH,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-01,T-FE-ARCH-01,UI Vendor import boundary,ESLint/architecture rule,Feature에서 primevue/ag-grid 직접 import 0,FE Architect,QA,5,AEG-X-003,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-002,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-DS,REQ-FE-TOKEN,Cross,Cross,Cross,UI-FOUND-02,T-FE-TOKEN-01,Design token contract,tokens.css,임의 색상/spacing/금융 formatter 경로 0,UX/FE,QA,5,V13-FE-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-003,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-03,T-FE-ADAPTER-01,UiAdapter Port 정의,adapter/contracts.ts,8개 Port와 version/id 계약 고정,FE Architect,QA,5,V13-FE-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-004,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-04,T-FE-ADAPTER-02,PrimeVue/AG Grid Adapter 구현,adapter/primevue/*,Port contract test와 접근성 기본속성 통과,FE Lead,QA/UX,8,V13-FE-003,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-005,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-COMP,REQ-FE-COMP,Cross,Cross,Cross,UI-FOUND-05,T-FE-COMP-01,Ks* vendor-neutral components,shared/ui/components,Feature vendor import 없이 동작,FE Lead,QA,8,V13-FE-004,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-006,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-LAYOUT,REQ-FE-LAYOUT,Cross,Cross,Cross,UI-FOUND-06,T-FE-LAYOUT-01,AppShell/Page layouts,shared/ui/layouts,landmark/skip-link/responsive/automation boundary,UX/FE,QA/Security,7,V13-FE-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-007,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-STATE,REQ-FE-STATE,Cross,Cross,Cross,UI-FOUND-07,T-FE-STATE-01,11-state Matrix component,StandardStatePanel,각 상태의 표현/금지행동 test,UX/FE,QA,6,V13-FE-005,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-008,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-FMT,REQ-FE-FORMAT,Cross,Cross,Cross,UI-FOUND-08,T-FE-FMT-01,금융 formatter 중앙화,financial.ts,통화/비율/수량/as-of 단위 명시,FE Lead,Quant/QA,5,V13-FE-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-009,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-CONTRACT,REQ-FE-OPENAPI,Cross,Cross,Cross,UI-FOUND-09,T-FE-CONTRACT-01,OpenAPI-Zod 생성 전략 ADR,ADR-FE-CONTRACT,DTO 중복 source 0 계획 승인,BE/FE Architect,QA,5,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-010,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-BOOT,REQ-FE-BOOT,Cross,Cross,Cross,UI-FOUND-10,T-FE-SMOKE-01,PrimeVue unstyled/bootstrap 연결,main.ts,adapter 미설치 fail-fast와 smoke route,FE Lead,QA,4,V13-FE-004,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-011,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T01,Cross,Cross,Cross,UI-T01,T-FE-T01-01,T01 검색목록 화면 템플릿,screen-types/T01,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-012,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T02,Cross,Cross,Cross,UI-T02,T-FE-T02-01,T02 상세조회 화면 템플릿,screen-types/T02,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-013,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T03,Cross,Cross,Cross,UI-T03,T-FE-T03-01,T03 등록편집 화면 템플릿,screen-types/T03,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-014,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T04,Cross,Cross,Cross,UI-T04,T-FE-T04-01,T04 MasterDetail 화면 템플릿,screen-types/T04,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-015,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T05,Cross,Cross,Cross,UI-T05,T-FE-T05-01,T05 검토승인 화면 템플릿,screen-types/T05,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-016,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T06,Cross,Cross,Cross,UI-T06,T-FE-T06-01,T06 Wizard 화면 템플릿,screen-types/T06,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-017,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T07,Cross,Cross,Cross,UI-T07,T-FE-T07-01,T07 Dashboard 화면 템플릿,screen-types/T07,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-018,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T08,Cross,Cross,Cross,UI-T08,T-FE-T08-01,T08 Batch운영 화면 템플릿,screen-types/T08,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-019,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T09,Cross,Cross,Cross,UI-T09,T-FE-T09-01,T09 대사예외 화면 템플릿,screen-types/T09,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-020,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T10,Cross,Cross,Cross,UI-T10,T-FE-T10-01,T10 버전거버넌스 화면 템플릿,screen-types/T10,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-021,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-FORM,REQ-FE-FORM,Cross,Cross,Cross,UI-FORM-01,T-FE-FORM-01,vee-validate/Zod standard form,CrudFormPage,"422 field/summary, dirty, duplicate submit, If-Match",FE Lead,BE/QA,8,V13-FE-013,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-022,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-URL,REQ-FE-URL,Cross,Cross,Cross,UI-URL-01,T-FE-URL-01,Filter/page/tab URL state,router/query codec,deep-link roundtrip와 허용 filter whitelist,FE Lead,QA,6,V13-FE-011,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-023,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-GRID,REQ-FE-GRID,Cross,Cross,Cross,UI-GRID-01,T-FE-GRID-01,AG Grid server-side contract,KsDataGrid,pagination/sort/filter/column state/a11y,FE Lead,BE/QA,8,V13-FE-004,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-024,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-PERM,REQ-FE-AUTHZ,Cross,Cross,Cross,UI-AUTH-01,T-FE-AUTH-01,Permission/Capability Guard integration,AppShell/Route meta,unauthorized 존재정보 과노출 0,FE/Security,QA,7,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-025,S7,W15-16,Cross,Cross-cutting,ClientAdvisory,FE-REVIEW,REQ-ADV-REVIEW,Cross,Cross,Cross,UI-T05-ADV,T-ADV-REVIEW-UI,추천 검토 Workbench 적용,advisor/recommendations,"self-approval 0, warning ack, conflict, expiry",FE/UX,Compliance/QA,10,V13-FE-015,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-026,S8,W17-18,Cross,Cross-cutting,ClientAdvisory,FE-PUBLISH,REQ-ADV-PUBLISH,Cross,Cross,Cross,UI-T02-ADV,T-ADV-PUBLISH-UI,고객 제안 상세 적용,advice detail,승인본 hash/as-of/version만 고객 노출,FE/UX,Compliance/QA,9,V13-FE-012,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-027,S8,W17-18,Cross,Cross-cutting,DataOperations,FE-BATCH,REQ-OPS-BATCH,Cross,Cross,Cross,UI-T08-OPS,T-OPS-BATCH-UI,Data/Job Run Batch 화면 적용,ops/data-runs,JobRun/Watermark/reprocess dry-run/audit,FE/Ops,SRE/QA,9,V13-FE-018,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-028,S8,W17-18,Cross,Cross-cutting,ExecutionReconciliation,FE-RECON,REQ-RECON-UI,Cross,Cross,Cross,UI-T09-RECON,T-RECON-UI,대사·정정 화면 적용,ops/reconciliation,"before/after, maker-checker, blind overwrite 0",FE/Ops,DBA/QA,9,V13-FE-019,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-029,S11,W23-24,Cross,Cross-cutting,ModelOperations,FE-GOV,REQ-MODEL-GOV-UI,Cross,Cross,Cross,UI-T10-MODEL,T-MODEL-GOV-UI,모델 버전 비교 화면 적용,ops/model-governance,"same dataset/cost, gate pack, rollback",FE/Quant,Risk/QA,10,V13-FE-020,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-030,S11,W23-24,Cross,Cross-cutting,Evaluation,FE-DASH,REQ-EVAL-DASH,Cross,Cross,Cross,UI-T07-EVAL,T-EVAL-DASH,일평가 Scorecard 적용,research/evaluations,metric definition/sample/window/table alternative,FE/Quant,QA/UX,9,V13-FE-017,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-031,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-A11Y,REQ-FE-A11Y,Cross,Cross,Cross,UI-ALL,T-FE-A11Y-01,접근성 자동·수동 Matrix,a11y test pack,keyboard/focus/ARIA/contrast/table alternative,QA/UX,FE,8,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-032,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-VISUAL,REQ-FE-VISUAL,Cross,Cross,Cross,UI-ALL,T-FE-VISUAL-01,Visual regression baseline,Playwright screenshots,T01~T10 desktop/mobile 의미 diff 0,QA/UX,FE,8,V13-FE-011..020,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-033,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-ERROR,REQ-FE-ERROR,Cross,Cross,Cross,UI-ALL,T-FE-ERROR-01,ProblemDetails mapping,error mapper,401/403/409/422/429/503 표준행동,FE/BE,QA,7,V13-FE-007,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-034,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-IDEMP,REQ-FE-IDEMP,Cross,Cross,Cross,UI-ALL,T-FE-IDEMP-01,Idempotency retry contract,command composable,"동일 retry key 재사용, 중복 side effect 0",FE/BE,QA,7,V13-FE-021,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-035,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-FRESH,REQ-FE-FRESH,Cross,Cross,Cross,UI-ALL,T-FE-FRESH-01,Data freshness/version standard,freshness/version components,as-of/published_at/revision/stale 일관,FE/Data,QA/UX,7,V13-FE-007,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-036,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-EXPORT,REQ-FE-EXPORT,Cross,Cross,Cross,UI-ALL,T-FE-EXPORT-01,Print/export evidence contract,export footer,approved hash/as-of/version/disclaimer 포함,FE/Compliance,QA,6,V13-FE-026,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-037,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-SWAP,Cross,Cross,Cross,UI-FOUND-11,T-FE-SWAP-01,Vendor swap rehearsal,alternate fake adapter,"Feature 변경 0, contract/visual/a11y pass",FE Architect,QA/UX,8,V13-FE-004,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-038,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-PERF,REQ-FE-PERF,Cross,Cross,Cross,UI-ALL,T-FE-PERF-01,대량 화면 성능 budget,performance report,"10k row virtualized, interaction P95 승인",FE/SRE,QA,8,V13-FE-023,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-039,S14,W29-30,Cross,Cross-cutting,UIFoundation,FE-DEBT,REQ-FE-DEBT,Cross,Cross,Cross,UI-ALL,T-FE-DEBT-01,공통 컴포넌트 승격/폐기 review,component registry,owner/usage/change-axis/deprecation 기록,FE Architect,PM/QA,6,V13-FE-001..038,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-040,S15,W31-32,Cross,Cross-cutting,UIFoundation,FE-EVIDENCE,REQ-FE-REL,Cross,Cross,Cross,UI-ALL,T-FE-REL-01,FE Release Evidence assemble,release evidence,typecheck/test/e2e/a11y/visual/perf hash,QA/Release,FE/SRE,6,V13-FE-031..039,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-001,S8,W17-18,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-FREEZE,Cross,MIG-0018,J31,UI-J31,T-J31,J31 PredictionFreeze 계약·DB,prediction_freeze + registry,결과 공개 전 VersionSet hash append-only,Quant/BE,Data/QA,8,VS-09/18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-002,S8,W17-18,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-MATURITY,Cross,MIG-0018,J32,UI-J32,T-J32,J32 평가창 성숙 sweep,evaluation_window_maturity,거래세션 1/5/20/63/126/252 정확,Quant/BE,Data/QA,8,V13-MODEL-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-003,S11,W23-24,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-SELL,Cross,Cross,J33,UI-J33,T-J33,J33 매도·재진입 attribution,weekly evidence,false-exit/gain/capture/delay cost 정의 일치,Quant/Risk,Advisor/QA,9,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-004,S11,W23-24,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-CAL,Cross,Cross,J34,UI-J34,T-J34,J34 calibration/regime review,calibration evidence,coverage/Brier/logloss/regime/version,Quant/Risk,Data/IV,9,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-005,S11,W23-24,Cross,Cross-cutting,Governance,MODEL-IMPROVE,REQ-MODEL-HYP,Cross,MIG-0018,J35,UI-J35,T-J35,J35 개선가설 생성,model_improvement_hypothesis,문제/증거/변경/효과/반증/비목표/만료,Quant Lead,Risk/Architect,9,V13-MODEL-003..004,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-006,S11,W23-24,Cross,Cross-cutting,Governance,MODEL-IMPROVE,REQ-MODEL-CHAL,Cross,Cross,J36,UI-J36,T-J36,J36 Challenger 계획,experiment plan,승인 없는 train/config/activate 0,Quant Lead,IV/QA,9,V13-MODEL-005,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-007,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-VALIDATE,REQ-MODEL-IV,Cross,Cross,J37,UI-J37,T-J37,J37 독립검증 Pack,validation pack,OOS/PBO/DSR/cost2x/repro/ops 완결,IndependentValidation,Risk/Compliance,10,V13-MODEL-006,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-008,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-DEBT,REQ-MODEL-DEBT,Cross,Cross,J38,UI-J38,T-J38,J38 모델·정책 Debt review,debt decision pack,owner/expiry/remediation/exit test,Risk/Architect,Quant/PM,7,V13-MODEL-005,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-MODEL-009,S8,W17-18,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-V2,Cross,MIG-0018,J31~J38,UI-MOPS,T-SCHED-V2,model-operations.v2 contract,JSON contract,J31~J38 mode/cadence/queue/gate 검증,BE/SRE,Quant/QA,6,V13-MODEL-001..008,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-010,S8,W17-18,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-FAIL,Cross,MIG-0018,J31~J38,UI-MOPS,T-SCHED-FAIL,Schedule fail-closed migration,0018 migration,"8개 schedule enabled=false, dependency 승인 전 HOLD",DBA/BE,SRE/QA,7,V13-MODEL-009,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-011,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-CAL,Cross,Cross,J31~J34,UI-MOPS,T-SCHED-CAL,Evaluation clock/calendar tests,calendar fixtures,휴장/DST/반일장/window maturity Golden,Data/QA,Quant/BE,8,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-012,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-REV,Cross,Cross,J31~J34,UI-MOPS,T-SCHED-REV,Revision-aware replay tests,replay evidence,"과거 overwrite 0, 새 dataset/result revision",Data/BE,QA/Quant,8,V13-MODEL-001..004,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-013,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-IDEMP,Cross,Cross,J31~J38,UI-MOPS,T-SCHED-IDEMP,Job crash/retry/lease tests,fault evidence,duplicate request/artifact/hypothesis 0,BE/SRE,QA/DBA,8,V13-MODEL-009,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-014,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-SEC,REQ-MODEL-SEG,Cross,MIG-0018,J35~J37,UI-J35~J37,T-MODEL-SEG,maker-checker/segregation E2E,approval evidence,"maker != checker, expired proposal block",Risk/BE,Compliance/QA,8,V13-MODEL-005..007,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-015,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-BOUNDARY,REQ-MODEL-AUTO,Cross,Cross,J31~J38,UI-MOPS,T-MODEL-AUTO,금지 side effect architecture test,boundary tests,auto promote/config/publication/order 0,Architect/QA,Risk/Security,7,V13-MODEL-009,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-016,S14,W29-30,Cross,Cross-cutting,Governance,MODEL-OPS,REQ-MODEL-RUNBOOK,Cross,Cross,J31~J38,UI-MOPS,T-MODEL-OPS,지속 모델운영 Runbook/rollback,runbook,owner/secondary/hold/replay/rollback drill,SRE/Risk,Quant/QA,8,V13-MODEL-001..015,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-001,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-01,Cross,Cross,Cross,UI-DEV-01,T-SCAFFOLD-01,BE/FE Vertical Slice scaffolder,tools/scaffold_vertical_slice.py,dry-run/overwrite refusal/unresolved token 0,Architect/DevEx,BE/FE Lead,8,V13-FE-003,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-002,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-02,Cross,Cross,Cross,UI-DEV-02,T-SCAFFOLD-02,FastEndpoints/Dapper template,templates/vertical-slice/backend,Endpoint/Request/Response/Validator/Handler/Sql packet,BE Lead,Architect/QA,7,V13-TOOL-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-003,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-03,Cross,Cross,Cross,UI-DEV-03,T-SCAFFOLD-03,Vue/Zod/Query template,templates/vertical-slice/frontend,api/schema/query/page/test packet,FE Lead,Architect/QA,7,V13-TOOL-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-004,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-13,현재 첨부 5개 원본 보존,attachments/current_request_20260802_v13,SHA-256/size/filename byte-for-byte,PM/Architect,QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-005,S0,W1-2,Cross,Cross-cutting,Governance,TRACE,REQ-TRACE-13,Cross,Cross,Cross,Cross,T-TRACE-13,v13 Source/WBS/Trace update,docs/v13_0 CSV,"WBS 400, ID duplicate 0, J31~J38 trace",PM/QA,Architect,7,V13-TOOL-004,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-006,S14,W29-30,Cross,Cross-cutting,Quality,STATIC,REQ-STATIC-13,Cross,Cross,Cross,UI-ALL,T-STATIC-13,v13 static validator,STATIC_VALIDATION_V13_0.txt,"0 FAIL, WARN은 runtime 미실행만",QA/DevEx,Architect,8,"V13-FE-040,V13-MODEL-016",G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-007,S14,W29-30,Cross,Cross-cutting,Documentation,DOCX,REQ-DOCX-13,Cross,Cross,Cross,Cross,T-DOCX-13,v13 통합 제안서 DOCX,K-ArtSell_Aegis_v13_0*.docx,render 모든 페이지 육안 QA,PM/Consultant,QA/Architect,8,V13-TOOL-005,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-008,S15,W31-32,Cross,Cross-cutting,Release,PACKAGE,REQ-PACK-13,Cross,Cross,Cross,Cross,T-PACK-13,단일 ZIP·manifest·SHA,final package,"zip -T, manifest count/hash, 첨부 누락 0",Release/QA,PM/SRE,8,V13-TOOL-006..007,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V14-001,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-001,Cross,Cross,Cross,Cross,Cross,UI Adapter v2 계약 동결,contracts/ui/ui-adapter.v2.json,"10개 capability와 contractVersion 2.0, fail-fast 검증",FE Architect,QA/UX,5,AEG-X-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-002,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-002,Cross,Cross,Cross,Cross,Cross,Provider resolver와 환경 선택 구현,resolveUiProvider.ts·env contract,"primevue/native 외 값은 startup 실패, Feature 수정 0",FE Lead,Architect/QA,5,AEG-V14-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-003,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-003,Cross,Cross,Cross,Cross,Cross,PrimeVue+AG Grid provider v2 이관,primevue adapter v2,10 capability contract test 통과,FE Lead,QA,6,AEG-V14-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-004,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-004,Cross,Cross,Cross,Cross,Cross,Native reference provider 구현,native-accessible adapter,"공급자 교체 증명, productionEligible=false",FE Lead,UX/QA,7,AEG-V14-001,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-005,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-001,Cross,Cross,Cross,Cross,Cross,DateField 표준 래퍼 구현,KsDateField + 2 provider adapter,label/error/help/min/max 계약과 keyboard test,FE,UX/QA,4,AEG-V14-003,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-006,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-002,Cross,Cross,Cross,Cross,Cross,NumberField 표준 래퍼 구현,KsNumberField + 2 provider adapter,decimal/범위/빈값 계약과 form test,FE,Quant/QA,4,AEG-V14-003,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-007,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,FITNESS,REQ-UI-FIT-001,Cross,Cross,Cross,Cross,Cross,Vendor import architecture fitness 강화,validate_v14.py import scan,adapter 경계 외 primevue/ag-grid import 0,Architect/QA,FE Lead,5,AEG-V14-002,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-008,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-005,Cross,Cross,Cross,Cross,Cross,Adapter capability contract test,uiAdapter.contract.spec.ts,두 provider 동일 capability와 component 누락 0,QA/FE,Architect,4,"AEG-V14-003,AEG-V14-004",G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-009,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-006,Cross,Cross,Cross,Cross,Cross,공급자 교체 승인 Gate 정의,UI_PROVIDER_REPLACEMENT_GATE.md,a11y/visual/perf/state/security 증거 없이는 교체 금지,UX/Architect,QA/Security,3,AEG-V14-008,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-010,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-003,Cross,Cross,Cross,Cross,Cross,컴포넌트 버전/폐기 정책,FE_COMPONENT_CATALOGUE.csv,Stable/Experimental/Deprecated 상태와 대체일 정의,FE Lead,PM/UX,3,AEG-V14-001,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-011,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-004,Cross,Cross,Cross,Cross,Cross,표준 UI public barrel 정리,shared/ui/index.ts,"Feature import 경로 3개 이하, vendor symbol 노출 0",FE Lead,Architect,3,AEG-V14-007,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-012,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-005,Cross,Cross,Cross,Cross,Cross,Native adapter 비생산 경고/관제,adapter descriptor + startup log,운영 환경 native 선택 시 배포 Gate HOLD,FE/SRE,QA,4,AEG-V14-004,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-013,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T01,Cross,Cross,Cross,T01,T-UI-T01,T01 검색·목록 CRUD 표준 화면 구현,SearchListCrudPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-014,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T02,Cross,Cross,Cross,T02,T-UI-T02,T02 상세·증거 조회 표준 화면 구현,DetailReadPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-015,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T03,Cross,Cross,Cross,T03,T-UI-T03,T03 등록·편집 Form 표준 화면 구현,EditFormPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-016,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T04,Cross,Cross,Cross,T04,T-UI-T04,T04 Master-Detail 표준 화면 구현,MasterDetailCrudPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-017,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T05,Cross,Cross,Cross,T05,T-UI-T05,T05 maker-checker 검토 표준 화면 구현,ApprovalWorkbenchPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-018,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T06,Cross,Cross,Cross,T06,T-UI-T06,T06 단계 Wizard 표준 화면 구현,StepWizardPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-019,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T07,Cross,Cross,Cross,T07,T-UI-T07,T07 Dashboard/Scorecard 표준 화면 구현,ScorecardDashboardPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-020,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T08,Cross,Cross,Cross,T08,T-UI-T08,T08 Batch/Data Ops 표준 화면 구현,BatchOperationsPageV2.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-021,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T09,Cross,Cross,Cross,T09,T-UI-T09,T09 대사·예외 표준 화면 구현,ReconciliationExceptionPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-022,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T10,Cross,Cross,Cross,T10,T-UI-T10,T10 버전·거버넌스 표준 화면 구현,VersionGovernancePage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-023,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-STATE-001,Cross,Cross,Cross,Cross,Cross,표준 화면 상태 union 계약,screenContract.ts,READY/LOADING/EMPTY/WARN/ERROR/권한/충돌/만료/처리 상태 명시,FE Architect,UX/QA,4,AEG-V14-013,MVP-B,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-024,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-STATE-002,Cross,Cross,Cross,Cross,Cross,StandardScreenBoundary 상태 통합,StandardScreenBoundary.vue,모든 v2 화면이 동일 상태 경계 사용,FE,QA/UX,4,AEG-V14-023,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-025,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-001,Cross,Cross,Cross,Cross,Cross,목록 화면 scaffold 템플릿,CrudListPage.vue.template,"vendor import 0, v2 화면 계약 사용",FE,QA,3,AEG-V14-013,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-026,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-002,Cross,Cross,Cross,Cross,Cross,Form 화면 scaffold 템플릿,CrudFormPage.vue.template,Zod/If-Match/Idempotency TODO marker 명시,FE,QA,3,AEG-V14-015,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-027,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-003,Cross,Cross,Cross,Cross,Cross,상세 화면 scaffold 템플릿,CrudDetailPage.vue.template,"EvidenceVersionSet 필수, mutable evidence 금지",FE,Compliance/QA,3,AEG-V14-014,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-028,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-004,Cross,Cross,Cross,Cross,Cross,검토 화면 scaffold 템플릿,CrudReviewPage.vue.template,maker-checker 3영역과 경고 확인 slot,FE,Compliance/QA,3,AEG-V14-017,MVP-B,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-029,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,DEVEX,REQ-UI-SCAFFOLD-005,Cross,Cross,Cross,Cross,Cross,UI 화면 scaffolder 구현,tools/scaffold_ui_screen.py,"kind 4종 생성, overwrite 보호, vendor import 0",FE/DevEx,QA,5,AEG-V14-025..028,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-030,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-DEEPLINK-001,Cross,Cross,Cross,Cross,Cross,목록/선택/탭 URL 재현 계약,route state guideline + tests,새로고침/공유 링크에서 동일 화면 상태,FE/UX,QA,5,AEG-V14-013,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-031,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-CONFLICT-001,Cross,Cross,Cross,Cross,Cross,Form 충돌/dirty guard 표준화,If-Match conflict flow,"409/412에서 silent overwrite 0, 최신 재조회",FE,BE/QA,6,AEG-V14-015,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-032,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-EXPORT-001,Cross,Cross,Cross,Cross,Cross,목록 Export 권한/감사 표준,export command template,서버 권한·범위·감사 없이 client export 0,FE/BE,Security/QA,5,AEG-V14-013,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-033,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,A11Y,REQ-UI-A11Y-001,Cross,Cross,Cross,Cross,Cross,10개 화면 키보드/landmark 검증,Playwright accessibility scenarios,"키보드 trap 0, heading/landmark 순서 PASS",QA/UX,FE,8,AEG-V14-013..022,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-034,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,VISUAL,REQ-UI-VIS-001,Cross,Cross,Cross,Cross,Cross,공급자별 visual regression 기준,baseline screenshots,prime/native 주요 상태 diff 승인,QA/UX,FE,7,AEG-V14-008,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-035,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,PERF,REQ-UI-PERF-001,Cross,Cross,Cross,Cross,Cross,AG Grid server-side volume 기준,grid performance evidence,"10k/100k 행은 server-side, UI long task 기준 충족",FE/SRE,QA,7,AEG-V14-003,G6-A,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-036,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-ERROR-001,Cross,Cross,Cross,Cross,Cross,ProblemDetails 사용자 메시지 매핑,problem code catalogue,"원문 stack/secret 노출 0, 재시도 가능성 구분",FE/Security,BE/QA,5,AEG-V14-024,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-037,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-EVIDENCE-001,Cross,Cross,Cross,Cross,Cross,EvidenceVersionSet 표준 노출,evidence panel contract,추천/모델/평가 화면에서 dataset/model/config/code/contract 표시,FE/Compliance,QA,5,"AEG-V14-014,AEG-V14-022",G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-038,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-STALENESS-001,Cross,Cross,Cross,Cross,Cross,Read Model stale 표시/재빌드 UX,freshness badge + rebuild status,"stale 숨김 0, watermark/projection version 조회",FE/Data,SRE/QA,5,"AEG-V14-016,AEG-V14-020",G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-039,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,TEST,REQ-UI-CONTRACT-001,Cross,Cross,Cross,Cross,Cross,화면 catalogue 정적 계약 테스트,catalogue.spec.ts,"ID/컴포넌트 중복 0, evidence/anti-pattern 비어있음 0",QA/FE,Architect,3,AEG-V14-013..022,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-040,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,DOC,REQ-UI-DOC-001,Cross,Cross,Cross,Cross,Cross,UI 사용·금지 패턴 현장 가이드,02_FRONTEND_ADAPTER_STANDARD.md,신규 Feature PR 체크리스트와 예제 4종,FE Lead/UX,Architect/QA,4,AEG-V14-029,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-041,S6,W13-14,VS-20,PromoteModelVersion,ModelOperations,DOMAIN,REQ-MODEL-CYCLE-001,Cross,Cross,J31-J39,Cross,T-MODEL-CYCLE-001,ModelFeedbackCycle 상태기계,ModelFeedbackCycle.cs,"금지 전이 예외, revision/transition 이력",BE/Quant,Risk/QA,7,AEG-X-001,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-042,S6,W13-14,VS-20,PromoteModelVersion,ModelOperations,DOMAIN,REQ-MODEL-CYCLE-002,Cross,Cross,J31-J39,Cross,Cross,Feedback plan 9단계 계약,ModelFeedbackPlan.cs,"ACTIVATE=MANUAL_ONLY, 자동승격/주문 금지",Quant/Risk,BE/Compliance,5,AEG-V14-041,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-043,S6,W13-14,VS-20,PromoteModelVersion,ModelOperations,DOMAIN,REQ-MODEL-HYP-001,Cross,Cross,J35/J36,Cross,Cross,개선 가설·반증 계약,ModelImprovementHypothesis.cs,support/counter/falsification/unknown/decision required 검증,Quant/BE,IndependentValidation/QA,6,AEG-V14-042,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-044,S6,W13-14,Cross,Cross-cutting,ModelOperations,DB,REQ-MODEL-CYCLE-003,Cross,MIG-0019,J39,Cross,Cross,Feedback cycle 물리모델,MIG-0019 model_feedback_cycle,상태/revision/closed 불변조건,DBA/BE,Quant/QA,6,AEG-V14-041,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-045,S6,W13-14,Cross,Cross-cutting,ModelOperations,DB,REQ-MODEL-CYCLE-004,Cross,MIG-0019,J39,Cross,Cross,Feedback transition append-only 원장,model_feedback_transition + trigger,"update/delete 차단, sequence/content hash unique",DBA/Compliance,BE/QA,5,AEG-V14-044,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-046,S6,W13-14,Cross,Cross-cutting,ModelOperations,DB,REQ-MODEL-HYP-002,Cross,MIG-0019,J35,Cross,Cross,가설 supporting/counter evidence 정규화,model_hypothesis_evidence,side/classification/reference/hash 보존,DBA/Quant,Risk/QA,5,AEG-V14-043,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-047,S7,W15-16,Cross,Cross-cutting,ModelOperations,GOV,REQ-MODEL-ACT-001,Cross,MIG-0019,MANUAL_ONLY,Cross,Cross,Human-only activation decision,model_activation_decision,"actor_type HUMAN_CHANGE_APPROVAL, maker!=checker",Risk/Compliance,DBA/BE,6,AEG-V14-045,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-048,S7,W15-16,Cross,Cross-cutting,ModelOperations,API,REQ-MODEL-CYCLE-005,MOD-LOOP-01,Cross,J31-J39,Cross,Cross,Feedback loop 조회 Endpoint,GET /model-operations/feedback-loop,"권한 5역할, 자동화 경계 응답",BE,Security/QA,4,AEG-V14-042,G4,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-049,S7,W15-16,Cross,Cross-cutting,ModelOperations,JOB,REQ-MODEL-CYCLE-006,Cross,MIG-0019,J39,Cross,Cross,J39 FeedbackCycleIntegrityAudit 등록,registry+schedule contract,"disabled by default, q-control, G4",BE/SRE,Compliance/QA,4,AEG-V14-044,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-050,S7,W15-16,Cross,Cross-cutting,ModelOperations,JOB,REQ-MODEL-CYCLE-007,Cross,Cross,J39,Cross,Cross,Stuck cycle aging 정책,aging policy contract,"stage별 SLA 초과는 alert/HOLD, 자동 전이 0",Risk/SRE,Quant/QA,5,AEG-V14-049,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-051,S7,W15-16,Cross,Cross-cutting,ModelOperations,TEST,REQ-MODEL-CYCLE-008,Cross,Cross,Cross,Cross,T-MODEL-CYCLE-001,Feedback cycle 상태전이 unit test,ModelFeedbackCycleTests,정상경로/skip validation/manual activation boundary PASS,QA/BE,Quant/Risk,5,AEG-V14-041..043,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-052,S8,W17-18,Cross,Cross-cutting,ModelOperations,TEST,REQ-MODEL-HYP-003,Cross,Cross,Cross,Cross,T-MODEL-HYP-001,가설 분류·만료 unit test,ModelImprovementHypothesisTests,UNKNOWN/DECISION_REQUIRED/반대증거 누락 차단,QA/Quant,BE,4,AEG-V14-043,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-053,S8,W17-18,Cross,Cross-cutting,ModelOperations,REPO,REQ-MODEL-CYCLE-009,Cross,MIG-0019,J39,Cross,Cross,Feedback cycle repository/optimistic update,Dapper repository,"expected revision 불일치 409, transition same transaction",BE/DBA,QA,8,AEG-V14-044..045,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-054,S8,W17-18,Cross,Cross-cutting,ModelOperations,OUTBOX,REQ-MODEL-CYCLE-010,Cross,Cross,J39,Cross,Cross,Cycle transition Outbox 연결,ModelFeedbackTransitioned event,"aggregate update+transition+outbox 원자성, 중복 0",BE/SRE,QA/DBA,7,AEG-V14-053,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-055,S8,W17-18,Cross,Cross-cutting,ModelOperations,METRIC,REQ-MODEL-METRIC-001,Cross,Cross,J10/J11/J33/J34,Cross,Cross,Metric definition version Gate,metric definition registry validation,정의/분모/창/cohort 버전 없으면 평가 HOLD,Quant/Data,Risk/QA,6,AEG-V14-042,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-056,S8,W17-18,Cross,Cross-cutting,ModelOperations,OOS,REQ-MODEL-OOS-001,Cross,Cross,J18/J19/J20,Cross,Cross,동일 dataset/cost/cohort 비교 강제,comparison context validator,champion/challenger 비교 context mismatch 0,Quant/BE,IndependentValidation/QA,7,AEG-V14-055,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-057,S9,W19-20,Cross,Cross-cutting,ModelOperations,GOV,REQ-MODEL-GATE-001,Cross,Cross,J22/J37,Cross,Cross,Promotion Gate evidence completeness,promotion gate pack validator,252일/2국면/false-exit/reentry/PBO/DSR/double-cost/ops 증거,Risk/Quant,Compliance/QA,8,AEG-V14-055..056,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-058,S9,W19-20,Cross,Cross-cutting,ModelOperations,RUNBOOK,REQ-MODEL-ROLLBACK-001,Cross,Cross,J23,Cross,Cross,모델 rollback drill 증거 표준,runbook+drill evidence,"분기 drill, RTO, current/fallback hash, 주문 영향 0",SRE/Risk,QA/BE,6,AEG-V14-047,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-059,S9,W19-20,Cross,Cross-cutting,ModelOperations,UI,REQ-MODEL-UI-001,Cross,Cross,J31-J39,T10,Cross,모델 피드백 거버넌스 화면,T10 VersionGovernancePage feature,cycle/stage/evidence/hypothesis/validation/approval/rollback 표시,FE/Risk,BE/QA,8,AEG-V14-048,G4,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-060,S9,W19-20,Cross,Cross-cutting,ModelOperations,OBS,REQ-MODEL-OBS-001,Cross,Cross,J39,Cross,Cross,피드백 루프 metric/alert,cycle_age/hold/evidence_gap/illegal_transition,"Owner/Secondary, alert severity, runbook 링크",SRE/Quant,Compliance/QA,6,AEG-V14-049..050,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-061,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,API,REQ-API-PROBLEM-001,Cross,Cross,Cross,Cross,Cross,ProblemDetails 오류코드 registry,contracts/api/problem-codes.v1.json,401/403/409/412/422/429/503 의미와 retryable 고정,BE Architect,FE/Security/QA,5,AEG-X-003,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-062,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,API,REQ-API-CONC-001,Cross,Cross,Cross,Cross,Cross,If-Match/ETag concurrency building block,VersionToken contract,mutable aggregate silent overwrite 0,BE,FE/QA,6,AEG-V14-061,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-063,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,CMD,REQ-CMD-IDEMP-001,Cross,Cross,Cross,Cross,Cross,Idempotency receipt 표준화,command receipt table/handler,"같은 key 같은 result hash, 다른 payload 409",BE/DBA,QA/SRE,8,AEG-X-006,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-064,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,DATA,REQ-DATA-PIT-001,Cross,Cross,Cross,Cross,Cross,PIT context reader 공통 계약,IApprovedPitContextReader,published_at/tradable_session/version set 누락 시 HOLD,Data/BE,Quant/QA,7,AEG-X-009,G1,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-065,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,READMODEL,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,Projection metadata 표준,ProjectionVersion/Watermark/Stale/Rebuild,모든 Read Model Owner/version/watermark 보유,BE/Data,SRE/QA,7,AEG-V14-038,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-066,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,OUTBOX,REQ-OUTBOX-001,Cross,Cross,Cross,Cross,Cross,Outbox/Inbox chaos matrix,crash-before/after publish/replay tests,"side effect 누락/중복 0, dead-letter/runbook",BE/SRE,QA/DBA,10,AEG-X-006,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-067,S11,W23-24,Cross,Cross-cutting,DataPlatform,DQ,REQ-DQ-001,Cross,Cross,Cross,Cross,Cross,Golden corporate action/상폐/총수익 dataset,golden data pack,분할/배당/합병/상폐/통화/거래일 케이스 재현,Data/Quant,DBA/QA,10,AEG-X-009,G1,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-068,S11,W23-24,Cross,Cross-cutting,DataPlatform,SOURCE,REQ-SOURCE-001,Cross,Cross,J25,Cross,Cross,Source contract drift fail-closed,J25 evidence and hold,license/schema/SLA/timezone/unit 변경 시 추천 HOLD,Data Governance,Adapter/QA,7,AEG-X-009,G1,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-069,S11,W23-24,Cross,Cross-cutting,BackendPlatform,CONTRACT,REQ-OPENAPI-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact→FE schema Gate,generated client/schema diff,DTO drift와 수동 중복 타입 0,BE/FE,QA,8,AEG-V14-061,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-070,S11,W23-24,Cross,Cross-cutting,BackendPlatform,ARCH,REQ-VS-TEMPLATE-001,Cross,Cross,Cross,Cross,Cross,Command/Query Vertical Slice 템플릿 분리,templates/dotnet v14,정책/I-O/transaction/query read model 책임 분리,Architect/BE,QA,6,AEG-X-003,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-071,S12,W25-26,Cross,Cross-cutting,Quality,CI,REQ-CI-V14-001,Cross,Cross,Cross,Cross,Cross,v14 정적 validator CI 적용,tools/validate_v14.py,JSON/CSV/adapter/screen/model/migration/attachment PASS,QA/DevOps,Architect,6,AEG-V14-007,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-072,S12,W25-26,Cross,Cross-cutting,Quality,FE-CI,REQ-CI-FE-001,Cross,Cross,Cross,Cross,Cross,pnpm lock 생성·검토·frozen CI,pnpm-lock.yaml,승인 네트워크에서 typecheck/test/build 재현,FE/DevOps,Security/QA,5,AEG-V14-071,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-073,S12,W25-26,Cross,Cross-cutting,Quality,BE-CI,REQ-CI-BE-001,Cross,Cross,Cross,Cross,Cross,.NET 10 restore/build/test 실증,CI TRX/artifacts,warning policy 포함 Release build/test PASS,DevOps/BE,QA,5,AEG-V14-071,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-074,S12,W25-26,Cross,Cross-cutting,Quality,DB-CI,REQ-CI-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/rerun/failure rehearsal,migration evidence,0019 포함 4시나리오/checksum mutation 차단,DBA/DevOps,BE/QA,7,AEG-V14-073,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-075,S13,W27-28,Cross,Cross-cutting,Quality,E2E,REQ-E2E-UI-001,Cross,Cross,Cross,Cross,Cross,10개 화면 타입 Playwright smoke,screen contract E2E,prime provider에서 route/state/keyboard evidence,QA/FE,UX,10,AEG-V14-033,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-076,S13,W27-28,Cross,Cross-cutting,Security,SUPPLY,REQ-SBOM-001,Cross,Cross,Cross,Cross,Cross,NuGet/npm SBOM·license/vulnerability Gate,SBOM artifacts,허용목록/critical 취약점/AG Grid license 검증,Security/DevOps,Architect/QA,7,AEG-V14-072..073,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-077,S13,W27-28,Cross,Cross-cutting,Operations,SLO,REQ-SLO-001,Cross,Cross,Cross,Cross,Cross,UI/API/Batch SLO·RPO·RTO 승인,SLO ADR + load/DR evidence,volume 가정과 alert/runbook/owner 승인,SRE/PM,DBA/QA,8,"AEG-V14-035,AEG-V14-060",G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-078,S14,W29-30,Cross,Cross-cutting,Quality,RELEASE,REQ-REL-EVID-001,Cross,Cross,Cross,Cross,Cross,v14 Release Evidence 조립,release evidence bundle,source/build/test/migration/security/rollback hash 연결,QA/Release,Compliance/SRE,6,AEG-V14-071..077,G6,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-079,S14,W29-30,Cross,Cross-cutting,Governance,PACKAGE,REQ-PKG-001,Cross,Cross,Cross,Cross,Cross,재귀 ZIP 방지 패키징,package builder/manifest,"output zip·historical generated zip 자동 제외, source archive는 Full만",DevOps/PM,QA,5,AEG-X-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-080,S15,W31-32,Cross,Cross-cutting,Governance,SIGNOFF,REQ-GO-001,Cross,Cross,Cross,Cross,Cross,운영·준법·투자위 통합 Go/No-Go,signed gate matrix,자동주문 OFF·research status·미검증 항목 명시,Steering Committee,All Leads,8,AEG-V14-078..079,G6,SOURCE+V14_DELTA,P0,PLANNED diff --git a/docs/v14_0/08_PACKAGE_AND_ATTACHMENT_POLICY.md b/docs/v14_0/08_PACKAGE_AND_ATTACHMENT_POLICY.md new file mode 100644 index 00000000..48b4ead0 --- /dev/null +++ b/docs/v14_0/08_PACKAGE_AND_ATTACHMENT_POLICY.md @@ -0,0 +1,8 @@ +# ZIP·첨부 정책 + +과거 생성 ZIP을 새 ZIP에 반복 포함하면 크기가 기하급수적으로 증가한다. v14는 다음을 분리한다. + +- Core_NoLegacy: 개선된 소스·문서·계약·테스트. 과거 원본 ZIP 제외. +- Full_With_Attachments: Core 내용 + 현재 세션의 원본 DOCX 2개 + v13 원본 ZIP 1개. + +생성되는 출력 ZIP 자체와 이전 출력물은 입력 tree에서 자동 제외한다. Full은 사용자가 요구한 원본 첨부 보존을 위한 배포본이며, 일상 개발·CI에는 Core를 사용한다. diff --git a/docs/v14_0/DECISION_LOG.csv b/docs/v14_0/DECISION_LOG.csv new file mode 100644 index 00000000..971d3160 --- /dev/null +++ b/docs/v14_0/DECISION_LOG.csv @@ -0,0 +1,63 @@ +Decision_ID,Status,Decision_or_Question,Basis,Owner,Gate,Approved_or_Due +DEC-001,APPROVED,투자자문형→Shadow→Pilot; 자동주문 OFF,v10.0·v12.2,운영사/준법,ALL,2026-08-01 +DEC-002,APPROVED,알고리즘 상태 RESEARCH_CANDIDATE_NOT_PRODUCTION,v10.0·v12.2,투자위/리스크,G4,2026-08-01 +DEC-003,APPROVED,Modular Monolith+Vertical Slice; 조기 microservice 금지,v10.0,Architect,G0,2026-08-01 +DEC-004,APPROVED,PIT/revision/hash/lineage와 immutable Evidence 우선,v10.0·v12.2,Data/Quant,G1,2026-08-01 +DEC-005,APPROVED,매도 우선순위: impairment→survival→floor→concentration→opportunity→reentry,v12.2,투자위/Quant,G2,2026-08-01 +DEC-006,APPROVED,SellRatioOfLot와 portfolio weight/core floor 단위 분리,v12.0 Delta,Quant/Architect,G2-A,2026-08-02 +DEC-007,DECISION_REQUIRED,생산 OIDC/JWT 공급자와 claims mapping,자료 미지원,Security/PM,G5,미정 +DEC-008,DECISION_REQUIRED,PIT 총수익·상폐·컨센서스 공급원/라이선스,자료 미지원,Data Governance/Legal,G1,미정 +DEC-009,DECISION_REQUIRED,계좌·시장·venue별 Fee/Tax/FX schedule,자료 미지원,Ops/Tax/Quant,G1,미정 +DEC-010,DECISION_REQUIRED,SLO/RPO/RTO와 운영 용량 기준,자료 미지원,SRE/PM,G5,미정 +DEC-011,DECISION_REQUIRED,고객/계좌/상품 규모와 성능 테스트 볼륨,자료 미지원,PM/SRE,G6-A,미정 +DEC-012,DECISION_REQUIRED,한국 최신 PIT 데이터 확보 범위와 재검증 일정,자료 미지원,Quant/Data,G4,미정 +DEC-013,APPROVED,Lot-relative sell ratio uses CurrentLotPortfolioWeight; target security weight subtracts LotWeight×Ratio,v10/v12.1 unit-separation intent and data-consistency correction,Quant/Architect,G2-A,2026-08-02 +DEC-014,APPROVED,Ordered policy trace is immutable internal decision evidence; customer view receives curated explanation,Explainability and audit delta,Quant/Compliance/Architect,G2-A/G3,2026-08-02 +DEC-015,APPROVED,v12.2 preserves all six current-session attachments byte-for-byte and treats v12.1 as baseline,Non-regression source control,PM/Architect,G0,2026-08-02 +DEC-016,DECISION_REQUIRED,Select production OpenAPI client generation tool and ownership,Toolchain/network approval required,BE/FE/DevOps,G3,Before S11 +DEC-017,DECISION_REQUIRED,Approve .NET/PostgreSQL/pnpm runner image digests,Real build and migration evidence prerequisite,DevOps/Security,G0,Before coding start +DEC-063,DECISION_REQUIRED,자본바닥/생존 매도가 same-direction cooldown을 우회하는가,v10 우선순위는 명확하나 cooldown 예외는 첨부 근거에 명시되지 않음,투자위/리스크/Quant,G2,Before VS-10 production path +DEC-064,DECISION_REQUIRED,Hard impairment 80~100%를 어떤 증거등급/심각도로 매핑하는가,v10 범위는 80~100%; 현재 구현은 보수적으로 100%,투자위/준법/Quant,G2,Before policy parameter change +DEC-065,APPROVED,v12.2 이전 ambiguous weight context는 추정 사용하지 않고 semantics v2로 재구축한다,PIT·재현성·DECISION_REQUIRED fail-closed 원칙,Data Architect/Quant/Architect,G2-A,2026-08-02 +DEC-066,APPROVED,정책·이벤트·성과지표 계약은 버전과 hash를 가진 machine-readable artifact로 관리한다,"DOC-NR-05/06, v12.1 TD-021/032",Architect/Quant/Risk,G2/G3,2026-08-02 +DEC-022,APPROVED,스케줄러 자동화는 EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY로 제한,v10 자동주문 OFF·v12.1 연구후보 경계,Risk/Architect,ALL,2026-08-02 +DEC-023,APPROVED,모델·정책·임계값 자동 승격/변경/롤백 금지; human maker-checker 필수,모델 거버넌스와 독립검증 Gate,InvestmentCommittee/Compliance,G4/G5,2026-08-02 +DEC-024,APPROVED,15분 Dispatcher + DB schedule/lease + dynamic queue 패턴,시장별 job 난립과 DST hard-code 방지,Architect/SRE,G3,2026-08-02 +DEC-025,APPROVED,모델 평가 요청 시 승인 Dataset/Model/Config/Code/Contract VersionSet 동결,재현성·이력성·PIT 원칙,Data/Quant,G3,2026-08-02 +DEC-026,APPROVED,성과지표는 분자/분모/평가창/집계/비용을 버전 계약으로 관리,63일 연구 통계와 연간 목표 혼용 방지,Quant/Risk,G4,2026-08-02 +DEC-027,APPROVED,일/주/월/분기 평가와 revision-trigger replay를 분리,운영 부하와 증거 적시성 균형,Quant/SRE,G3/G4,2026-08-02 +DEC-028,APPROVED,J21은 개선 제안만 생성하며 코드·모델·설정 파일을 수정하지 않음,바이브코딩·홀루시네이션·과최적화 통제,Architect/Quant,G4,2026-08-02 +DEC-029,APPROVED,"J10/J11/J17 일, J18/J24 주, J19/J21/J22 월, J20/J23 분기 기본 cadence",v10 J10/J11 및 유지보수 운영리듬 계승,Risk/Ops,G3/G5,2026-08-02 +DEC-030,DECISION_REQUIRED,평가 evidence retention/partition/archive/legal hold 기간,첨부 근거에 구체 보존기간 없음,Compliance/DBA,G5/G6-A,G5 전 +DEC-031,DECISION_REQUIRED,Data/Feature/Prediction/Calibration drift metric·sample·threshold,첨부 근거는 drift 필요성만 제시하고 수치 계약 미제공,Quant/Risk,G4,J17 구현 전 +DEC-032,DECISION_REQUIRED,False-exit adverse-regret의 정확한 가격·benchmark·window 정의,첨부의 연 2% 목표와 연구 CSV를 직접 동일시할 수 없음,InvestmentCommittee/Quant,G4,J10 생산화 전 +DEC-033,APPROVED,"ModelOperations Dispatcher 기본 OFF, ShadowEvaluation과 별도 승인 필요",v10 안전경계+v12.5,Architect/Security,G0,2026-08-02 +DEC-034,APPROVED,"J10~J30은 평가·제안·훈련만 허용, 모델/주문 자동변경 금지",v12.4+v12.5,Risk/Compliance,ALL,2026-08-02 +DEC-035,APPROVED,v12.4 원본 ZIP을 immutable baseline으로 보존하고 current attachment를 직접 보존,비회귀,PM/QA,G0,2026-08-02 +DEC-036,DECISION_REQUIRED,생산 OIDC/JWT provider와 claims/key rotation,첨부 미결,Security/PM,G5,D+10 +DEC-037,DECISION_REQUIRED,총수익·상폐·컨센서스 source/license/SLA,첨부 미결,Data Governance/Legal,G1,D+10 +DEC-038,DECISION_REQUIRED,KRX/NYSE/NASDAQ market calendar source와 운영 owner,v12.4 TD-042,Data/Ops,G1,D+10 +DEC-039,DECISION_REQUIRED,Fee/Tax/FX account/venue/asset schedule,첨부 미결,Ops/Tax/Quant,G1,D+10 +DEC-040,DECISION_REQUIRED,false-exit/reentry metric denominator/window,metric governance,Risk/Quant,G4,D+30 +DEC-041,DECISION_REQUIRED,SLO/RPO/RTO와 volume assumptions,운영 미결,SRE/PM,G5,D+20 +DEC-042,APPROVED,288 baseline WBS 보존+48 execution assurance Delta,v12.5,PM/Architect,G0,2026-08-02 +DEC-043,APPROVED,직접 runtime evidence 없는 상태를 IMPLEMENTATION_TEMPLATE로 표시,신뢰성,QA/Compliance,ALL,2026-08-02 +DEC-044,DECISION_REQUIRED,투자일임형 검토 개시 시점과 독립승인 체계,252일 Shadow 이후,운영사/법무/준법,G6,Shadow+252 +DEC-045,APPROVED,Feature는 UI vendor를 직접 import하지 않고 adapter port만 사용,v10 Ch42 + v13 design,Architect/FE,G0,2026-08-02 +DEC-046,APPROVED,T01~T10을 표준 CRUD/업무화면 타입으로 사용,v10 Ch41 + v13 delta,UX/FE/QA,MVP-A,2026-08-02 +DEC-047,APPROVED,J31~J38은 evidence/proposal only이며 기본 OFF,v10/v12.5 automation boundary,Risk/Ops,ALL,2026-08-02 +DEC-048,APPROVED,모델 개선은 가설→Challenger 계획→독립검증→maker-checker 순서,model governance,Investment Committee/Risk,G4,2026-08-02 +DEC-049,DECISION_REQUIRED,승인된 PrimeVue theme와 디자인 토큰 시각 기준,runtime visual evidence missing,UX/Brand/FE,G0,D6 +DEC-050,DECISION_REQUIRED,OpenAPI→TypeScript/Zod 생성 도구와 버전 정책,tool not selected,BE/FE Architect,G3,S2 +DEC-051,DECISION_REQUIRED,Visual regression 승인 브라우저·viewport·허용차,runtime environment missing,QA/UX,MVP-B,S6 +DEC-052,DECISION_REQUIRED,모델 개선가설 보존기간·법무/준법 열람 범위,retention policy missing,Compliance/Risk,G4,S10 +DEC-053,APPROVED,UI Adapter contractVersion 2.0과 10 capability를 표준으로 사용,v14 Delta,FE Architect,G0,2026-08-02 +DEC-054,APPROVED,"PrimeVue+AG Grid는 생산 후보, Native는 교체 검증용 reference만",과유불급·교체가능성,FE/UX,G3,2026-08-02 +DEC-055,APPROVED,Feature의 PrimeVue/AG Grid 직접 import 금지,DIP·기술부채 통제,Architect,G0,2026-08-02 +DEC-056,APPROVED,T01~T10 화면 ID와 v2 컴포넌트를 안정 계약으로 관리,표준화·재현성,UX/FE,MVP-B,2026-08-02 +DEC-057,APPROVED,지속 모델 루프는 평가·제안까지만 자동화하고 activation은 수동 change approval,고객보호·모델리스크,Risk/Compliance,G4,2026-08-02 +DEC-058,APPROVED,J39 FeedbackCycleIntegrityAudit는 기본 disabled,fail-closed,SRE/Risk,G4,2026-08-02 +DEC-059,APPROVED,Feedback transition·activation decision은 append-only evidence로 보존,감사·이력성,DBA/Compliance,G4,2026-08-02 +DEC-060,APPROVED,과거 생성 ZIP은 Core에 포함하지 않고 Full 패키지의 원본 첨부에만 포함,재귀 ZIP 방지,PM/DevOps,G0,2026-08-02 +DEC-061,DECISION_REQUIRED,UI 접근성 자동화 도구와 visual regression 저장소 선택,v14 잔여 위험,UX/QA,G3,D10 +DEC-062,APPROVED,실행하지 않은 .NET/pnpm/PostgreSQL 검증은 PASS로 표기하지 않음,홀루시네이션 통제,QA/Architect,ALL,2026-08-02 diff --git a/docs/v14_0/DOCX_A11Y_V14_0.json b/docs/v14_0/DOCX_A11Y_V14_0.json new file mode 100644 index 00000000..2dd6554a --- /dev/null +++ b/docs/v14_0/DOCX_A11Y_V14_0.json @@ -0,0 +1,9 @@ +{ + "file": "/mnt/data/KArtSell_Aegis_v14_0_integrated_standard_ui_model_loop/docs/v14_0/K-ArtSell_Aegis_v14_0_표준UI_지속모델피드백_통합고도화_제안서.docx", + "counts": { + "high": 0, + "medium": 0, + "low": 0 + }, + "findings": [] +} diff --git a/docs/v14_0/FE_COMPONENT_CATALOGUE.csv b/docs/v14_0/FE_COMPONENT_CATALOGUE.csv new file mode 100644 index 00000000..c34db913 --- /dev/null +++ b/docs/v14_0/FE_COMPONENT_CATALOGUE.csv @@ -0,0 +1,32 @@ +ID,Component,Layer,Props_or_Type,Events_or_Slots,Accessibility,Required_Tests,Vendor_Boundary +C-001,AppShellLayout,Layout,product/environment/automation boundary,navigation/header/footer,skip-link/landmarks,route/auth E2E,Adapter-neutral +C-002,PageLayout,Layout,title/status/asOf/version,actions/summary/filters/aside/footer,h1/meta landmarks,responsive/state,Adapter-neutral +C-003,ReviewWorkbenchLayout,Layout,queue/detail/decision,slots,named regions/keyboard order,maker-checker E2E,Adapter-neutral +C-004,FormPageLayout,Layout,form/preview,submit,label/focus order,dirty/validation,Adapter-neutral +C-005,DashboardLayout,Layout,kpi/primary/secondary/alerts,slots,table alternative required,no-data/partial,Adapter-neutral +C-010,KsButton,Standard,label/severity/type/loading,click,button semantics,disabled/loading,Button port +C-011,KsTextField,Standard,label/error/help/model,update/blur,label/describedby/invalid,422/a11y,TextField port +C-012,KsSelect,Standard,label/options/error/model,update/blur,label/options/invalid,boundary/a11y,Select port +C-013,KsDataGrid,Standard,rows/columns/loading/selection,rowSelected,grid keyboard contract,large rows/filter,DataGrid port +C-014,KsDialog,Standard,visible/title/modal,update visible,focus trap/vendor contract,escape/modal,Dialog port +C-015,KsStatusTag,Standard,value/severity/iconLabel,-,text+icon not color only,severity matrix,StatusTag port +C-020,StandardStatePanel,Standard,11-state/title/message/trace,retry,aria-busy/status,state matrix,Adapter-neutral +T-01,CrudListPage,ScreenType,T01,slots,list semantics,filter URL/empty/auth,Layout composition +T-02,CrudDetailPage,ScreenType,T02,slots,version/as-of landmarks,published/expired/auth,Layout composition +T-03,CrudFormPage,ScreenType,T03,submit/slots,form error focus,dirty/conflict/idempotency,Layout composition +T-05,CrudReviewPage,ScreenType,T05,queue/detail/decision,keyboard review order,segregation/expiry/conflict,Layout composition +T-08,BatchOperationsPage,ScreenType,T08,timeline/records/reprocess/runbook,progress/status,retry/replay/duplicate,Layout composition +V14-C-001,KsDateField,Standard Component,modelValue/label/min/max/error,update/blur,label-describedby/date keyboard,adapter parity/form,Provider port +V14-C-002,KsNumberField,Standard Component,modelValue/min/max/fraction/error,update/blur,label/error/value semantics,decimal/boundary/form,Provider port +V14-C-003,NativeUiAdapter,Reference Provider,10 capabilities,provider install,HTML native keyboard baseline,contract/browser/a11y,Adapter implementation only +V14-C-004,UiProviderResolver,Bootstrap,VITE_UI_ADAPTER,install,fail-fast unsupported provider,configuration/contract,Composition root only +V14-C-005,SearchListCrudPage,Screen Type,T01,named slots,검색·목록 CRUD landmarks/state,T01 state/E2E,Adapter-neutral +V14-C-006,DetailReadPage,Screen Type,T02,named slots,상세·증거 조회 landmarks/state,T02 state/E2E,Adapter-neutral +V14-C-007,EditFormPage,Screen Type,T03,named slots,등록·편집 Form landmarks/state,T03 state/E2E,Adapter-neutral +V14-C-008,MasterDetailCrudPage,Screen Type,T04,named slots,Master-Detail landmarks/state,T04 state/E2E,Adapter-neutral +V14-C-009,ApprovalWorkbenchPage,Screen Type,T05,named slots,maker-checker 검토 landmarks/state,T05 state/E2E,Adapter-neutral +V14-C-010,StepWizardPage,Screen Type,T06,named slots,단계 Wizard landmarks/state,T06 state/E2E,Adapter-neutral +V14-C-011,ScorecardDashboardPage,Screen Type,T07,named slots,Dashboard/Scorecard landmarks/state,T07 state/E2E,Adapter-neutral +V14-C-012,BatchOperationsPageV2,Screen Type,T08,named slots,Batch/Data Ops landmarks/state,T08 state/E2E,Adapter-neutral +V14-C-013,ReconciliationExceptionPage,Screen Type,T09,named slots,대사·예외 landmarks/state,T09 state/E2E,Adapter-neutral +V14-C-014,VersionGovernancePage,Screen Type,T10,named slots,버전·거버넌스 landmarks/state,T10 state/E2E,Adapter-neutral diff --git a/docs/v14_0/JOB_CATALOGUE.csv b/docs/v14_0/JOB_CATALOGUE.csv new file mode 100644 index 00000000..4620db64 --- /dev/null +++ b/docs/v14_0/JOB_CATALOGUE.csv @@ -0,0 +1,26 @@ +Job_ID,Name,Cadence,Trigger_or_Precondition,Queue,Automation_Mode,Frozen_Context,Output,Primary_Owner,Secondary,Gate,Failure_Mode,Status +J10,OutcomeEvaluationRun,DAILY,market session closed and total-return data complete,q-evaluation,EVALUATION_ONLY,Dataset/Model/Config/Code/Contract,1/5/20/63/126/252 OutcomeObservation,Quant/Ops,Data/QA,G3,BUSINESS_HOLD on missing PIT/TR,TEMPLATE +J11,DailyScorecardBuild,DAILY,J10 due windows complete,q-evaluation,EVALUATION_ONLY,Metric definition/cohort versions,daily scorecard and alerts,Quant/Ops,Risk/SRE,G3,HOLD on sample/lag/definition mismatch,TEMPLATE +J17,DriftDetectionRun,DAILY,approved baseline and minimum sample available,q-evaluation,EVALUATION_ONLY,baseline manifest/version,data/feature/prediction/calibration drift,Quant/Risk,Data/SRE,G4,HOLD only; no automatic model change,TEMPLATE +J18,ChampionChallengerEvaluation,WEEKLY,same frozen dataset/cost/cohort available,q-evaluation,EVALUATION_ONLY,paired model VersionSets,paired comparison with confidence intervals,Quant/Risk,IndependentValidation/QA,G4,QUARANTINE on cohort mismatch,TEMPLATE +J19,FrozenOosBacktest,MONTHLY,dataset rights/hash/seed/environment manifest approved,q-research,EVALUATION_ONLY,frozen research manifest,walk-forward OOS artifacts,Quant/Data,QA/Risk,G4,FAIL artifact retained,TEMPLATE +J20,RobustnessPboDsrRun,QUARTERLY,complete experiment registry and OOS outputs,q-research,EVALUATION_ONLY,experiment registry/version,PBO/DSR/stability/cost2x report,Quant/Risk,IndependentValidation,G4,HOLD on incomplete attempt ledger,TEMPLATE +J21,ModelImprovementProposalBuild,MONTHLY,scorecard/drift/attribution/debt evidence complete,q-research,PROPOSAL_ONLY,all cited evidence hashes,review-required improvement proposals,Quant Lead,Risk/Architect,G4,no code/config/model mutation,TEMPLATE +J22,PromotionEvidenceReviewBuild,MONTHLY,candidate requests review and all gates calculated,q-control,PROPOSAL_ONLY,promotion-gate v1 evidence bundle,maker-checker review packet,Risk/InvestmentCommittee,Compliance/QA,G4,PENDING/HOLD; no activation,TEMPLATE +J23,ModelRollbackDrill,QUARTERLY,approved champion/fallback manifests and runbook,q-control,DRILL_ONLY,champion/fallback VersionSets,RTO/RPO and restore evidence,SRE/Risk,Module Owner/QA,G5,no real order submission,TEMPLATE +J24,DataRevisionRevalidation,WEEKLY+EVENT,approved revision lineage and impact index,q-backfill,EVALUATION_ONLY,before/after dataset versions,replay impact and correction proposal,Data/Quant,DBA/QA,G3,no overwrite; correction evidence only,TEMPLATE +J25,SourceContractDriftCheck,DAILY,approved source schema/license/SLA snapshot,q-evaluation,EVALUATION_ONLY,Source contract hash/version,schema/license/SLA drift evidence,Data Governance,Adapter Owner/QA,G1,BUSINESS_HOLD on unapproved change,TEMPLATE_DISABLED +J26,MarketCalendarCompletenessCheck,DAILY,approved market calendar and EOD completeness,q-market-data,EVALUATION_ONLY,Calendar/source/version,tradable-session readiness,Data/Ops,Quant/QA,G1,HOLD on holiday/DST/source mismatch,TEMPLATE_DISABLED +J27,EvidenceChainAudit,DAILY,decision/outcome/audit hash chain available,q-control,EVALUATION_ONLY,Evidence VersionSet,missing-link/mutation evidence,Compliance/QA,Data/BE,G3,QUARANTINE on hash mismatch,TEMPLATE_DISABLED +J28,ProjectionFreshnessCheck,DAILY,projection contract and watermark,q-evaluation,EVALUATION_ONLY,Projection version/watermark,staleness/rebuild diff,BE/Data,SRE/QA,G3,HOLD on stale projection,TEMPLATE_DISABLED +J29,CapacitySlaTrend,WEEKLY,approved SLO and volume assumptions,q-control,EVALUATION_ONLY,SLO/capacity version,capacity trend decision packet,SRE/PM,DBA/Module Owner,G5,WARN/HOLD on saturation,TEMPLATE_DISABLED +J30,ReleaseEvidenceAssemble,EVENT_DRIVEN,release candidate artifacts complete,q-control,PROPOSAL_ONLY,Source/build/test/migration/security/rollback hash,review-required release bundle,QA/Release Manager,Compliance/SRE,G6,HOLD on any missing artifact,TEMPLATE_DISABLED +J31,PredictionFreezeRun,DAILY,approved market cutoff before outcomes,q-evaluation,EVALUATION_ONLY,Dataset/Model/Config/Code/Contract,immutable prediction freeze,Quant/Data,QA/Risk,G3,HOLD on PIT/model context,TEMPLATE_DISABLED +J32,OutcomeMaturitySweep,DAILY,market session close and total-return/calendar complete,q-evaluation,EVALUATION_ONLY,Calendar/Dataset/Metric contract,matured 1/5/20/63/126/252 requests,Quant/Ops,Data/QA,G3,HOLD on TR/calendar gap,TEMPLATE_DISABLED +J33,SellReentryAttributionReview,WEEKLY,matured sell/reentry windows,q-evaluation,EVALUATION_ONLY,Metric/cohort/benchmark/cost versions,false-exit/gain/capture/delay evidence,Quant/Risk,Advisor/QA,G4,HOLD on metric definition mismatch,TEMPLATE_DISABLED +J34,CalibrationRegimeReview,WEEKLY,versioned prediction/cohort/regime evidence,q-evaluation,EVALUATION_ONLY,Prediction/Cohort/Regime versions,calibration/coverage/drift/regime report,Quant/Risk,Data/IV,G4,HOLD on insufficient sample,TEMPLATE_DISABLED +J35,ImprovementHypothesisBuild,MONTHLY,scorecard/attribution/drift/debt current,q-research,PROPOSAL_ONLY,Evidence and debt versions,review-required falsifiable hypothesis,Quant Lead,Risk/Architect,G4,NO OUTPUT on incomplete evidence,TEMPLATE_DISABLED +J36,ChallengerExperimentPlan,MONTHLY,approved improvement hypothesis,q-research,PROPOSAL_ONLY,Hypothesis/Experiment registry,review-required challenger plan,Quant Lead,IV/QA,G4,REJECT on unapproved change,TEMPLATE_DISABLED +J37,IndependentValidationPack,QUARTERLY,OOS/PBO/DSR/cost/repro evidence complete,q-control,PROPOSAL_ONLY,All promotion evidence versions,independent validation packet,IndependentValidation,Risk/Compliance,G4,NO-GO on missing evidence,TEMPLATE_DISABLED +J38,ModelPolicyDebtReview,MONTHLY,debt/incident/model register current,q-control,PROPOSAL_ONLY,Debt/Incident/Model versions,prioritized debt decision packet,Risk/Architect,Quant/PM,G5,HOLD on stale register,TEMPLATE_DISABLED +J39,FeedbackCycleIntegrityAudit,DAILY,approved feedback-cycle/aging contracts,q-control,EVALUATION_ONLY,Cycle/transition/evidence hashes,stuck/illegal/evidence-gap report,Compliance/QA,Quant/SRE,G4,HOLD and alert only; no automatic transition,TEMPLATE_DISABLED diff --git a/docs/v14_0/K-ArtSell_Aegis_v14_0_표준UI_지속모델피드백_통합고도화_제안서.docx b/docs/v14_0/K-ArtSell_Aegis_v14_0_표준UI_지속모델피드백_통합고도화_제안서.docx new file mode 100644 index 00000000..e6e2c9ad Binary files /dev/null and b/docs/v14_0/K-ArtSell_Aegis_v14_0_표준UI_지속모델피드백_통합고도화_제안서.docx differ diff --git a/docs/v14_0/PACKAGE_CONTENTS.csv b/docs/v14_0/PACKAGE_CONTENTS.csv new file mode 100644 index 00000000..74ca78e9 --- /dev/null +++ b/docs/v14_0/PACKAGE_CONTENTS.csv @@ -0,0 +1,11 @@ +Path,Purpose +docs/v14_0/K-ArtSell_Aegis_v14_0_표준UI_지속모델피드백_통합고도화_제안서.docx,통합 제안서 +docs/v14_0/08_DETAILED_WBS_MASTER.csv,상세 WBS 480건 +docs/v14_0/TECH_DEBT_REGISTER.csv,기술부채 100건 +docs/v14_0/TRACEABILITY_MATRIX.csv,요구-코드-테스트 추적성 +contracts/ui/ui-adapter.v2.json,UI provider adapter 계약 +contracts/ui/screen-types.v2.json,T01~T10 화면 계약 +src/KArtSell.Modules.ModelOperations/FeedbackLoop/,지속 모델 피드백 상태기계 +db/migrations/0019_v14_governed_feedback_cycle.sql,피드백/활성화 증거 DDL +frontend/src/shared/ui/,표준 컴포넌트·레이아웃·화면 +attachments/current_session/,현재 세션 원본 첨부 diff --git a/docs/v14_0/SOURCE_COVERAGE_MATRIX.csv b/docs/v14_0/SOURCE_COVERAGE_MATRIX.csv new file mode 100644 index 00000000..e7b77cbe --- /dev/null +++ b/docs/v14_0/SOURCE_COVERAGE_MATRIX.csv @@ -0,0 +1,4 @@ +File,Bytes,SHA256,Role,Treatment +K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,402134,d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6,Highest non-regression SI baseline,BYTE_FOR_BYTE_RETAINED_IN_FULL_PACKAGE +K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx,64063,eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3,Execution-ready v12.1 baseline,BYTE_FOR_BYTE_RETAINED_IN_FULL_PACKAGE +KArtSell_Aegis_v13_0_Core_NoLegacy(1).zip,3582224,52acceb46bf7c3b043771caa28f67af32a9012fe787f65f35dd8a61805090199,v13.0 implementation baseline archive,BYTE_FOR_BYTE_RETAINED_IN_FULL_PACKAGE diff --git a/docs/v14_0/TECH_DEBT_REGISTER.csv b/docs/v14_0/TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..ccfa6bc6 --- /dev/null +++ b/docs/v14_0/TECH_DEBT_REGISTER.csv @@ -0,0 +1,101 @@ +ID,Priority,Debt,Impact,Remediation,Gate,Owner,Status +TD-001,P0,도구체인 실빌드 미검증,C# 컴파일/패키지 호환 결함 가능,승인 .NET 10 runner에서 restore/build/test,G0,DevOps,OPEN +TD-002,P0,pnpm-lock.yaml 부재,FE 공급망·재현성 미확보,승인 네트워크에서 pnpm install 후 lock review/commit,G0,FE Lead,OPEN +TD-003,P0,PostgreSQL migration rehearsal 미실행,fresh/upgrade/re-run/복구 실패 가능,PostgreSQL 승인 버전 4시나리오 자동화,G0,DBA,OPEN +TD-004,P0,원시 연구 데이터 권리·checksum·환경 lock 미완전,제3자 clean-room 재현 불가,Source catalog/license/raw checksum/container digest 확보,G1,Data Governance,OPEN +TD-005,P0,KR 검증 종료 2021-04-16,최근 시장국면 검증 공백,2026 현재까지 PIT 총수익·상폐·기업행사 보충 후 frozen OOS,G4,Quant/Data,OPEN +TD-006,P0,실제 OIDC/JWT 공급자 미결정,외부 Pilot 접근통제 불가,"Auth ADR, key rotation, claims/RBAC E2E",G5,Security,OPEN +TD-007,P0,총수익·상폐수익·컨센서스 공급계약 미확정,생존편향·성과왜곡,공식/상용 source 계약·SLA·재배포 권리 승인,G1,Data Governance,OPEN +TD-008,P0,Fee/Tax/FX PIT 표 미확정,비용후 기대효용 왜곡,valid_from/to 계좌·venue·상품·side·band schedule,G1,DBA/Quant,OPEN +TD-009,P0,Outbox/Inbox crash/replay 실증 미완료,side effect 누락·중복,lease/dead-letter/replay chaos test,G3,BE/SRE,IN_PROGRESS +TD-010,P1,JobRun·Watermark 표준의 일부 구현만 존재,배치 재처리·감사 불완전,공통 JobRun scope/version/hash/heartbeat 정책 적용,G1,BE/SRE,IN_PROGRESS +TD-011,P1,Architecture test가 정적 문자열 규칙 중심,금지 의존 누락 가능,assembly/namespace/schema/API fitness function 확대,G0,Architect,IN_PROGRESS +TD-012,P1,OpenAPI→FE contract 자동생성 미도입,DTO drift·홀루시네이션 위험,OpenAPI artifact diff + generated client/schema gate,G3,BE/FE,OPEN +TD-013,P1,PII redaction·Telegram 보안 테스트 미완성,고객정보 노출 가능,classification/redaction test와 secret scan,G5,Security/SRE,OPEN +TD-014,P1,Model promotion workflow 미완성,무단 모델 활성화 위험,model card/maker-checker/effective_at/rollback 구현,G4,Risk/BE,OPEN +TD-015,P1,Read Model rebuild runner 미완성,stale projection 복구 불가,projection version/watermark/rebuild/diff 도구,G3,BE/Data,IN_PROGRESS +TD-016,P1,SLO/RPO/RTO 미승인,운영 Go 판단 불가,부하시험·백업복구·DR ADR 승인,G5,SRE/DBA,OPEN +TD-017,P2,공통 UI 컴포넌트 승격 기준 미운영,중복 또는 과도한 추상화,3회 반복+동일 의미/변경축 확인 후 승격,S10,FE Lead,OPEN +TD-018,P1,PBO/DSR 전체 탐색·시도 원장 미완성,과최적화 위험,전체 실험 registry+CSCV/PBO/DSR/block bootstrap,G4,Quant/Risk,OPEN +TD-019,P1,자산유형별 재진입 확인팩터 공급원 미완성,재진입 품질 저하,asset policy contract+PIT source+missing evidence downgrade,G2,Quant/Data,OPEN +TD-020,P0,자동주문/KIS 제출은 금지 상태,오활성화 사고 위험,Options ValidateOnStart+CI config scan+runtime kill switch 유지,ALL,Security/Ops,MITIGATED +TD-021,P1,정책 임계값이 문서·YAML·C#에 중복될 가능성,계약 drift,승인 config registry+schema+hash+generated constants,G2,Quant/BE,OPEN +TD-022,P1,DB immutable trigger와 correction event 운영절차 미실증,정정/감사 장애 가능,maker-checker correction replay와 audit trace E2E,G3,DBA/Compliance,OPEN +TD-023,P2,프런트 서버상태/Pinia 책임 경계의 팀 규율 미검증,중복 캐시·stale UI,lint/review checklist+query key registry,MVP-B,FE Lead,OPEN +TD-024,P1,Dependency vulnerability/license 자동검사 미구성,공급망 리스크,NuGet/npm SBOM·license allowlist·vulnerability gate,G5,Security/DevOps,OPEN +TD-025,P1,성능 규모 가정 미확정,배치 SLA/DB index 과·소설계,portfolio/security/client volume 결정·capacity test,G6-A,PM/SRE,OPEN +TD-026,P0,Security/Lot weight field ambiguity in v12.1,Partial-lot sell could miscalculate target security weight,MIG-0014 + domain/API/FE golden vectors,G2-A,Quant/BE,IN_PROGRESS +TD-027,P1,Only final sell policy reason was persisted,Blocked/not-applicable priority path was not auditable,Persist ordered policy_trace_json and internal trace contract,G2-A,BE/Quant,IN_PROGRESS +TD-028,P0,Current-session attachment set differs from prior package manifest,Source coverage claim can become stale,Rebuild source index from six current attachments and verify SHA,G0,PM/QA,MITIGATED +TD-029,P1,Request execution contract remains endpoint-local,Error/idempotency/correlation behavior can drift,Adopt reviewed request execution template after characterization tests,G0,BE Lead,OPEN +TD-030,P0,Outbox dispatcher runtime implementation is incomplete,Stored events may not publish or may duplicate,Lease/dead-letter/replay implementation and crash tests,G3,BE/SRE,OPEN +TD-031,P0,Inbox result-hash/replay proof is incomplete,Duplicate downstream side effects remain possible,Consumer-specific transaction and crash/replay tests,G3,BE/SRE,OPEN +TD-032,P1,Outcome metric definitions are not fully versioned,Historical false-exit/gain-capture can drift,outcome-metrics.v1 registry added; Quant/Risk approval and DB scorecard binding remain,G3,Quant/Risk,IN_PROGRESS +TD-033,P1,Module and feature scaffolding depended on manual copying,Pattern drift and vibe-coding hallucination,deterministic scaffold_slice.py + reviewed templates + tests,G0,Architect,MITIGATED +TD-034,P0,v12.2 legacy weight backfill could be treated as explicit lot semantics,Historic context may create incorrect partial-lot target weight,MIG-0015 semantics version; reader accepts version 2 only; rebuild required,G2-A,DBA/BE/Quant,MITIGATED +TD-035,P0,Opportunity edge with zero requested ratio was clamped to 10% sell,Missing quantity decision could become unintended sell,Fail closed with OPPORTUNITY_RATIO_NOT_POSITIVE and Golden test,G2-A,BE/Quant,IN_PROGRESS +TD-036,P1,CI referenced v12.1 validator and contained duplicate working-directory key,Latest controls could be skipped and YAML behavior ambiguous,"Use validate_v123, single working-directory, scaffold tests",G0,DevOps/QA,MITIGATED +TD-037,P1,Policy values duplicated between documents and C# magic numbers,Threshold and priority drift,SellPolicyContract + machine-readable registry + static cross-check,G2,Quant/BE,IN_PROGRESS +TD-038,P1,Previous package did not include v12.2 itself as a new source attachment,Cumulative source chain incomplete for next delta,Seven-file source coverage and SHA index,G0,PM/QA,MITIGATED +TD-039,P0,pnpm lockfile still cannot be generated in isolated environment,Frontend dependency resolution is not reproducible,Generate and review pnpm-lock.yaml on approved connected runner; frozen CI only,G0,FE Lead/DevOps,OPEN +TD-040,P0,v12.3 C# and PostgreSQL changes are statically validated only,"Compile, package compatibility and migration runtime defects may remain",Run .NET 10 build/test and PostgreSQL fresh/upgrade/re-run/failure rehearsal,G0,DevOps/DBA/QA,OPEN +TD-041,P0,v12.4 ModelOperations .NET 실빌드 미검증,scheduler/API/DI/SQL compile 또는 runtime 결함 가능,승인 .NET 10 runner에서 restore/build/test와 PostgreSQL integration 실행,G0/G3,DevOps/BE,OPEN +TD-042,P0,시장별 거래일·휴장·DST 기반 due 계산 미구현,평가 시점 지연 또는 잘못된 세션 평가,MarketCalendar 기반 next_due resolver와 KRX/NYSE/NASDAQ Golden calendar,G3,Data/BE,OPEN +TD-043,P0,false-exit 정확한 adverse-regret 정의 미승인,연 2% 목표의 재현성과 비교 가능성 훼손,분자/분모/가격/benchmark/window/결측 정의를 투자위 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-044,P0,승인 Dataset Manifest와 Model Registry 초기 데이터 부재,모든 scheduled request가 BusinessHold,source/license/hash/model card 승인 후 seed를 별도 승인 migration으로 추가,G3,Data Governance/Risk,OPEN +TD-045,P0,J10~J24 실제 계산 consumer는 작업요청 template 수준,스케줄은 요청을 만들지만 성과·drift·OOS artifact 미생성,VS-18/19/20별 evaluator와 Golden/integration 구현,G4,Quant/BE,OPEN +TD-046,P1,drift baseline·metric·threshold 미승인,과민 또는 지연 경보,feature/data/prediction/calibration drift별 sample minimum과 threshold 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-047,P1,Champion/Challenger cohort 할당·동일성 계약 미완료,비교 편향과 승자 선택 오류,동일 PIT dataset/cost/window/cohort matching 및 holdout 정책 승인,G4,Quant/IndependentValidation,OPEN +TD-048,P1,개선 제안 우선순위와 중복 병합 운영 미실증,제안 폭증·기술부채 누락·과유불급,impact/risk/evidence/cost rubric와 월간 triage WIP limit 운영,G4,Quant Lead/Architect,OPEN +TD-049,P0,모델 승격 maker-checker workflow와 실제 IdP claims 미연결,무단 또는 자기승인 가능,OIDC claims/RBAC/SoD E2E와 감사 원장 연결,G5,Security/Risk,OPEN +TD-050,P1,scheduler lease·enqueue crash chaos 미실증,중복/누락 request 또는 stale lease,다중 worker·DB restart·enqueue 전후 crash·clock skew chaos test,G5,SRE/BE,OPEN +TD-051,P1,모델 rollback drill 실증 없음,모델 이상 시 복구시간 불명,"분기 fallback manifest restore와 Capability hold, RTO/RPO 측정",G5,SRE/Risk,OPEN +TD-052,P1,평가 evidence 보존기간·partition·archive 정책 미결정,DB 팽창 또는 감사자료 조기 삭제,"규제/계약 기준 retention, monthly partition, legal hold, archive restore ADR",G5/G6-A,DBA/Compliance,DECISION_REQUIRED +TD-053,P0,ModelOperations dispatcher가 이전 버전에서 무조건 등록,미승인 평가 자동실행,v12.5 기본 OFF+Capability startup guard+등록 제거 test,G0,BE/Security,MITIGATED +TD-054,P0,기존 J10~J24 schedule enabled seed,Dispatcher 활성 시 재승인 없이 실행 가능,"0017에서 모두 disabled, 운영 변경승인으로 개별 enable",G3,Ops/Risk,MITIGATED +TD-055,P0,실제 evaluator handler 미구현,요청만 생성되고 평가 결과 없음,J10~J30 handler contract·integration·artifact 구현,G3,BE/Quant,OPEN +TD-056,P0,Hangfire enqueue와 schedule mark 사이 원자성 공백,중복 background job 또는 lost dispatch,dispatch-intent outbox 또는 reconciliation 설계와 chaos test,G3,BE/SRE,OPEN +TD-057,P0,승인 시장캘린더/DST 미구현,잘못된 session·lookahead·SLA,J26와 MarketCalendar contract/Golden,G1,Data/Quant,OPEN +TD-058,P1,Promotion thresholds C# hardcode,문서/JSON/C# drift,machine-readable registry+generated constants+drift test,G4,Quant/BE,OPEN +TD-059,P1,Metric Definition 승인 workflow 미완성,false-exit/reentry 수치 조작 가능,definition maker-checker/effective/version/hash,G4,Risk/BE,OPEN +TD-060,P1,Operation artifact retention/archive 미정,증거 유실 또는 DB 비대,artifact class별 retention/legal hold/archive policy,G5,Compliance/DBA,OPEN +TD-061,P1,Release Evidence 자동조립 미구현,수동 누락과 허위 Go,J30 bundle과 required artifact gate,G6,QA/Release,OPEN +TD-062,P1,Projection rebuild diff 미구현,stale/read model 오류 복구 불가,J28+rebuild runner+source watermark diff,G3,BE/Data,OPEN +TD-063,P0,총수익·상폐수익·기업행사 Golden 미완성,성과·Lot·원가 왜곡,공식 source와 golden reconciliation,G1,Data/DBA,OPEN +TD-064,P1,PIT 유효구간 충돌 제약 미완성,중복 current/effective record,bitemporal unique/exclusion constraints,G1,DBA/Data,OPEN +TD-065,P1,고객 UX 불확실성·반대증거 검증 미실행,오해·민원·부적합성,사용성/접근성/준법 테스트,G3,UX/Compliance,OPEN +TD-066,P0,OIDC/JWT·PII·Telegram 운영보안 미실증,무단접근·정보유출,Auth E2E+redaction+secret scan,G5,Security/SRE,OPEN +TD-067,P0,SLO/Volume/Queue isolation 미승인,배치 SLA와 DB 과소/과설계,capacity ADR+load/chaos test,G5,SRE/PM,OPEN +TD-068,P1,현재 패키지 직접 첨부와 이전 누적 첨부가 혼재,Source coverage 오해,direct/transitive coverage와 immutable baseline archive 구분,G0,PM/QA,MITIGATED +TD-069,P0,Feature의 UI Vendor 직접 import 가능,교체성·테스트·접근성 계약 붕괴,import boundary architecture rule,G0,FE Architect,IN_PROGRESS +TD-070,P0,표준 화면 상태 Matrix의 화면별 편차,경고·만료·충돌 오표현,StandardStatePanel+T01~T10 tests,MVP-B,UX/QA,IN_PROGRESS +TD-071,P1,PrimeVue/AG Grid 실제 build 미검증,API/type drift 가능,pnpm lock+typecheck+vitest+build,G0,FE Lead,OPEN +TD-072,P1,Visual regression baseline 부재,adapter 교체 시 의미 회귀,Playwright screenshots and approval,MVP-B,QA/UX,OPEN +TD-073,P1,OpenAPI→Zod 자동생성 미완료,DTO drift·홀루시네이션,versioned generated contract gate,G3,BE/FE,OPEN +TD-074,P0,Prediction freeze runtime 미구현,사후정보 혼입·평가 재현성 상실,J31+append-only freeze integration,G3,Quant/BE,OPEN +TD-075,P0,평가창 성숙 calendar 미실증,1/5/20/63/126/252 window 오류,J32 market-calendar Golden,G3,Data/QA,OPEN +TD-076,P1,개선가설 maker-checker UI/API 미구현,자의적 모델 변경 위험,J35 hypothesis workflow E2E,G4,Risk/BE/FE,OPEN +TD-077,P1,Challenger 실험 registry 미완료,선택적 보고·PBO 왜곡,experiment registry and all-attempt ledger,G4,Quant/Risk,OPEN +TD-078,P1,Scaffolder 생성물 실빌드 미검증,템플릿 부패 가능,generated sample in CI restore/build/test,G0,DevEx,OPEN +TD-079,P2,표준 컴포넌트 사용량/Owner registry 부재,죽은 abstraction 축적,component registry/deprecation review,G6-A,FE Architect,OPEN +TD-080,P1,전체 v13 ZIP 대용량,다운로드/무결성 실패 가능,single zip test+SHA+optional documented split procedure,G6,Release,OPEN +TD-081,P0,UI adapter v2 실 typecheck 미검증,Vue/PrimeVue prop/event 호환 결함 가능,pnpm frozen typecheck/test/build,G0,FE Lead,OPEN +TD-082,P1,Native adapter는 reference 수준,생산 접근성/성능/브라우저 호환 미보장,productionEligible=false 유지 및 교체 Gate 검증,G3,FE/UX,MITIGATED +TD-083,P1,Date/Number provider parity 미실증,빈값/시간대/소수 정밀도 drift,provider contract+form E2E,G3,FE/QA,OPEN +TD-084,P1,UI visual regression 부재,공급자 교체 시 레이아웃 회귀,상태별 screenshot baseline,G3,QA/UX,OPEN +TD-085,P1,10개 화면 상태 matrix E2E 미완성,오류·권한·만료 화면 누락,Playwright 상태 조합 smoke,G3,QA,OPEN +TD-086,P1,표준 화면 wrapper slot 계약 컴파일 미검증,Vue slot typing 오류 가능,pnpm typecheck 및 component tests,G0,FE,OPEN +TD-087,P1,UI scaffolder 생성 결과 실빌드 미검증,템플릿 코드 결함 가능,temp feature 생성 후 typecheck,G0,DevEx/FE,OPEN +TD-088,P0,Feedback cycle repository 미구현,DB 상태와 domain state 불일치,optimistic repository+transaction+outbox,G4,BE/DBA,OPEN +TD-089,P1,J39 audit handler 미구현,stuck/illegal cycle 탐지 불가,integrity query+artifact+alert,G4,BE/SRE,OPEN +TD-090,P0,Human activation decision application service 미구현,수동 절차가 DB 직접 작업으로 퇴행 가능,maker-checker command/API/runbook,G4,Risk/BE,OPEN +TD-091,P1,가설 evidence 분류 저장 흐름 미구현,UNKNOWN/DECISION_REQUIRED 우회 가능,validation+DB+review E2E,G4,Quant/BE,OPEN +TD-092,P0,0019 migration rehearsal 미실행,배포 실패/trigger/constraint 결함 가능,fresh/upgrade/rerun/failure DB test,G0,DBA,OPEN +TD-093,P0,pnpm-lock.yaml 부재 지속,FE 재현성과 공급망 Gate 차단,승인 네트워크에서 lock 생성·검토,G0,FE/DevOps,OPEN +TD-094,P1,OpenAPI→FE 생성 계약 미구현,DTO/Zod drift,artifact diff+generated schema,G3,BE/FE,OPEN +TD-095,P1,접근성 자동화 라이브러리 미결정,a11y 회귀 탐지 부족,axe 또는 승인 대안 ADR,G3,UX/QA,DECISION_REQUIRED +TD-096,P1,AG Grid 사용량/라이선스 검토 미완료,상용기능 오사용 또는 비용 위험,Community/Enterprise 기능 inventory,G5,Legal/FE,OPEN +TD-097,P1,화면/배치 용량 가정 미승인,과·소설계와 SLA 왜곡,고객/계좌/종목/행/동시성 기준 승인,G6-A,PM/SRE,OPEN +TD-098,P0,모델 metric definition 원장 미완전,평가 KPI 분모·창 drift,approved versioned metric definitions,G4,Quant/Risk,OPEN +TD-099,P0,시장 캘린더·시간대 공급계약 미확정,평가창/재진입/배치 오류,시장별 calendar source와 DST golden,G1,Data/Quant,OPEN +TD-100,P1,과거 ZIP 중첩에 의한 크기 증가 위험,배포·다운로드 비효율,Core/Full 분리 및 output exclusion manifest,G0,DevOps/PM,MITIGATED diff --git a/docs/v14_0/TRACEABILITY_MATRIX.csv b/docs/v14_0/TRACEABILITY_MATRIX.csv new file mode 100644 index 00000000..be480af7 --- /dev/null +++ b/docs/v14_0/TRACEABILITY_MATRIX.csv @@ -0,0 +1,82 @@ +Requirement_ID,Slice_ID,Policy_or_Data_ID,API_ID,DB_ID,Job_Event_ID,UI_ID,Test_ID,WBS_Range,Release_Gate,Evidence_Status +REQ-PLAT-001,VS-00,DATA/DOMAIN-CONTRACT,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,AEG-VS-00-01..AEG-VS-00-07,G0,SOURCE+DESIGN_PROPOSAL +REQ-IAM-001,VS-01,DATA/DOMAIN-CONTRACT,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,AEG-VS-01-01..AEG-VS-01-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-SEC-001,VS-02,DATA/DOMAIN-CONTRACT,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,AEG-VS-02-01..AEG-VS-02-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-DAT-001,VS-03,DATA/DOMAIN-CONTRACT,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,AEG-VS-03-01..AEG-VS-03-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-CA-001,VS-04,DATA/DOMAIN-CONTRACT,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,AEG-VS-04-01..AEG-VS-04-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-FND-001,VS-05,DATA/DOMAIN-CONTRACT,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,AEG-VS-05-01..AEG-VS-05-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-COST-001,VS-06,DATA/DOMAIN-CONTRACT,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,AEG-VS-06-01..AEG-VS-06-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-CLI-001,VS-07,DATA/DOMAIN-CONTRACT,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,AEG-VS-07-01..AEG-VS-07-07,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-LED-001,VS-08,DATA/DOMAIN-CONTRACT,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,AEG-VS-08-01..AEG-VS-08-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-EVD-001,VS-09,DATA/DOMAIN-CONTRACT,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,AEG-VS-09-01..AEG-VS-09-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-SELL-001,VS-10,"ALG-SELL-001~005,ALG-SELL-PORT-001",SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,AEG-VS-10-01..AEG-VS-10-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-RE-001,VS-11,ALG-REENTRY-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,AEG-VS-11-01..AEG-VS-11-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-BUY-001,VS-12,ALG-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,AEG-VS-12-01..AEG-VS-12-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RISK-001,VS-13,ALG-PORT-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,AEG-VS-13-01..AEG-VS-13-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-REC-001,VS-14,DATA/DOMAIN-CONTRACT,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,AEG-VS-14-01..AEG-VS-14-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-REV-001,VS-15,DATA/DOMAIN-CONTRACT,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,AEG-VS-15-01..AEG-VS-15-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-PUB-001,VS-16,DATA/DOMAIN-CONTRACT,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,AEG-VS-16-01..AEG-VS-16-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-CLD-001,VS-17,DATA/DOMAIN-CONTRACT,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,AEG-VS-17-01..AEG-VS-17-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-EVA-001,VS-18,DATA/DOMAIN-CONTRACT,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,AEG-VS-18-01..AEG-VS-18-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-BKT-001,VS-19,DATA/DOMAIN-CONTRACT,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,AEG-VS-19-01..AEG-VS-19-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-MOD-001,VS-20,DATA/DOMAIN-CONTRACT,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,AEG-VS-20-01..AEG-VS-20-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-REB-001,VS-21,DATA/DOMAIN-CONTRACT,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,AEG-VS-21-01..AEG-VS-21-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-RPL-001,VS-22,DATA/DOMAIN-CONTRACT,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,AEG-VS-22-01..AEG-VS-22-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RECON-001,VS-23,DATA/DOMAIN-CONTRACT,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,AEG-VS-23-01..AEG-VS-23-07,Pilot-A,SOURCE+DESIGN_PROPOSAL +REQ-RPT-001,VS-24,DATA/DOMAIN-CONTRACT,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,AEG-VS-24-01..AEG-VS-24-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-GOV-001,VS-25,DATA/DOMAIN-CONTRACT,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,AEG-VS-25-01..AEG-VS-25-07,G5,SOURCE+DESIGN_PROPOSAL +REQ-SIG-WEIGHT-022,VS-10,ALG-SELL-002~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,AEG22-VS10-001~004,G2-A,SOURCE+INFERENCE +REQ-SIG-TRACE-022,VS-10,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL +REQ-DAT-LIC-022,VS-03,DQ-01~08,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,AEG22-VS03-002,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-REL-022,Cross,DOC-NR-03/06,Cross,Cross,Cross,Cross,T-REL-022,AEG22-X-012,G6,DESIGN_PROPOSAL +REQ-CONTRACT-001,Cross/VS-10/VS-18,sell-policy.v1/outcome-metrics.v1,SIG-01/02,MIG-0015,EVT-SIG-001/J10,UI-SIG-TRACE/UI-EVAL-01,T-CONTRACT-001/T-EVAL-METRIC-001,"AEG-X-034,AEG-VS-10-08..12,AEG-VS-18-08",G2-A/G3,SOURCE+DESIGN_PROPOSAL +REQ-ARCH-SCAFFOLD,Cross,AGENTS/SLICE_SPEC,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,AEG-X-033,G0,DESIGN_PROPOSAL +REQ-SOURCE-123,Cross,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,"AEG-X-031,AEG-X-043",G0/G6,SOURCE +REQ-MO-SCHED-001,VS-18/20/25,model-operations.v1,MO-PLAN-01,MIG-0016,Dispatcher/J10~J24,UI-MO-01,"T-MO-004~007,T-MO-029","AEG-MO-001,004~007,029",G3/G5,TEMPLATE +REQ-MO-EVAL-001,VS-18,outcome-metrics.v2,EVAL-01/02/05,MIG-0016,J10/J11,UI-MO-02,"T-MO-EVAL-001/002,T-MO-ATTR-001","AEG-MO-002~003,010~011,016",G3/G4,TEMPLATE +REQ-MO-DRIFT-001,VS-20,drift-contract DEC_REQUIRED,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,AEG-MO-012,G4,DECISION_REQUIRED +REQ-MO-CC-001,VS-20,champion-challenger matched cohort,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,AEG-MO-013,G4,TEMPLATE +REQ-MO-OOS-001,VS-19,Frozen Manifest/OOS,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,AEG-MO-014,G4,TEMPLATE +REQ-MO-ROBUST-001,VS-19/20,PBO/DSR/Cost2x,BACKTEST-02,MIG-0016,J20,UI-MO-04/06,"T-MO-ROBUST-001,T-MO-MNT-002","AEG-MO-015,037",G4,TEMPLATE +REQ-MO-IMPROVE-001,VS-20,ImprovementProposal,GOV-MO-01/02,MIG-0016,J21,UI-MO-05,T-MO-IMP-001/002,"AEG-MO-017~018,034,038",G4/G5,TEMPLATE +REQ-MO-PROMOTE-001,VS-20/25,promotion-gate.v1,GOV-MO-03/04,MIG-0016,J22,UI-MO-06,T-MO-GATE-001/002,AEG-MO-019~020,G4/G5,TEMPLATE +REQ-MO-ROLLBACK-001,VS-25,rollback runbook,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,AEG-MO-024,G5,TEMPLATE +REQ-MO-REPLAY-001,VS-23,PIT revision/correction,REPLAY-01/02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001/002,AEG-MO-022~023,G3,TEMPLATE +REQ-MO-FE-001,VS-18/20/25,Zod runtime contract,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01~09,"T-MO-FE-001~003,T-MO-E2E-001","AEG-MO-008~009,021,031",G3/G5,TEMPLATE +REQ-MO-OPS-001,VS-25/Cross,observability/retry/security/capacity,MO-OPS-01~04,MIG-0016,Dispatcher/J10~J24,UI-MO-09,"T-MO-OPS-001/002,T-MO-SEC-001,T-MO-CAP-001,T-MO-CI-001","AEG-MO-025~028,032~035",G5/G6,TEMPLATE +REQ-EXA-001,Cross/VS-18/19/20/25,EXA-CONTRACT-01,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-001,AEG-V12-5-001..AEG-V12-5-004,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-002,Cross/VS-18/19/20/25,EXA-CONTRACT-02,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-002,AEG-V12-5-005..AEG-V12-5-008,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-003,Cross/VS-18/19/20/25,EXA-CONTRACT-03,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-003,AEG-V12-5-009..AEG-V12-5-012,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-004,Cross/VS-18/19/20/25,EXA-CONTRACT-04,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-004,AEG-V12-5-013..AEG-V12-5-016,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-005,Cross/VS-18/19/20/25,EXA-CONTRACT-05,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-005,AEG-V12-5-017..AEG-V12-5-020,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-006,Cross/VS-18/19/20/25,EXA-CONTRACT-06,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-006,AEG-V12-5-021..AEG-V12-5-024,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-007,Cross/VS-18/19/20/25,EXA-CONTRACT-07,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-007,AEG-V12-5-025..AEG-V12-5-028,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-008,Cross/VS-18/19/20/25,EXA-CONTRACT-08,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-008,AEG-V12-5-029..AEG-V12-5-032,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-009,Cross/VS-18/19/20/25,EXA-CONTRACT-09,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-009,AEG-V12-5-033..AEG-V12-5-036,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-010,Cross/VS-18/19/20/25,EXA-CONTRACT-10,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-010,AEG-V12-5-037..AEG-V12-5-040,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-011,Cross/VS-18/19/20/25,EXA-CONTRACT-11,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-011,AEG-V12-5-041..AEG-V12-5-044,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-012,Cross/VS-18/19/20/25,EXA-CONTRACT-12,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-012,AEG-V12-5-045..AEG-V12-5-048,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-FE-ADAPTER,Cross,UI-ADAPTER-v1,Cross,-,-,UI-FOUND-01..11,T-FE-ARCH/ADAPTER/SWAP,"V13-FE-001..010,V13-FE-037",G0/G4-A,SOURCE+DESIGN_PROPOSAL +REQ-FE-SCREEN-TYPES,Cross/VS-07..25,T01..T10,Feature contracts,Read Models,J01..J38,UI-T01..T10,T-FE-T01..T10,V13-FE-011..040,MVP-A..G6,SOURCE+DESIGN_PROPOSAL +REQ-MODEL-FEEDBACK,VS-18/19/20/25,PredictionFreeze/Maturity/Hypothesis,ModelOperations internal,MIG-0018,J31..J38,UI-J31..J38,T-J31..J38,V13-MODEL-001..016,G3..G6-A,SOURCE+DESIGN_PROPOSAL +REQ-SCAFFOLD-13,Cross,PWP/SLICE_SPEC,FastEndpoints template,DbUp placeholder,Outbox placeholder,Vue feature template,T-SCAFFOLD-01..03,V13-TOOL-001..003,G0,DESIGN_PROPOSAL +REQ-UI-ADAPTER-001,Cross,UI-ADAPTER-2.0,-,-,-,UI-CORE,T-UI-ADAPTER-001,AEG-V14-001..012,G0,V14_DELTA_STATIC_ONLY +REQ-UI-T01,Cross,SCREEN-T01,-,-,-,T01,T-UI-T01,AEG-V14-013,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T02,Cross,SCREEN-T02,-,-,-,T02,T-UI-T02,AEG-V14-014,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T03,Cross,SCREEN-T03,-,-,-,T03,T-UI-T03,AEG-V14-015,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T04,Cross,SCREEN-T04,-,-,-,T04,T-UI-T04,AEG-V14-016,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T05,VS-15,SCREEN-T05,REV-01,review_history,-,T05,T-UI-T05,AEG-V14-017,G3,V14_DELTA_STATIC_ONLY +REQ-UI-T06,Cross,SCREEN-T06,-,-,-,T06,T-UI-T06,AEG-V14-018,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T07,VS-18,SCREEN-T07,EVAL-01,evaluation.*,J10/J11,T07,T-UI-T07,AEG-V14-019,G4,V14_DELTA_STATIC_ONLY +REQ-UI-T08,Cross,SCREEN-T08,OPS-01,job_run,J01-J39,T08,T-UI-T08,AEG-V14-020,G3,V14_DELTA_STATIC_ONLY +REQ-UI-T09,VS-23,SCREEN-T09,REC-01,reconciliation.*,J12,T09,T-UI-T09,AEG-V14-021,G5,V14_DELTA_STATIC_ONLY +REQ-UI-T10,VS-20,SCREEN-T10,MOD-LOOP-01,governance.*,J31-J39,T10,T-UI-T10,"AEG-V14-022,059",G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-CYCLE-001,VS-20,MODEL-FEEDBACK-CYCLE,MOD-LOOP-01,MIG-0019,J31-J39,T10,T-MODEL-CYCLE-001,AEG-V14-041..054,G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-HYP-001,VS-20,MODEL-HYPOTHESIS,MOD-HYP-01,MIG-0019,J35/J36,T10,T-MODEL-HYP-001,"AEG-V14-043,046,052",G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-ACT-001,VS-20,HUMAN-ACTIVATION-ONLY,MOD-ACT-01,MIG-0019,MANUAL_ONLY,T10,T-MODEL-ACT-001,"AEG-V14-047,057",G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-CYCLE-006,VS-20,CYCLE-INTEGRITY,-,MIG-0019,J39,T10,T-J39-001,"AEG-V14-049..050,060",G4,V14_DELTA_STATIC_ONLY +REQ-API-CONC-001,Cross,OPTIMISTIC-CONCURRENCY,Cross,Cross,-,T03/T05/T09/T10,T-CONC-001,AEG-V14-062,G3,V14_DELTA_STATIC_ONLY +REQ-CMD-IDEMP-001,Cross,IDEMPOTENCY,Cross,Cross,Outbox,T03/T05/T08/T09,T-IDEMP-001,AEG-V14-063,G3,V14_DELTA_STATIC_ONLY +REQ-DATA-PIT-001,Cross,PIT-CONTEXT,Cross,Cross,J01-J39,T02/T07/T10,T-PIT-001,AEG-V14-064,G1,V14_DELTA_STATIC_ONLY +REQ-RM-001,Cross,READMODEL-VERSION,Cross,Cross,J28,T01/T04/T07/T08/T09,T-RM-001,AEG-V14-065,G3,V14_DELTA_STATIC_ONLY +REQ-PKG-001,Cross,PACKAGE-NON-RECURSION,-,-,-,-,T-PKG-001,AEG-V14-079,G0,V14_DELTA_STATIC_ONLY diff --git a/docs/v15_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md b/docs/v15_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md new file mode 100644 index 00000000..2a26dca2 --- /dev/null +++ b/docs/v15_0/00_EXECUTIVE_CRITICAL_PROPOSAL.md @@ -0,0 +1,14 @@ +# K-ArtSell Aegis v15.0 실행완결성 고도화 + +## 결론 +생산준비도는 화면·Job·WBS 숫자가 아니라 `Source/License → PIT/DQ → Evidence/VersionSet → Sell/Reentry → Recommendation → Maker-Checker → Publish → Outcome Windows → Reconciliation/DR`가 동일 계약으로 닫혀 있는지로 판정한다. + +v15.0은 v10의 비회귀와 자동주문 OFF, v12.1의 실행준비 계약, v14의 표준 UI·모델 피드백을 유지하고 다음 Delta를 추가한다. + +- UI Adapter Contract 3.0: 14개 정규화 capability, 두 provider, Feature vendor import 금지 +- 표준 CRUD: URL deep-link, TanStack Query/Pinia/Form 책임 분리, If-Match·Idempotency·ProblemDetails +- Scheduler: scheduledFor anchor, catch-up policy, BusinessHold 상태, 거래세션 평가창 +- 지속평가: 1/5/20/63/126/252 거래세션, Metric/Cohort version, J40 integrity audit +- WBS 576건, 기술부채 124건, Decision 80건, 추적성 101행 + +자동 모델승격·자동 파라미터 변경·고객 자동공개·자동주문·KIS 제출은 여전히 금지다. diff --git a/docs/v15_0/01_ROLE_BASED_BRUTAL_AUDIT.md b/docs/v15_0/01_ROLE_BASED_BRUTAL_AUDIT.md new file mode 100644 index 00000000..58a459e4 --- /dev/null +++ b/docs/v15_0/01_ROLE_BASED_BRUTAL_AUDIT.md @@ -0,0 +1,11 @@ +# 역할별 냉정한 감사 + +- 운영사: 정상 화면보다 재처리·대사·보류·정정·DR가 먼저다. +- 아키텍트: provider 하나의 wrapper는 교체 가능성이 아니다. 정규화 계약과 두 구현의 conformance가 필요하다. +- PM/PL: 상세 WBS는 산출물·완료증거·Owner·Dependency·Gate 없으면 일정 장식이다. +- UX/AX: 화려한 차트보다 As-of, 경고, 승인상태, 반대증거, 만료를 오해 없이 보여야 한다. +- QA: 정적 파일 존재를 build·migration·E2E PASS로 기록하면 안 된다. +- 투자고객: 내부 점수가 아니라 승인본, 비용, 불확실성, 다음 검토, 재진입 계약을 본다. +- 개발자: Generic Repository, God Service, 무차별 interface, 모든 화면 AG Grid는 기술부채다. +- 데이터/DBA: overwrite와 current flag 중심 모델은 PIT·감사·재현성을 파괴한다. +- 컨설턴트: 가장 위험한 홀루시네이션은 실행하지 않은 검증을 완료로 보고하는 것이다. diff --git a/docs/v15_0/02_FRONTEND_STANDARD_AND_ADAPTER_V3.md b/docs/v15_0/02_FRONTEND_STANDARD_AND_ADAPTER_V3.md new file mode 100644 index 00000000..f8fe3d65 --- /dev/null +++ b/docs/v15_0/02_FRONTEND_STANDARD_AND_ADAPTER_V3.md @@ -0,0 +1,15 @@ +# FE 표준과 Adapter v3 + +의존 방향은 `Feature → Standard Screen/Crud → Ks Facade → UiAdapter Contract → Provider`다. Feature에서 PrimeVue/AG Grid import를 금지한다. + +## 상태 책임 +- Server state: TanStack Query +- Session/role/UI preference: Pinia +- Form: vee-validate + Zod +- URL 공유상태: vue-router +- 대량 목록: AG Grid provider, server query contract + +## 화면 표준 +T01~T10을 유지하고 CRUD list/form, operations console, reconciliation, governance 화면에서 As-of·ProjectionVersion·Watermark·Correlation을 표준 노출한다. + +공통화는 3회 반복만으로 부족하다. 동일 의미·동일 실패상태·동일 변경축까지 일치할 때만 승격한다. diff --git a/docs/v15_0/03_SCHEDULER_AND_CONTINUOUS_FEEDBACK.md b/docs/v15_0/03_SCHEDULER_AND_CONTINUOUS_FEEDBACK.md new file mode 100644 index 00000000..1f8882e9 --- /dev/null +++ b/docs/v15_0/03_SCHEDULER_AND_CONTINUOUS_FEEDBACK.md @@ -0,0 +1,10 @@ +# Scheduler·지속 모델 운영 + +## 실행 흐름 +`Freeze → Mature → Score → Diagnose → Hypothesis → Challenger → Validate → Review → Human Activation` + +Scheduler는 평가·제안·Drill만 수행한다. 다음 발생시각은 worker가 실제 실행된 시각이 아니라 승인된 `scheduledFor` anchor에서 계산한다. 장애 catch-up 기본은 `LATEST_ONLY`이며 무제한 재생을 금지한다. + +평가창은 1/5/20/63/126/252 거래세션이다. Metric definition과 Cohort definition을 version/hash로 고정하고 J40이 누락·중복·지연·Calendar drift를 감사한다. J40은 기본 disabled다. + +BusinessHold는 기술오류와 분리한다. 데이터·승인·표본 미성숙을 blind retry하지 않고 reason, owner, holdUntil, evidence를 남긴다. diff --git a/docs/v15_0/04_ALGORITHM_DATA_INTEGRITY.md b/docs/v15_0/04_ALGORITHM_DATA_INTEGRITY.md new file mode 100644 index 00000000..b64bb34e --- /dev/null +++ b/docs/v15_0/04_ALGORITHM_DATA_INTEGRITY.md @@ -0,0 +1,9 @@ +# 알고리즘·데이터 정합성 + +매도 우선순위는 `HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION/LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION`이다. 상위 위험은 하위 점수로 상쇄하지 않는다. + +- SellRatioOfLot와 PortfolioWeight/CoreFloor 단위를 분리한다. +- Opportunity sell은 Fee/Tax/FX/슬리피지 후 신뢰하단이 0보다 큰 경우만 허용한다. +- 비가치훼손 매도는 ReentryWatch, 10세션 대기, 단계간 10세션, 126세션 만료, 새 Cycle/Lot을 갖는다. +- Raw/PIT/DQ/Evidence/Ledger/Projection/Artifact 계층을 분리한다. +- 역정규화는 Read Model에만 허용하고 ProjectionVersion·Watermark·Rebuild·Stale을 요구한다. diff --git a/docs/v15_0/05_WBS_GATES_TECH_DEBT.md b/docs/v15_0/05_WBS_GATES_TECH_DEBT.md new file mode 100644 index 00000000..1d81e2b9 --- /dev/null +++ b/docs/v15_0/05_WBS_GATES_TECH_DEBT.md @@ -0,0 +1,9 @@ +# WBS·Gate·기술부채 + +- 상세 WBS: 576건 +- v15 Delta: 96건 +- 기술부채: 124건 +- Decision: 80건 +- Traceability: 101행 + +P0는 해당 Gate 전 종료하거나 승인된 완화통제와 Exit Test를 가져야 한다. Sprint 용량의 15~20%는 승인된 부채 상환에 고정한다. diff --git a/docs/v15_0/06_VALIDATION_TRUTH.md b/docs/v15_0/06_VALIDATION_TRUTH.md new file mode 100644 index 00000000..1f23b89a --- /dev/null +++ b/docs/v15_0/06_VALIDATION_TRUTH.md @@ -0,0 +1,5 @@ +# 검증 진실성 + +현재 환경에서 수행 가능한 정적 JSON/CSV/source/package 검증과 Python 테스트만 PASS로 기록한다. .NET 10, pnpm frozen, PostgreSQL DbUp, Playwright, 252거래일 Shadow, PBO/DSR은 승인된 실행환경에서 별도 수행해야 하며 미수행 상태다. + +완료 정의는 코드 존재가 아니라 `Source → Requirement → Policy/Data → API/DB/Job/UI → Test → PR → Release Evidence` 연결과 운영·준법 Gate 통과다. diff --git a/docs/v15_0/07_PACKAGE_ATTACHMENT_POLICY.md b/docs/v15_0/07_PACKAGE_ATTACHMENT_POLICY.md new file mode 100644 index 00000000..e8365ca2 --- /dev/null +++ b/docs/v15_0/07_PACKAGE_ATTACHMENT_POLICY.md @@ -0,0 +1,6 @@ +# 패키지·첨부 정책 + +- Core_NoLegacy: 소스·문서·현재 DOCX 기준선 포함, 과거 ZIP archive 제외 +- Full_With_Attachments: Core + 현재 첨부 ZIP archive 1회 포함 +- 생성 결과 ZIP을 다시 입력으로 포함하지 않는다. +- 모든 첨부는 SHA-256과 크기를 Source Coverage Matrix에 기록한다. diff --git a/docs/v15_0/08_20_DAY_RESTART_PLAN.md b/docs/v15_0/08_20_DAY_RESTART_PLAN.md new file mode 100644 index 00000000..c5ac9c64 --- /dev/null +++ b/docs/v15_0/08_20_DAY_RESTART_PLAN.md @@ -0,0 +1,8 @@ +# 20영업일 재착수 + +- D1~D3: 기준선·Decision·자동주문 OFF·ID registry +- D4~D6: .NET/node/pnpm lock·Gitea CI·provider contract +- D7~D10: DbUp 4시나리오·Auth·Outbox/Inbox·Scheduler anchor/catch-up +- D11~D14: PIT·CA·DQ·Calendar·Window planner +- D15~D17: Sell/Reentry·Metric/Cohort·Feedback Golden +- D18~D20: T01/T05/T08/T10 E2E·OTel·Release Evidence diff --git a/docs/v15_0/08_DETAILED_WBS_MASTER.csv b/docs/v15_0/08_DETAILED_WBS_MASTER.csv new file mode 100644 index 00000000..bfadef19 --- /dev/null +++ b/docs/v15_0/08_DETAILED_WBS_MASTER.csv @@ -0,0 +1,577 @@ +WBS_ID,Sprint,Weeks,Slice_ID,Slice,Module,Workstream,Requirement_ID,API_ID,DB_Migration_ID,Job_Event_ID,UI_ID,Test_ID,Task,Artifact,Acceptance_Evidence,Primary_Owner,Secondary,PD,Dependency,Gate,Evidence_Class,Risk,Status +AEG-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,Cross,Version Coverage Matrix 고도화,Version Coverage Matrix·Supersession Registry,모든 첨부와 v10/v12/v12.1의 Retained/Improved/Superseded 상태 100%,PM/Architect,Architect/QA,5,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,Cross,global.json 고도화,global.json·Directory.Packages·node/packageManager·lock 정책,승인 runner에서 dotnet restore/build/test 및 pnpm frozen build 재현,DevOps,Architect/QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,Cross,모듈/namespace/schema/API 금지 의존 Architecture tests 고도화,모듈/namespace/schema/API 금지 의존 Architecture tests,"Domain 기술의존 0, 모듈 직접 DB 접근 0, ID 중복 0",Architect/QA,Architect/QA,7,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-004,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/re-run/failure 복구 rehearsal 고도화,DbUp fresh/upgrade/re-run/failure 복구 rehearsal,PostgreSQL 승인 버전에서 4 시나리오와 checksum 변경 차단 통과,DBA/BE,Architect/QA,8,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-005,S0,W1-2,Cross,Cross-cutting,Security,SEC,REQ-SEC-BASE,Cross,Cross,Cross,Cross,Cross,"OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed 고도화","OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed","비개발 무인증 접근 0, secret/log/prompt 노출 0",Security/BE,Architect/QA,7,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,ASYNC,REQ-ASYNC-001,Cross,Cross,Cross,Cross,Cross,Outbox publisher 고도화,Outbox publisher·Inbox lease·dead-letter·replay,"duplicate 0, crash-before/after-publish 시나리오와 replay hash 통과",BE/SRE,Architect/QA,10,AEG-X-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-007,S0,W1-2,Cross,Cross-cutting,Observability,OPS,REQ-OBS-001,Cross,Cross,Cross,Cross,Cross,Serilog/OTel correlation 고도화,Serilog/OTel correlation·metric naming·Telegram redaction,"trace→job→decision→outbox 연결, PII redaction test 통과",SRE/Security,Architect/QA,7,AEG-X-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-008,S0,W1-2,Cross,Cross-cutting,API Contract,CONTRACT,REQ-API-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact 고도화,OpenAPI artifact·ProblemDetails taxonomy·FE contract generation,OpenAPI diff와 breaking change approval 없이는 Release 차단,BE/FE Architect,Architect/QA,8,AEG-X-003,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-01,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,GOV,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,정책·범위·실패상태 계약 확정,"REQ-PLAT-001, VS-00 SLICE_SPEC, ADR/Decision Log",사용자 결과 '빌드·마이그레이션·관제 가능한 단일 배포 골격'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-02,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DATA,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,데이터 시점·스키마·정합성 계약,"MIG-0000/0013, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-00-01,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-03,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DOMAIN,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,도메인 불변조건·상태전이 구현,"src/Modules/Host/BuildingBlocks/PlatformBootstrap/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-00-02,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-04,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,BE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vertical Slice API/Application/SQL 구현,HEALTH-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-00-03,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-05,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,ASYNC,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-00-04,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-06,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,FE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vue feature·Zod·Query·컴포넌트 구현,UI-PLAT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-00-05,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-07,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,TESTOPS,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,회귀·관제·Runbook·Rollback 증거,T-ARCH-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-00-06,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-009,S1,W3-4,Cross,Cross-cutting,Data Governance,DATA,REQ-DATA-SOURCE,Cross,Cross,Cross,Cross,Cross,Source catalog/license/SLA/timezone/unit/checksum 고도화,Source catalog/license/SLA/timezone/unit/checksum,승인 없는 source가 ingestion 또는 추천으로 진입하지 않음,Data Governance,Architect/QA,8,AEG-X-001,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-01,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,GOV,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,정책·범위·실패상태 계약 확정,"REQ-IAM-001, VS-01 SLICE_SPEC, ADR/Decision Log",사용자 결과 'MFA·RBAC·업무분장과 승인 경계'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-02,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DATA,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,데이터 시점·스키마·정합성 계약,"MIG-IAM-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-01-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-03,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DOMAIN,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,도메인 불변조건·상태전이 구현,"src/Modules/IdentityAccess/ManageIdentityAndRoles/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-01-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-04,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,BE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vertical Slice API/Application/SQL 구현,IAM-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-01-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-05,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,ASYNC,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-01-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-06,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,FE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vue feature·Zod·Query·컴포넌트 구현,UI-IAM-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-01-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-07,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,TESTOPS,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,회귀·관제·Runbook·Rollback 증거,T-IAM-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-01-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-01,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,GOV,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,정책·범위·실패상태 계약 확정,"REQ-SEC-001, VS-02 SLICE_SPEC, ADR/Decision Log",사용자 결과 '상장·상폐·상품구조·거래가능성의 PIT 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-02,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DATA,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,데이터 시점·스키마·정합성 계약,"MIG-SEC-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-02-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-03,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DOMAIN,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/SynchronizeSecurityMaster/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-02-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-04,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,BE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vertical Slice API/Application/SQL 구현,"SEC-01/02,DAT-01; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-02-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-05,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,ASYNC,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Event/Job/Inbox·재처리 구현,"J01; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-02-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-06,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,FE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SEC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-02-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-07,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,TESTOPS,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,회귀·관제·Runbook·Rollback 증거,T-SEC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-02-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-010,S2,W5-6,Cross,Cross-cutting,Read Model,PROJECTION,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,projection owner/version/watermark/rebuild/staleness 고도화,projection owner/version/watermark/rebuild/staleness,"write model 직접 UI join 0, rebuild 결과 hash 동일",BE/Data,Architect/QA,8,AEG-X-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-01,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,GOV,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,정책·범위·실패상태 계약 확정,"REQ-DAT-001, VS-03 SLICE_SPEC, ADR/Decision Log",사용자 결과 '원시·조정 OHLCV·FX·금리의 revision 적재'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-02,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,데이터 시점·스키마·정합성 계약,"MIG-MD-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-03-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-03,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DOMAIN,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,도메인 불변조건·상태전이 구현,"src/Modules/MarketData/IngestMarketDataPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-03-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-04,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,BE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vertical Slice API/Application/SQL 구현,DAT-02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-03-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-05,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,ASYNC,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Event/Job/Inbox·재처리 구현,"J02; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-03-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-06,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,FE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-03-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-07,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,TESTOPS,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,회귀·관제·Runbook·Rollback 증거,T-DQ-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-03-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-01,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,GOV,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,정책·범위·실패상태 계약 확정,"REQ-CA-001, VS-04 SLICE_SPEC, ADR/Decision Log",사용자 결과 '분할·배당·증자·합병·상폐의 가격·수량·원가 일관성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-03",G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-02,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DATA,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,데이터 시점·스키마·정합성 계약,"MIG-CA-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-04-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-03,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DOMAIN,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/ApplyCorporateActions/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-04-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-04,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,BE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vertical Slice API/Application/SQL 구현,DAT-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-04-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-05,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,ASYNC,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Event/Job/Inbox·재처리 구현,"J03; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-04-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-06,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,FE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-02; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-04-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-07,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,TESTOPS,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,회귀·관제·Runbook·Rollback 증거,T-CA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-04-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-01,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,GOV,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,정책·범위·실패상태 계약 확정,"REQ-FND-001, VS-05 SLICE_SPEC, ADR/Decision Log",사용자 결과 '공시·재무·컨센서스 공개시각과 정정 이력'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-02,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DATA,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,데이터 시점·스키마·정합성 계약,"MIG-FND-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-05-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-03,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DOMAIN,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,도메인 불변조건·상태전이 구현,"src/Modules/FundamentalsPIT/IngestFundamentalsPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-05-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-04,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,BE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vertical Slice API/Application/SQL 구현,DAT-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-05-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-05,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,ASYNC,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Event/Job/Inbox·재처리 구현,"J04; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-05-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-06,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,FE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vue feature·Zod·Query·컴포넌트 구현,UI-FND-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-05-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-07,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,TESTOPS,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,회귀·관제·Runbook·Rollback 증거,T-FND-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-05-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-01,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,GOV,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,정책·범위·실패상태 계약 확정,"REQ-COST-001, VS-06 SLICE_SPEC, ADR/Decision Log",사용자 결과 '계좌·시장·상품별 Fee/Tax/FX valid-time 계약'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-02,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DATA,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,데이터 시점·스키마·정합성 계약,"MIG-COST-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-06-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-03,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DOMAIN,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainFeeTaxFxSchedule/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-06-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-04,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,BE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vertical Slice API/Application/SQL 구현,COST-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-06-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-05,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,ASYNC,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Event/Job/Inbox·재처리 구현,"J04C; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-06-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-06,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,FE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vue feature·Zod·Query·컴포넌트 구현,UI-COST-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-06-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-07,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,TESTOPS,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,회귀·관제·Runbook·Rollback 증거,T-COST-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-06-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-01,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,GOV,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,정책·범위·실패상태 계약 확정,"REQ-LED-001, VS-08 SLICE_SPEC, ADR/Decision Log",사용자 결과 '현금·체결·Lot·Cycle 불변 원장과 대사 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-06",G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-02,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DATA,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,데이터 시점·스키마·정합성 계약,"MIG-LED-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-08-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-03,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DOMAIN,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainPortfolioLedger/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-08-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-04,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,BE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vertical Slice API/Application/SQL 구현,POR-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-08-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-05,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,ASYNC,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Event/Job/Inbox·재처리 구현,"J12L; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-08-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-06,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,FE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vue feature·Zod·Query·컴포넌트 구현,UI-POR-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-08-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-07,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,TESTOPS,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,회귀·관제·Runbook·Rollback 증거,T-LED-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-08-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-011,S4,W9-10,Cross,Cross-cutting,Algorithm,GOLDEN,REQ-ALG-GOLDEN,Cross,Cross,Cross,Cross,Cross,Python↔C# Golden vector 고도화,Python↔C# Golden vector·epsilon·rounding 계약,정책 ID별 경계·우선순위·cost×2 결과 허용오차 내 동일,Quant/QA,Architect/QA,10,VS-09,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-01,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,GOV,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,정책·범위·실패상태 계약 확정,"REQ-EVD-001, VS-09 SLICE_SPEC, ADR/Decision Log",사용자 결과 'Dataset/Model/Config/Code SHA가 동결된 Evidence'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-02,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,데이터 시점·스키마·정합성 계약,"MIG-EVD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-09-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-03,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DOMAIN,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,도메인 불변조건·상태전이 구현,"src/Modules/ResearchFactors/BuildEvidenceSnapshot/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-09-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-04,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,BE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vertical Slice API/Application/SQL 구현,EVD-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-09-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-05,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,ASYNC,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Event/Job/Inbox·재처리 구현,"J06; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-09-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-06,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,FE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-09-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-07,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,TESTOPS,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,회귀·관제·Runbook·Rollback 증거,T-EVD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-09-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-01,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,GOV,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,정책·범위·실패상태 계약 확정,"REQ-SELL-001, VS-10 SLICE_SPEC, ADR/Decision Log",사용자 결과 '우선순위가 보존된 HOLD/부분매도/전량매도 결정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-09,VS-13",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-02,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DATA,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,데이터 시점·스키마·정합성 계약,"MIG-SIG-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-10-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-03,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DOMAIN,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/GenerateSellDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-10-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-04,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,BE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vertical Slice API/Application/SQL 구현,SIG-SELL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-10-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-05,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ASYNC,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Event/Job/Inbox·재처리 구현,"J08S; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-10-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-06,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SELL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-10-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-07,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,TESTOPS,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,회귀·관제·Runbook·Rollback 증거,T-SELL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-10-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-012,S5,W11-12,Cross,Cross-cutting,Research,REPRO,REQ-REPRO-001,Cross,Cross,Cross,Cross,Cross,dataset/code/config/environment manifest와 artifact hash 고도화,dataset/code/config/environment manifest와 artifact hash,"동일 manifest·seed 결과 재현, 실패 artifact 보존",Quant/Data,Architect/QA,12,AEG-X-009,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-01,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,GOV,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,정책·범위·실패상태 계약 확정,"REQ-RE-001, VS-11 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비가치훼손 매도의 재진입 계약·단계·만료'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-10,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-02,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DATA,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,데이터 시점·스키마·정합성 계약,"MIG-RE-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-11-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-03,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DOMAIN,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/ManageReentryWatch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-11-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-04,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,BE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vertical Slice API/Application/SQL 구현,RE-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-11-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-05,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ASYNC,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Event/Job/Inbox·재처리 구현,"J09; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-11-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-06,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,FE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RE-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-11-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-07,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,TESTOPS,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,회귀·관제·Runbook·Rollback 증거,T-RE-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-11-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-01,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,GOV,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,정책·범위·실패상태 계약 확정,"REQ-BKT-001, VS-19 SLICE_SPEC, ADR/Decision Log",사용자 결과 '동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06,VS-09",G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-02,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DATA,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,데이터 시점·스키마·정합성 계약,"MIG-BKT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-19-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-03,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DOMAIN,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/RunFrozenBacktest/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-19-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-04,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,BE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vertical Slice API/Application/SQL 구현,BKT-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-19-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-05,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,ASYNC,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Event/Job/Inbox·재처리 구현,"J-BKT; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-19-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-06,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,FE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BKT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-19-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-07,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,TESTOPS,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,회귀·관제·Runbook·Rollback 증거,T-BKT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-19-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-01,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,GOV,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,정책·범위·실패상태 계약 확정,"REQ-CLI-001, VS-07 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 목표·위험성향·제한상품의 버전 관리'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-02,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DATA,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,데이터 시점·스키마·정합성 계약,"MIG-CLI-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-07-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-03,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DOMAIN,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ManageClientIPS/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-07-02,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-04,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,BE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vertical Slice API/Application/SQL 구현,CLI-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-07-03,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-05,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,ASYNC,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-07-04,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-06,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,FE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLI-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-07-05,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-07,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,TESTOPS,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,회귀·관제·Runbook·Rollback 증거,T-CLI-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-07-06,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-01,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,GOV,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,정책·범위·실패상태 계약 확정,"REQ-REC-001, VS-14 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-10,VS-12,VS-13",MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-02,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DATA,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,데이터 시점·스키마·정합성 계약,"MIG-REC-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-14-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-03,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DOMAIN,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/GenerateDailyRecommendations/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-14-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-04,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vertical Slice API/Application/SQL 구현,SIG-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-14-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-05,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,ASYNC,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Event/Job/Inbox·재처리 구현,"J08; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-14-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-06,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,FE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-14-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-07,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,TESTOPS,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,회귀·관제·Runbook·Rollback 증거,T-REC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-14-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-01,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,GOV,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,정책·범위·실패상태 계약 확정,"REQ-REV-001, VS-15 SLICE_SPEC, ADR/Decision Log",사용자 결과 'maker-checker 승인·보류·기각과 낙관적 동시성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-14,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-02,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DATA,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,데이터 시점·스키마·정합성 계약,"MIG-REV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-15-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-03,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DOMAIN,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ReviewRecommendation/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-15-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-04,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,BE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vertical Slice API/Application/SQL 구현,SIG-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-15-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-05,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,ASYNC,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-06,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,FE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-15-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-07,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,TESTOPS,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,회귀·관제·Runbook·Rollback 증거,T-REV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-15-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-013,S8,W17-18,Cross,Cross-cutting,Audit,TRACE,REQ-AUDIT-E2E,Cross,Cross,Cross,Cross,Cross,Evidence→Decision→Review→Publish→Outcome trace API 고도화,Evidence→Decision→Review→Publish→Outcome trace API,"publication/decision 기준 누락 링크 0, correction event 보존",Compliance/BE,Architect/QA,8,VS-18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-01,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,GOV,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,정책·범위·실패상태 계약 확정,"REQ-PUB-001, VS-16 SLICE_SPEC, ADR/Decision Log",사용자 결과 '승인·유효·데이터 정상 제안만 고객 공개'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-15,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-02,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DATA,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,데이터 시점·스키마·정합성 계약,"MIG-PUB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-16-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-03,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DOMAIN,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/PublishClientAdvice/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-16-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-04,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vertical Slice API/Application/SQL 구현,SIG-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-16-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-05,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,ASYNC,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Event/Job/Inbox·재처리 구현,"J-PUB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-16-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-06,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,FE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-ADV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-16-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-07,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,TESTOPS,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,회귀·관제·Runbook·Rollback 증거,T-PUB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-16-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-01,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,GOV,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,정책·범위·실패상태 계약 확정,"REQ-CLD-001, VS-17 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 수락·거절·보류와 attribution 연결'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-16,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-02,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DATA,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,데이터 시점·스키마·정합성 계약,"MIG-CLD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-17-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-03,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DOMAIN,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/RecordClientDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-17-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-04,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,BE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vertical Slice API/Application/SQL 구현,SIG-06; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-17-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-05,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,ASYNC,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-17-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-06,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,FE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-17-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-07,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,TESTOPS,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,회귀·관제·Runbook·Rollback 증거,T-CLD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-17-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-01,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,정책·범위·실패상태 계약 확정,"REQ-EVA-001, VS-18 SLICE_SPEC, ADR/Decision Log",사용자 결과 '1/5/20/63/126/252일 결과·매도·재진입 품질 평가'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-10,VS-11,VS-16,VS-17",G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-02,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,데이터 시점·스키마·정합성 계약,"MIG-EVA-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-18-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-03,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DOMAIN,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/EvaluateDecisionOutcome/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-18-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-04,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vertical Slice API/Application/SQL 구현,EVA-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-05,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ASYNC,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Event/Job/Inbox·재처리 구현,"J10/J11; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-18-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-06,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVA-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-18-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-07,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,TESTOPS,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,회귀·관제·Runbook·Rollback 증거,T-EVA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-18-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-01,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,GOV,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,정책·범위·실패상태 계약 확정,"REQ-RISK-001, VS-13 SLICE_SPEC, ADR/Decision Log",사용자 결과 'ES·집중·상관·자본바닥 위험 스냅샷'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-08",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-02,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DATA,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,데이터 시점·스키마·정합성 계약,"MIG-RISK-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-13-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-03,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DOMAIN,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/CalculatePortfolioRisk/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-13-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-04,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,BE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vertical Slice API/Application/SQL 구현,POR-02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-13-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-05,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,ASYNC,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Event/Job/Inbox·재처리 구현,"J07; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-13-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-06,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,FE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RISK-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-13-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-07,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,TESTOPS,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,회귀·관제·Runbook·Rollback 증거,T-RISK-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-13-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-01,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,GOV,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,정책·범위·실패상태 계약 확정,"REQ-REB-001, VS-21 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비용·세금·위험예산·제약을 만족하는 리밸런싱'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-08,VS-12,VS-13",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-02,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DATA,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,데이터 시점·스키마·정합성 계약,"MIG-REB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-21-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-03,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DOMAIN,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/BuildRebalanceProposal/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-21-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-04,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,BE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vertical Slice API/Application/SQL 구현,REB-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-21-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-05,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,ASYNC,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Event/Job/Inbox·재처리 구현,"J-REB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-21-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-06,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,FE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REB-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-21-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-07,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,TESTOPS,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,회귀·관제·Runbook·Rollback 증거,T-REB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-21-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-01,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,GOV,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,정책·범위·실패상태 계약 확정,"REQ-BUY-001, VS-12 SLICE_SPEC, ADR/Decision Log",사용자 결과 'PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-05,VS-06,VS-09",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-02,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DATA,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,데이터 시점·스키마·정합성 계약,"MIG-BUY-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-12-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-03,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DOMAIN,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,도메인 불변조건·상태전이 구현,"src/Modules/ValuationForecast/RankBuyCandidates/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-12-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-04,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,BE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vertical Slice API/Application/SQL 구현,BUY-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-12-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-05,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,ASYNC,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Event/Job/Inbox·재처리 구현,"J08B; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-12-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-06,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,FE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BUY-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-12-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-07,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,TESTOPS,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,회귀·관제·Runbook·Rollback 증거,T-BUY-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-12-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-01,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,GOV,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,정책·범위·실패상태 계약 확정,"REQ-RPL-001, VS-22 SLICE_SPEC, ADR/Decision Log",사용자 결과 '적합성·유동성·비용후 기회우위 대체상품 비교'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-12,VS-13",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-02,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DATA,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,데이터 시점·스키마·정합성 계약,"MIG-RPL-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-22-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-03,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DOMAIN,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/SuggestReplacementProducts/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-22-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-04,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,BE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vertical Slice API/Application/SQL 구현,RPL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-22-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-05,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,ASYNC,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Event/Job/Inbox·재처리 구현,"J-RPL; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-22-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-06,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,FE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-22-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-07,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,TESTOPS,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,회귀·관제·Runbook·Rollback 증거,T-RPL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-22-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-014,S11,W23-24,Cross,Cross-cutting,Model Risk,VALIDATION,REQ-MODEL-RISK,Cross,Cross,Cross,Cross,Cross,CSCV/PBO 고도화,CSCV/PBO·DSR·block bootstrap·시도 원장,"PBO≤20%, DSR≥95%, cost×2 utility 양수 또는 승격 차단",Quant/Risk,Architect/QA,15,AEG-X-012,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-015,S11,W23-24,Cross,Cross-cutting,Shadow,EVAL,REQ-SHADOW-001,Cross,Cross,Cross,Cross,Cross,252거래일 고도화,252거래일·복수 국면 일평가 scorecard,적중률 단독 아닌 calibration/ES/false-exit/reentry/운영무결성 판정,Quant/Ops,Architect/QA,14,VS-18,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-01,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,정책·범위·실패상태 계약 확정,"REQ-MOD-001, VS-20 SLICE_SPEC, ADR/Decision Log",사용자 결과 '모델 승격 증거·승인·롤백·챔피언/챌린저'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-18,VS-19",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-02,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DATA,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,데이터 시점·스키마·정합성 계약,"MIG-MOD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-20-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-03,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DOMAIN,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/PromoteModelVersion/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-20-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-04,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,BE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vertical Slice API/Application/SQL 구현,MOD-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-20-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-05,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ASYNC,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Event/Job/Inbox·재처리 구현,"J-MOD; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-20-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-06,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-MOD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-20-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-07,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,TESTOPS,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,회귀·관제·Runbook·Rollback 증거,T-MOD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-20-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-01,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,GOV,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,정책·범위·실패상태 계약 확정,"REQ-RPT-001, VS-24 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 리포트·SignalR·Telegram 운영 경보'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-16,VS-18",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-02,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DATA,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,데이터 시점·스키마·정합성 계약,"MIG-RPT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-24-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-03,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DOMAIN,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,도메인 불변조건·상태전이 구현,"src/Modules/ReportingNotifications/ReportAndNotify/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-24-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-04,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,BE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vertical Slice API/Application/SQL 구현,RPT-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-24-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-05,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,ASYNC,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Event/Job/Inbox·재처리 구현,"J11R; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-24-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-06,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,FE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-24-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-07,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,TESTOPS,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,회귀·관제·Runbook·Rollback 증거,T-RPT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-24-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-016,S12,W25-26,Cross,Cross-cutting,Broker,CAPABILITY,REQ-KIS-OFF,Cross,Cross,Cross,Cross,Cross,KIS 주문 제출 startup/CI/runtime 차단 고도화,KIS 주문 제출 startup/CI/runtime 차단,"외부 주문 호출 0, capability override 감사·kill-switch 통과",Security/Ops,Architect/QA,7,AEG-X-005,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-01,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,GOV,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,정책·범위·실패상태 계약 확정,"REQ-RECON-001, VS-23 SLICE_SPEC, ADR/Decision Log",사용자 결과 '브로커·내부 주문·체결·보유·현금 break와 승인 정정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-16",Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-02,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,데이터 시점·스키마·정합성 계약,"MIG-EXE-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-23-01,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-03,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DOMAIN,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,도메인 불변조건·상태전이 구현,"src/Modules/ExecutionReconciliation/ReconcilePositionsAndFills/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-23-02,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-04,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,BE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vertical Slice API/Application/SQL 구현,"EXE-01/02,REC-01/02; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-23-03,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-05,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,ASYNC,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Event/Job/Inbox·재처리 구현,"J12; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-23-04,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-06,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,FE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RECON-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-23-05,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-07,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,TESTOPS,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,회귀·관제·Runbook·Rollback 증거,T-RECON-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-23-06,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-017,S13,W27-28,Cross,Cross-cutting,DR,OPS,REQ-DR-001,Cross,Cross,Cross,Cross,Cross,RPO/RTO 고도화,RPO/RTO·backup/restore·region/host failure rehearsal,"승인 RPO/RTO 내 복구, 원장·outbox·projection 대사 100%",SRE/DBA,Architect/QA,12,AEG-X-006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-01,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,GOV,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,정책·범위·실패상태 계약 확정,"REQ-GOV-001, VS-25 SLICE_SPEC, ADR/Decision Log",사용자 결과 '입력→결정→승인→공개→실행→평가 추적과 단계별 차단'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-01,VS-16,VS-20,VS-23",G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-02,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DATA,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,데이터 시점·스키마·정합성 계약,"MIG-GOV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-25-01,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-03,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DOMAIN,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/AuditAndKillSwitch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-25-02,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-04,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,BE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vertical Slice API/Application/SQL 구현,GOV-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-25-03,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-05,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,ASYNC,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Event/Job/Inbox·재처리 구현,"J-GOV; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-25-04,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-06,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,FE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-GOV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-25-05,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-07,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TESTOPS,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,회귀·관제·Runbook·Rollback 증거,T-GOV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-25-06,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-018,S14,W29-30,Cross,Cross-cutting,Performance,NFR,REQ-NFR-001,Cross,Cross,Cross,Cross,Cross,API P95 고도화,API P95·batch SLA·portfolio 규모·backfill 부하시험,개장 전 추천 SLA와 고객 API SLO가 동시에 충족,SRE/QA,Architect/QA,10,AEG-X-017,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-019,S14,W29-30,Cross,Cross-cutting,Cutover,RELEASE,REQ-CUT-001,Cross,Cross,Cross,Cross,Cross,dry-run/backfill/recon/rollback/release evidence 고도화,dry-run/backfill/recon/rollback/release evidence,"미승인 공개 0, duplicate 0, rollback 리허설과 승인 서명",PM/Ops,Architect/QA,10,AEG-X-018,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-020,S15,W31-32,Cross,Cross-cutting,Hypercare,OPS,REQ-HYP-001,Cross,Cross,Cross,Cross,Cross,P1/P2 triage 고도화,P1/P2 triage·daily reconciliation·debt burn-down,초기 안정화 Exit 기준·Owner·잔여 부채 승인,Ops/PM,Architect/QA,8,AEG-X-019,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-DOC-022,Current-session source coverage and SHA register,Source Coverage Matrix/Source Index,6 current attachments preserved byte-for-byte and hashes match,PM/Architect,QA/Compliance,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG22-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,T-CI-022,Offline-safe package manager and lockfile decision,packageManager/LOCKFILE_REQUIRED/CI guard,No silent dependency resolution; frozen install blocks until approved lock exists,DevOps,FE Lead,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,ARCH,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-ARCH-022,Module/Vertical Slice template pack,"templates/dotnet,vue,sql,hangfire",New slice can be generated without Generic Repository or controller-service duplication,Architect,BE/FE Leads,6,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-004,S0,W1-2,Cross,Cross-cutting,API,BE,REQ-API-001,API-CONTEXT-01,Cross,Cross,Cross,T-API-022,Correlation/Idempotency/ProblemDetails shared contract,request execution standard,400/401/403/409/422 and trace/idempotency rules consistent,BE Lead,QA/SRE,6,AEG-X-004,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-005,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-REHEARSAL,Cross,MIG-REHEARSAL,Cross,Cross,T-DB-022,DbUp fresh/upgrade/re-run/failure rehearsal script,scripts/rehearse_migrations.sh,Approved PostgreSQL runner produces 4 scenario artifacts,DBA,BE/DevOps,8,AEG-X-004,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-OUTBOX-001,Cross,MIG-0013,JOB-OUTBOX-01,Cross,T-OUTBOX-022,Outbox lease/dead-letter/replay hardening,outbox dispatcher template/runbook,Crash-before/after publish yields no lost message and idempotent downstream,BE/SRE,QA,10,AEG-X-006,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-007,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-INBOX-001,Cross,MIG-0013,JOB-INBOX-01,Cross,T-INBOX-022,Inbox duplicate/result-hash contract,inbox consumer template,Same consumer/message performs side effect once and replay hash is stable,BE/SRE,QA,8,AEG-X-007,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-008,S0,W1-2,Cross,Cross-cutting,Batch,JOB,REQ-JOB-001,Cross,MIG-0000,JOB-RUN-STD,UI-OPS-JOB,T-JOB-022,JobRun/Watermark/heartbeat scope standard,ReliableJob template,Concurrent duplicate is held; retry preserves scope/version/input hash,BE/SRE,QA/Data,8,AEG-X-008,G1,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-001,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,Separate security weight and lot weight,SellDecisionInput/context/migration,Lot ratio changes only lot weight; target security weight is exact,Quant/BE,DBA/QA,10,AEG-VS-10-03,G2-A,SOURCE+INFERENCE,P0,PLANNED +AEG22-VS10-002,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,Persist ordered policy evaluation trace,policy_trace_json/API schema,Applied/blocked/not-applicable reasons reproduce decision priority,BE/Quant,FE/QA,8,AEG22-VS10-001,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-003,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,QA,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-GOLDEN-022,Golden/boundary/monotonic/property vectors,unit/golden vectors,"Core clamp, survival bypass, priority and future PIT rejection pass",QA/Quant,BE,8,AEG22-VS10-002,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS10-004,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SIG-UI,SIG-RESEARCH-01,Cross,Cross,UI-SIG-01,T-FE-SIG-022,FE runtime contract for weights and policy trace,Zod schema/page/tests,Malformed response and lot>security input fail closed,FE Lead,QA/BE,5,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS09-001,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,Cross,MIG-EVD-001,J06,UI-EVD-01,T-EVD-022,Evidence completeness grade and required-field manifest,Evidence contract delta,Missing total-return/delisting/cost source downgrades or quarantines recommendation,Data/Quant,BE/QA,8,AEG-VS-09-02,G2-A,SOURCE,P0,PLANNED +AEG22-VS03-001,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-PIT-022,Enforce published_at cutoff and timezone,PIT query contract/data test,Lookahead count remains zero across replay and timezone boundaries,Data Architect,DBA/QA,8,AEG-VS-03-03,G1-B,SOURCE,P0,PLANNED +AEG22-VS03-002,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-LIC,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,Source license/SLA/checksum fail-closed gate,Source catalog contract,Unapproved/checksum-drift source cannot reach canonical/PIT layer,Data Governance,BE/Compliance,7,AEG22-VS03-001,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS08-001,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DB,REQ-LEDGER-001,POR-01,MIG-POR-001,LedgerEntryApplied,UI-POR-01,T-LEDGER-022,Lot weight derivation and reconciliation invariant,ledger/read-model contract,Lot market values equal security/account totals within tolerance,DBA/BE,Quant/QA,10,AEG-VS-08-03,G1,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS11-001,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ALG,ALG-REENTRY-001,SIG-02,MIG-SIG-REENTRY,J09,UI-SIG-02,T-REENTRY-022,Reentry stage uniqueness and cycle reset proof,state transition/golden tests,Each stage once; new CycleId/Lot; old floor/cost/high not reused,Quant/BE,QA/DBA,9,AEG-VS-11-03,G2,SOURCE,P0,PLANNED +AEG22-VS14-001,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-ADV-001,ADV-01,MIG-ADV-001,J08,UI-ADV-01,T-ADV-RUN-022,Run isolation and partial-failure quarantine,run manifest/error partition,One portfolio failure cannot publish invalid advice to another,BE Lead,SRE/QA,10,AEG-VS-14-04,MVP-B,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS15-001,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,SEC,REQ-REV-001,ADV-02,MIG-ADV-002,RecommendationReviewed,UI-ADV-02,T-REV-022,Maker-checker optimistic concurrency proof,review version/ETag tests,Self-approval and stale update rejected with audit evidence,BE/Security,FE/QA,8,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS16-001,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,ADV-03,MIG-ADV-003,AdvicePublished,UI-CLI-01,T-PUB-022,Publish snapshot hash and staleness gate,publication immutable snapshot,Expired/revised/quarantined evidence blocks publish,BE/Compliance,QA/FE,9,AEG-VS-16-04,G3,SOURCE,P0,PLANNED +AEG22-VS18-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-DEF-022,Version false-exit/gain-capture definitions,metric definition registry,Historical scorecard reproducible by metric version/revision,Quant/Risk,Data/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS19-001,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QUANT,REQ-BT-001,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-ENV-022,Environment digest and full experiment registry,frozen manifest,Data/code/config/seed/environment/all variants hashed,Quant/Data,Risk/QA,10,AEG-VS-19-03,G2,SOURCE,P0,PLANNED +AEG22-VS19-002,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QA,REQ-BT-002,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-XLANG-022,Python-.NET decision golden cross-check,cross-language vectors,Policy/action/ratio/target/trace match within tolerance,QA/Quant,BE,8,AEG22-VS19-001,G2,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS23-001,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,OPS,REQ-REC-001,EXE-01,MIG-EXE-001,J12,UI-OPS-REC,T-REC-CORR-022,Approved correction/reversal workflow,break/correction/audit contract,No direct edit; before/after/hash/approver/replay reconcile to zero,Ops/DBA,Compliance/QA,10,AEG-VS-23-04,Pilot-A,SOURCE,P0,PLANNED +AEG22-VS25-001,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-GOV-001,GOV-01,MIG-GOV-001,KillSwitchChanged,UI-GOV-01,T-KILL-022,Automatic-order capability tripwire,capability tests/runbook,Any AutomaticOrder/KIS drift blocks start/release/action,Security/Ops,DevOps/QA,8,AEG-VS-25-04,ALL,SOURCE,P0,PLANNED +AEG22-X-009,S11,W23-24,Cross,Cross-cutting,Frontend,FE,REQ-FE-CONTRACT,Cross,Cross,Cross,Cross,T-FE-OPENAPI-022,OpenAPI artifact diff and generated contract plan,contract generation ADR,DTO drift visible in CI; Zod remains trust boundary,BE/FE,QA/Architect,7,AEG-X-012,G3,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-010,S11,W23-24,Cross,Cross-cutting,Observability,SRE,REQ-OBS-001,Cross,Cross,Cross,UI-OPS-01,T-OBS-022,Metric cardinality/PII/redaction budget,telemetry policy/tests,No high-cardinality account/security tags or PII in telemetry,SRE/Security,BE/QA,7,AEG-X-013,G5,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-011,S14,W29-30,Cross,Cross-cutting,Performance,SRE,REQ-CAP-001,Cross,Cross,Cross,Cross,T-CAP-022,Capacity assumptions and workload pack,capacity profile,Approved volumes map to API/batch/DB SLO evidence,PM/SRE,DBA/QA,10,AEG-X-025,G6-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-012,S15,W31-32,Cross,Cross-cutting,Release,OPS,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-022,Release evidence and rollback rehearsal,release manifest/checksum/runbook,Source→requirement→code→test→artifact hashes and rollback complete,PM/SRE,QA/Compliance,8,AEG22-X-011,G6,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-031,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,Rebuild seven-file current-session source coverage,Source matrix·SHA index,7개 첨부 원본·크기·SHA-256·역할이 패키지와 1:1 일치,PM/QA,Architect,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG-X-032,S0,W1-2,Cross,Cross-cutting,CI/CD,DEVEX,REQ-PLAT-CI,Cross,Cross,Cross,Cross,T-CI-003,Correct stale CI validator and duplicate YAML key,Gitea ci.yml,"validate_v123 실행, 중복 working-directory 0, static/scaffold tests 연결",DevOps,QA,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-033,S0,W1-2,Cross,Cross-cutting,Architecture,SCAFFOLD,REQ-ARCH-SCAFFOLD,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,Implement deterministic fail-closed slice scaffolder,scaffold_slice.py·templates·tests,"dry-run deterministic, 기존 파일 overwrite 0, 미승인 placeholder 명시",Architect,BE/FE,7,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-034,S0,W1-2,Cross,Cross-cutting,Contract,CONTRACT,REQ-CONTRACT-001,Cross,Cross,Cross,Cross,T-CONTRACT-001,Create machine-readable policy/event/metric contract registry,contracts/**,"JSON parse, C# 상수 교차검증, 이벤트 schema v2, metric definition version",Architect/Quant,QA/Risk,7,AEG-X-003,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-035,S0,W1-2,Cross,Cross-cutting,Validation,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-STATIC-123,Extend static validator for semantic version and contract drift,validate_v123.py,"WBS 250, 7첨부, 0015, registry, context filter, CI key 검사 통과",QA,Architect,6,AEG-X-034,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-08,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-CONTRACT-001,Centralize approved sell policy constants,SellPolicyContract.cs,정책 ID·우선순위·임계값 중복 제거 및 JSON registry와 일치,Quant/BE,Risk/QA,6,AEG-X-034,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-09,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-ZERO-RATIO,Fix positive-edge zero-ratio opportunity sell defect,OpportunityCostPolicy.cs·tests,"edge>0·ratio=0에서 HOLD, trace=BLOCKED, 자동 10% 매도 0",BE/Quant,QA/Risk,5,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-10,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Data integrity,REQ-SIG-SELL,SIG-01,MIG-0015,-,-,T-SIG-SEM-001,Version lot/security weight semantics and block legacy contexts,0015 migration·context reader,weight_semantics_version=2만 결정 입력 사용; legacy backfill 추정 사용 0,DBA/BE,Quant/QA,8,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-11,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Evidence,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-EVT-002,Persist decision and policy-trace contract versions,API·DB·event v2,decision_contract_version과 policy_trace_schema_version이 DB/API/event/hash에 포함,BE,DBA/FE/QA,7,AEG-VS-10-10,G2-A,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-12,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Frontend,REQ-SIG-SELL,SIG-02,MIG-0015,-,UI-SIG-TRACE,T-FE-SIG-TRACE,Componentize ordered policy trace display,PolicyTracePanel.vue·Zod,우선순위/Disposition/요청·적용비율/Core clamp를 runtime contract로 표시,FE,UX/QA,5,AEG-VS-10-11,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-08,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,Metric governance,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-METRIC-001,Version false-exit and reentry metric definitions,outcome-metrics.v1.json,"분모/분자/평가창/집계/정의버전 명시, 연 2% 목표와 직접비교 금지",Quant/Risk,Data/QA,6,AEG-X-034,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-036,S1,W3-4,Cross,Cross-cutting,Security,AUTH,REQ-IAM-001,Cross,Cross,Cross,Cross,T-AUTH-ADR,Keep OIDC/JWT provider decision fail-closed,Decision Log,공급자/claims 미결정 시 Development 외 인증 성공 0,Security,PM/BE,3,AEG-X-005,G5,SOURCE,P0,PLANNED +AEG-X-037,S2,W5-6,Cross,Cross-cutting,Data governance,PIT,REQ-DAT-SOURCE,Cross,Cross,Cross,Cross,T-DATA-LICENSE,Reconfirm total-return/delisting/consensus source decisions,Decision Log·source catalog,미승인 source 추천 진입 0; DECISION_REQUIRED 유지,Data Governance,Legal/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-038,S3,W7-8,Cross,Cross-cutting,Cost data,PIT,REQ-COST-001,Cross,Cross,Cross,Cross,T-COST-PIT,Reconfirm Fee/Tax/FX valid-time schedule decisions,Decision Log·data contract,current 단일값 사용 0; 미결정 계좌/venue 추천 보류,Ops/Tax,DBA/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-039,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-013,Resolve survival cooldown bypass rule,Decision record·Golden vectors,승인 전 기존 fail-closed 유지; 승인 후 정책·모델카드·OOS 동시변경,Investment Committee,Quant/Risk/BE,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P0,PLANNED +AEG-X-040,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-014,Resolve hard impairment 80-100% severity mapping,Decision record·evidence grading,severity source 미승인 시 100% 보수값 유지; 임의 80% 적용 금지,Investment Committee,Compliance/Quant,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P1,PLANNED +AEG-X-041,S11,W23-24,Cross,Cross-cutting,Supply chain,SECURITY,REQ-SEC-SBOM,Cross,Cross,Cross,Cross,T-SBOM-001,Add SBOM/license/vulnerability release evidence contract,Release Evidence template,실제 scanner 미실행은 PASS 표기 금지; artifact 경로와 allowlist 필수,Security/DevOps,Legal/QA,5,AEG-X-032,G5,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-042,S14,W29-30,Cross,Cross-cutting,Capacity,NFR,REQ-NFR-CAP,Cross,Cross,Cross,Cross,T-CAP-001,Approve load volumes before index or partition optimization,Capacity ADR,고객/계좌/종목/배치량 결정 전 투기적 index·partition 추가 0,PM/SRE,DBA/BE,5,DEC-011,G6-A,DECISION_REQUIRED,P1,PLANNED +AEG-X-043,S15,W31-32,Cross,Cross-cutting,Release,EVIDENCE,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-123,Assemble v12.3 release evidence and checksum manifest,Validation evidence·manifest·SHA256,실행/미실행을 구분하고 패키지 전 파일 hash·첨부 hash가 일치,QA/Release,PM/Architect,7,AEG-X-035,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-001,지속 모델 운영 자동화 경계 확정,model-operations.v1·promotion-gate.v1 계약,"EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY 외 모드 0, AUTO_PROMOTE/AUTO_ORDER 0",Risk/Architect,Compliance/Quant,4,DEC-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-002,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-002,성과지표 정의 v2 확정,outcome-metrics.v2·Metric Definition Registry,각 지표의 분자·분모·평가창·집계·비용·PIT·revision 정의와 content hash 보존,Quant/Risk,Data/QA,6,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-003,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10,UI-MO-01,T-MO-003,평가 Dataset Manifest와 Model Registry 계약,evaluation.dataset_manifest·governance.model_version_registry,"요청 시점 Dataset/Model/Config/Code/Contract VersionSet 동결, 미승인 context는 BusinessHold",Data Architect/Quant,DBA/Risk,6,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-004,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DB,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-004,Model Operations 증분 migration 구현,0016_continuous_model_operations.sql,fresh/upgrade/re-run/failure에서 schedule/request/metric/proposal/review/drill schema와 제약 통과,DBA/BE,QA/Data,8,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-005,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-005,15분 Scheduler Dispatcher와 lease 구현,ModelOperationsDispatcherJob·DapperModelScheduleRepository,"FOR UPDATE SKIP LOCKED, 14분 lease, batch 50, dynamic queue, crash/retry 중복 request 0",BE/SRE,DBA/QA,8,AEG-MO-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-006,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,ModelOperationRequested,UI-MO-01,T-MO-006,평가 요청·Outbox 동일 트랜잭션 구현,ModelOperationRequestService·Repository·event v1,"동일 idempotency key의 request/outbox side effect 1회, VersionSet 누락 시 저장 0",BE Lead,SRE/QA,8,AEG-MO-005,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-007,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-007,명시적 ModelOperationRegistry 구현,ModelOperationDefinition·contract drift test,"Job code/주기/queue/mode/owner/gate 중복 0, JSON/C# drift 0",BE/Architect,Quant/QA,5,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-008,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-001,모델 운영 계획 조회 API·Zod 구현,GET /internal/v1/model-operations/plan·schema.ts,"응답 runtime validation, 자동승격 모드 파싱 거부, RBAC 401/403 검증",BE/FE,Security/QA,6,AEG-MO-007,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-009,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-002,모델 운영 대시보드 기본 화면,ModelOperationsPage·BoundaryPanel·OperationTable,일/주/월/분기 작업과 EVALUATION/PROPOSAL/DRILL 경계가 명확하고 로딩/오류/빈상태 접근성 검증,FE/UX,QA/Risk,7,AEG-MO-008,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-010,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-01,MIG-0016,J10,UI-MO-02,T-MO-EVAL-001,1/5/20/63/126/252일 Outcome evaluator 구현,versioned OutcomeObservation·attribution,거래일창·benchmark·FX·delisting·no-fill·partial-fill·revision replay Golden 통과,Quant/BE,Data/QA,12,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-011,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-02,MIG-0016,J11,UI-MO-02,T-MO-EVAL-002,Daily Scorecard와 cohort aggregation,DailyScorecard·cohort metric snapshots,운영오류·calibration·매수·매도·재진입·비용후 효용의 sample/lag/version 표시,Quant/BE,Risk/QA,9,AEG-MO-010,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-012,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-DRIFT-001,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,Data/Feature/Prediction/Calibration drift evaluator,DriftObservation·baseline manifest·alert,"baseline version, PSI/KS/calibration drift와 sample minimum이 승인되고 임계 초과 시 HOLD만 생성",Quant/Risk,Data/SRE,10,AEG-MO-011,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-013,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-CC-001,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,Champion/Challenger 동일 cohort 비교,paired comparison·model card delta,동일 Dataset/Cost/Cohort/Window에서 효과·위험·false-exit·reentry 차이와 신뢰구간 보존,Quant/Risk,IndependentValidation/QA,12,AEG-MO-012,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-014,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-OOS-001,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,월간 Frozen Walk-forward OOS 실행,manifest/hash/seed/environment·OOS artifacts,"동일 manifest 허용오차 내 동일, lookahead 0, 상폐/CA/TR/cost2x 포함, 실패 artifact 보존",Quant/Data,QA/Risk,14,AEG-MO-003,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-015,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-ROBUST-001,BACKTEST-02,MIG-0016,J20,UI-MO-04,T-MO-ROBUST-001,분기 PBO/DSR/Parameter Stability/Block Bootstrap,experiment registry·CSCV/PBO/DSR report,"전체 시도 원장 기준 PBO≤20%, DSR≥95%, 비용2배 양수 여부를 재현하며 기준 미달 시 HOLD",Quant/Risk,IndependentValidation/QA,15,AEG-MO-014,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-016,S11,W23-24,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-05,MIG-0016,J11/J21,UI-MO-02,T-MO-ATTR-001,False-exit·Reentry attribution 정의 확정,metric definition v2·decision log,분자/분모/기준가격/benchmark/평가창/중도상폐/결측 처리 승인 전 생산 KPI 사용 차단,Quant/Risk,InvestmentCommittee/Data,7,DEC-032,G4,SOURCE+DECISION_REQUIRED,P0,PLANNED +AEG-MO-017,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-01,MIG-0016,J21,UI-MO-05,T-MO-IMP-001,월간 개선 제안 생성 규칙,ModelImprovementProposal·ranking rubric,데이터·정책·calibration·risk·기술부채 제안을 구분하고 자동 코드/임계값 변경 0,Quant Lead,Risk/Architect,8,AEG-MO-012~016,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-018,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-02,MIG-0016,J21,UI-MO-05,T-MO-IMP-002,개선 제안 반대증거·만료·중복 통제,proposal schema·content hash·expiry,근거/반대증거/기대효과/위험/필수테스트/Owner/만료가 없으면 REVIEW_REQUIRED 생성 금지,Risk/Architect,Quant/QA,7,AEG-MO-017,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-019,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-PROMOTE-001,GOV-MO-03,MIG-0016,J22,UI-MO-06,T-MO-GATE-001,PromotionGateEvaluator와 증거 패킷,promotion-gate.v1·PromotionGateResult,252일/2국면/효용/calibration/false-exit/reentry/PBO/DSR/cost2x/운영오류를 모두 평가하되 human approval=true,Risk/BE,Quant/QA,9,AEG-MO-015~018,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-020,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,SEC,REQ-MO-PROMOTE-001,GOV-MO-04,MIG-0016,J22,UI-MO-06,T-MO-GATE-002,모델 승격 maker-checker·업무분장,model_promotion_review·RBAC,"maker≠checker, 개발자 단독승격 0, 독립검증·준법·보안 evidence 누락 시 승인 불가",Risk/Security,Compliance/QA,8,AEG-MO-019,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-021,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MO-FE-001,GOV-MO-05,MIG-0016,J17~J22,UI-MO-03~06,T-MO-FE-003,Drift·비교·OOS·제안·Gate 화면 컴포넌트,DriftPanel·ComparisonPanel·EvidenceGatePanel,version/sample/window/data warning/반대증거/readonly 상태를 표시하고 내부점수 고객 노출 0,FE/UX,Risk/QA,12,AEG-MO-012~020,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-022,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-01,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001,Data revision 영향 인덱스와 재평가 요청,decision↔dataset/revision impact index,정정 source/revision이 영향 decision/window를 결정적으로 산출하고 승인 없는 대량 replay 0,Data/BE,DBA/Quant,10,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-023,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-002,Revision-aware correction evidence,new observation/snapshot·Supersession link,"과거 evidence overwrite 0, before/after hash·사유·승인자·영향 KPI가 보존",Data/Compliance,Quant/QA,8,AEG-MO-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-024,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-ROLLBACK-001,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,분기 Model rollback drill,model_rollback_drill·Runbook evidence,fallback manifest 복원·Capability 차단·RTO 측정·Secondary 수행·실주문 0,SRE/Risk,Module Owner/QA,10,AEG-MO-020,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-025,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OBS,REQ-MO-OPS-001,MO-OPS-01,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-001,Scheduler·평가 관제 표준,OTel metrics·Serilog correlation·alerts,due lag/lease conflict/request duplicate/context hold/runtime/backlog/error가 trace→schedule→request→artifact로 연결,SRE/BE,Security/QA,8,AEG-MO-005~006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-026,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-02,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-002,Error taxonomy·retry·dead-letter·BusinessHold,Runbook·retry matrix·dead-letter procedure,"transient/business/poison 분리, blind retry 0, same scope 중복 side effect 0",SRE/BE,Ops/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-027,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-MO-OPS-001,MO-OPS-03,MIG-0016,J10~J24,UI-MO-09,T-MO-SEC-001,모델 evidence·알림 PII/secret 보안,classification/redaction/secret scan,계좌·고객·토큰·원시 payload가 log/trace/Telegram/prompt에 노출 0,Security/SRE,Compliance/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-028,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-04,MIG-0016,J10~J24,UI-MO-09,T-MO-CAP-001,평가 Queue 격리·용량·SLA 시험,capacity report·queue quotas,q-research가 고객 batch SLA를 침범하지 않고 backlog/CPU/DB lock/IO 한도와 degradation 정책 승인,SRE/DBA,Quant/QA,10,AEG-MO-025,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-029,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-SCHED-001,MO-TEST-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-CONC-001,Scheduler concurrency·crash·clock 회귀,integration/chaos tests,"다중 worker lease 경쟁, enqueue 전후 crash, clock skew, DST/휴장, 장기 downtime catch-up에서 중복 0",QA/SRE,BE/DBA,12,AEG-MO-005,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-030,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-EVAL-001,MO-TEST-02,MIG-0016,J10~J22,UI-MO-02~06,T-MO-GOLDEN-001,Python/.NET metric Golden 교차검증,Golden vectors·tolerance registry,동일 frozen input에서 Python 연구와 .NET 평가가 승인 허용오차 내 일치하고 차이 artifact 보존,QA/Quant,BE/Data,12,AEG-MO-010~020,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-031,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-FE-001,MO-TEST-03,MIG-0016,J10~J24,UI-MO-01~09,T-MO-E2E-001,모델 운영 Playwright E2E,role/state/evidence flows,"Quant/Risk/Auditor 권한, loading/empty/stale/warn/hold/review/expired/readonly와 접근성 통과",QA/FE,Security/UX,8,AEG-MO-009~021,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-032,S14,W29-30,Cross,Cross-cutting,Toolchain,CI,REQ-MO-OPS-001,Cross,MIG-0016,Cross,Cross,T-MO-CI-001,Gitea CI에 v12.4 validator·ModelOps tests·contract drift 추가,ci.yml·validate_v124.py,"static/JSON/CSV/WBS/contract/Python tests green, .NET/pnpm/DB evidence 없이는 PASS 주장 금지",DevOps/QA,Architect/Security,8,AEG-MO-001~031,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-033,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-OPS-001,Cross,Cross,Cross,Cross,Cross,모델 운영 Release Evidence 템플릿,MODEL_EVALUATION_EVIDENCE.md·IMPROVEMENT_PROPOSAL.md,"Source/Assumption/Unknown/DecisionRequired, 명령·hash·sample·window·approval·rollback가 누락 없이 연결",PM/Risk,QA/Architect,5,AEG-MO-032,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-034,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-IMPROVE-001,Cross,Cross,Cross,Cross,Cross,바이브코딩 모델 변경 작업 패킷,MODEL_CHANGE + evaluation packet,AI가 임계값·팩터·모델·스케줄을 추정하지 않고 승인 source와 실제 test artifact 없으면 PR 차단,Architect/Quant,Risk/QA,6,AEG-MO-033,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-035,S15,W31-32,Cross,Cross-cutting,Release,CUTOVER,REQ-MO-OPS-001,Cross,MIG-0016,J10~J24,UI-MO-01~09,T-MO-REL-001,20영업일 ModelOps 단계 배포,runbook·feature/capability config·rollback,DISABLED→EVALUATION_ONLY→PROPOSAL_ONLY 순으로 승격하고 자동 model/order mutation은 계속 OFF,Release/SRE,Risk/Compliance,8,AEG-MO-032~034,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-036,MNT,Monthly,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,MNT,REQ-MO-EVAL-001,EVAL-MNT-01,MIG-0016,J10/J11/J17,UI-MO-02/03,T-MO-MNT-001,월간 성과·drift·false-exit·reentry 리뷰,monthly model health pack,metric version/sample/lag/drift/반대증거/기술부채와 개선 제안이 투자위 회의록에 연결,Quant/Risk,Ops/QA,4,Go-Live,MNT,SOURCE+OPERATING_EVIDENCE,P1,PLANNED +AEG-MO-037,MNT,Quarterly,VS-19/20,RunFrozenBacktest/PromoteModelVersion,BacktestingEvaluation/GovernanceAudit,MNT,REQ-MO-ROBUST-001,GOV-MNT-01,MIG-0016,J18~J23,UI-MO-04~08,T-MO-MNT-002,분기 OOS·PBO/DSR·승격/롤백 검토,quarterly independent validation pack,"복합 Gate 우회 0, 기준 미달 모델은 HOLD/REJECTED, rollback drill evidence 존재",Risk/InvestmentCommittee,IndependentValidation/Compliance,8,AEG-MO-036,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-MO-038,MNT,Release,Cross,Cross-cutting,GovernanceAudit,MNT,REQ-MO-IMPROVE-001,Cross,Cross,ModelChanged,Cross,T-MO-MNT-003,모델/정책/지표 변경 비회귀 릴리스,Model Change·Golden·Frozen OOS·Supersession,"문서/JSON/C#/DB/API/FE/test hash 정렬, 이전 계약 원문 보존, 자동승격/자동주문 OFF",Architect/Risk,Quant/QA/SRE,6,Approved Model Change,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-V12-5-001,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-001,기준선 직접/전이 첨부 Coverage와 Supersession 승인,Current source coverage+baseline transitive index,"현재 첨부 3개 SHA 일치, v12.4 내부 누적 첨부 경로 검증",PM/Architect,Compliance/QA,5,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-002,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-002,Build/Runtime/Shadow Evidence 상태모델 승인,Evidence status registry,STATIC/BUILD/DB/SHADOW/PILOT 상태의 허용 전이가 승인됨,PM/QA,Architect/Compliance,4,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-003,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-003,Decision Required 만료·aging 운영,Decision aging dashboard,"P0 decision owner/due/expiry 100%, 만료 시 Gate 자동 HOLD",PMO,Owner/QA,5,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-004,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-004,Release Evidence maker-checker 계약,Release evidence contract,"maker≠checker, 필수 artifact 누락 시 APPROVED 불가",QA/Release,Compliance/SRE,6,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-005,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,DEVEX,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-005,.NET 10 승인 runner restore/build/test,TRX+build logs,warning-as-error Release build 및 전체 test artifact,DevOps,BE/QA,10,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-006,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,DEVEX,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-006,pnpm lockfile 생성·검토·frozen build,pnpm-lock+CI logs,"lock diff 승인, typecheck/test/build/e2e 재현",FE Lead,DevOps/QA,8,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-007,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,FITNESS,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-007,Assembly/namespace/schema/API ownership test,Architecture fitness suite,"금지 의존, 직접 cross-schema write, ID 충돌 0",Architect/QA,BE/DBA,8,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-008,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,CONTRACT,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-008,OpenAPI artifact diff와 FE generated contract,OpenAPI client/Zod artifact,"DTO drift 0, runtime validation 통과",BE/FE,QA/Architect,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-009,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-009,Source/License/SLA/Timezone/Unit 계약 승인,Source contract snapshots,승인 없는 source ingestion/recommendation 0,Data Governance,Legal/QA,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-010,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-010,KRX/NYSE/NASDAQ calendar·DST·반일장 구현,Market calendar contract,휴장/반일장/DST Golden과 tradable_session 통과,Data/Quant,QA/Ops,12,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-011,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-011,총수익·상폐수익·기업행사 Golden,Golden dataset,price/quantity/cost/cash/return 대사 100%,Data/DBA,Quant/QA,12,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-012,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-012,Fee/Tax/FX valid-time schedule 확정,Cost schedule,계좌/venue/asset/side/band PIT 적용과 boundary 통과,Ops/Tax,Quant/DBA,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-013,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-013,PIT bitemporal unique/exclusion 제약 설계,DDL+ADR,중복 유효구간과 current overwrite 경로 0,DBA/Data Architect,BE/QA,8,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-014,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-014,Migration fresh/upgrade/re-run/failure rehearsal,Migration evidence,"4시나리오 통과, checksum 변경 차단, rollback/runbook",DBA/BE,QA/SRE,10,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-015,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-015,볼륨·partition·index·retention 결정,Capacity ADR,"실제 규모/쿼리계획으로 승인, 근거 없는 index 0",DBA/SRE,PM/Data,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-016,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,DQ,REQ-EXA-004,Cross,Cross,J25-J30,Cross,T-EXA-016,DQ incident·quarantine·reprocess E2E,DQ E2E evidence,"격리 데이터 추천 0, correction revision 보존",Data/QA,BE/Ops,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-017,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-017,false-exit metric definition version 확정,Metric definition,분자/분모/window/benchmark/cost/revision 승인,Quant/Risk,QA/Investment Committee,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-018,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-018,reentry capture/delay metric definition 확정,Metric definition,stage/cycle/expiry/no-fill 포함 정의 승인,Quant/Risk,QA/Data,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-019,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-019,Evidence grade와 counter-evidence 계약,Policy contract,DQ/freshness/revision/source coverage에 따른 downgrade 재현,Quant/Data,Risk/QA,8,v12.4 baseline,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-020,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-020,승격 threshold machine-readable 단일화,Promotion contract registry,"JSON/C#/문서 drift 0, 승인 version/hash 기록",Quant/BE,Risk/QA,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-021,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-021,전체 실험 registry·CSCV/PBO/DSR,Experiment registry,"숨은 시도 0, deterministic seed, independent replay",Quant/Risk,Independent Validation,16,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-022,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-022,Champion/Challenger paired comparison,Comparison artifact,"동일 data/cost/cohort/window, sample mismatch HOLD",Quant/QA,Risk/Data,12,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-023,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-023,revision impact replay와 correction link,Revision replay evidence,before/after dataset/hash와 영향 decision 100% 연결,Data/Quant,DBA/QA,12,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-024,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-024,Cost2x·missing·delisting·CA·FX stress,Stress report,모든 승인 candidate에 필수 stress artifact,Quant/QA,Risk/Data,12,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-025,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-025,ModelOperations Dispatcher fail-closed 검증,Capability tests,"기본 OFF, ShadowEvaluation false면 startup 차단",BE/Security,QA/SRE,6,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-026,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-026,Dispatch enqueue/mark gap 제거 설계,Dispatch intent/outbox ADR,crash timing에서 duplicate request/손실 0,BE/SRE,Architect/QA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-027,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-027,Model operation 상태전이 서비스,Status transition slice,"허용 transition, optimistic concurrency, append event 100%",BE Lead,QA/DBA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-028,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-028,BusinessHold/Quarantine/Poison 분류,Failure taxonomy,"blind retry 0, dead-letter/runbook 연결",BE/SRE,Data/QA,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-029,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-029,J10~J30 executor handler 계약,Operation handler registry,"Scheduler에 수식 없음, handler contract test 100%",BE/Quant,Architect/QA,18,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-030,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-030,Operation artifact store·retention,Artifact repository,content hash/retention/source request 추적 100%,BE/DBA,Compliance/SRE,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-031,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-031,Outbox/Inbox crash/replay chaos,Chaos evidence,"crash-before/after-publish, duplicate side effect 0",BE/SRE,QA/DBA,14,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-032,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-032,Projection rebuild/diff runner,Projection runner,version/watermark/stale/rebuild diff 통과,BE/Data,QA/SRE,12,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-033,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,UX,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-033,고객 투자제안 정보위계 프로토타입,UX prototype,행동/근거/반대증거/비용/불확실성/다음검토 usability 통과,UX/AX,Advisor/Compliance,10,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-034,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,UX,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-034,운용자 maker-checker 검토함 프로토타입,Ops prototype,"작성자 단독승인 0, expiry/DQ/version 경고 명확",UX/FE,Advisor/QA,10,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-035,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-035,Query key registry·Pinia 경계 lint,FE architecture rules,"server state Pinia 복제 0, invalidation contract 통과",FE Lead,QA/Architect,8,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-036,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-036,Zod request/response/error runtime validation,FE contract tests,성공/오류/nullable/version mismatch 전부 차단·표시,FE Lead,BE/QA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-037,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-010,Cross,Cross,Cross,UI-EXA,T-EXA-037,Accessibility keyboard/screen-reader test,A11y evidence,WCAG 핵심 흐름 keyboard/label/focus 통과,FE/UX,QA/Compliance,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-038,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-010,Cross,Cross,Cross,UI-EXA,T-EXA-038,Evidence/VersionSet/Readiness 공통 컴포넌트,Shared components,3회 반복+동일 의미/변경축 근거와 component tests,FE Lead,UX/QA,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P2,PLANNED +AEG-V12-5-039,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-010,Cross,Cross,Cross,Cross,T-EXA-039,OIDC/JWT provider·claims·rotation ADR,Auth ADR+E2E,"issuer/audience/claims/key rotation, fail-closed 통과",Security/BE,PM/QA,12,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-040,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-010,Cross,Cross,Cross,Cross,T-EXA-040,PII classification/redaction/Telegram test,Security evidence,log/trace/alert/prompt 고객정보 노출 0,Security/SRE,QA/Compliance,10,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-041,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-011,Cross,Cross,Cross,Cross,T-EXA-041,SBOM·license·vulnerability gate,Supply-chain evidence,NuGet/npm allowlist와 critical 취약점 0,Security/DevOps,Legal/QA,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-042,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-042,SLO/RPO/RTO·volume 승인,Operations ADR,data/recommendation/publish/reconcile/evaluation SLO 승인,SRE/PM,DBA/Ops,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-043,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-043,부하·장애·queue isolation 시험,Capacity/chaos report,research queue가 recommendation SLA 침범 0,SRE/QA,BE/DBA,14,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-044,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-044,Backup/restore·rollback drill,DR evidence,"RPO/RTO 실측, champion/fallback 복구 hash 일치",SRE/DBA,QA/Risk,12,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-045,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,QA,REQ-EXA-012,Cross,Cross,J25-J30,Cross,T-EXA-045,End-to-End Release Evidence 자동조립,Release evidence bundle,source/build/test/migration/security/rollback 누락 0,QA/Release,DevOps/Compliance,10,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-046,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,OPS,REQ-EXA-012,Cross,Cross,Cross,Cross,T-EXA-046,P1/P2 장애·정정·고객공지 Runbook,Runbook pack,Owner/Secondary/escalation/communication rehearsal,Ops/SRE,Compliance/CS,10,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-047,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,PM,REQ-EXA-012,Cross,Cross,Cross,UI-EXA,T-EXA-047,90일 Critical Path·Gate burn-down 운영,Critical path dashboard,P0 dependency/decision/evidence aging 주간 갱신,PM/PL,All Leads,8,v12.4 baseline,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-048,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-012,Cross,MIG-0017,Cross,Cross,T-EXA-048,36개월 모델·데이터·기술부채 review cadence,Operating calendar,월/분기/반기/연 review와 산출물/승인자 고정,PM/Risk,Architect/Ops,6,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-001,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ARCH,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-01,T-FE-ARCH-01,UI Vendor import boundary,ESLint/architecture rule,Feature에서 primevue/ag-grid 직접 import 0,FE Architect,QA,5,AEG-X-003,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-002,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-DS,REQ-FE-TOKEN,Cross,Cross,Cross,UI-FOUND-02,T-FE-TOKEN-01,Design token contract,tokens.css,임의 색상/spacing/금융 formatter 경로 0,UX/FE,QA,5,V13-FE-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-003,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-03,T-FE-ADAPTER-01,UiAdapter Port 정의,adapter/contracts.ts,8개 Port와 version/id 계약 고정,FE Architect,QA,5,V13-FE-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-004,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-04,T-FE-ADAPTER-02,PrimeVue/AG Grid Adapter 구현,adapter/primevue/*,Port contract test와 접근성 기본속성 통과,FE Lead,QA/UX,8,V13-FE-003,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-005,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-COMP,REQ-FE-COMP,Cross,Cross,Cross,UI-FOUND-05,T-FE-COMP-01,Ks* vendor-neutral components,shared/ui/components,Feature vendor import 없이 동작,FE Lead,QA,8,V13-FE-004,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-006,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-LAYOUT,REQ-FE-LAYOUT,Cross,Cross,Cross,UI-FOUND-06,T-FE-LAYOUT-01,AppShell/Page layouts,shared/ui/layouts,landmark/skip-link/responsive/automation boundary,UX/FE,QA/Security,7,V13-FE-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-007,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-STATE,REQ-FE-STATE,Cross,Cross,Cross,UI-FOUND-07,T-FE-STATE-01,11-state Matrix component,StandardStatePanel,각 상태의 표현/금지행동 test,UX/FE,QA,6,V13-FE-005,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-008,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-FMT,REQ-FE-FORMAT,Cross,Cross,Cross,UI-FOUND-08,T-FE-FMT-01,금융 formatter 중앙화,financial.ts,통화/비율/수량/as-of 단위 명시,FE Lead,Quant/QA,5,V13-FE-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-009,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-CONTRACT,REQ-FE-OPENAPI,Cross,Cross,Cross,UI-FOUND-09,T-FE-CONTRACT-01,OpenAPI-Zod 생성 전략 ADR,ADR-FE-CONTRACT,DTO 중복 source 0 계획 승인,BE/FE Architect,QA,5,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-010,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-BOOT,REQ-FE-BOOT,Cross,Cross,Cross,UI-FOUND-10,T-FE-SMOKE-01,PrimeVue unstyled/bootstrap 연결,main.ts,adapter 미설치 fail-fast와 smoke route,FE Lead,QA,4,V13-FE-004,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-011,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T01,Cross,Cross,Cross,UI-T01,T-FE-T01-01,T01 검색목록 화면 템플릿,screen-types/T01,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-012,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T02,Cross,Cross,Cross,UI-T02,T-FE-T02-01,T02 상세조회 화면 템플릿,screen-types/T02,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-013,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T03,Cross,Cross,Cross,UI-T03,T-FE-T03-01,T03 등록편집 화면 템플릿,screen-types/T03,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-014,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T04,Cross,Cross,Cross,UI-T04,T-FE-T04-01,T04 MasterDetail 화면 템플릿,screen-types/T04,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-015,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T05,Cross,Cross,Cross,UI-T05,T-FE-T05-01,T05 검토승인 화면 템플릿,screen-types/T05,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-016,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T06,Cross,Cross,Cross,UI-T06,T-FE-T06-01,T06 Wizard 화면 템플릿,screen-types/T06,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-017,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T07,Cross,Cross,Cross,UI-T07,T-FE-T07-01,T07 Dashboard 화면 템플릿,screen-types/T07,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-018,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T08,Cross,Cross,Cross,UI-T08,T-FE-T08-01,T08 Batch운영 화면 템플릿,screen-types/T08,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-019,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T09,Cross,Cross,Cross,UI-T09,T-FE-T09-01,T09 대사예외 화면 템플릿,screen-types/T09,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-020,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T10,Cross,Cross,Cross,UI-T10,T-FE-T10-01,T10 버전거버넌스 화면 템플릿,screen-types/T10,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-021,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-FORM,REQ-FE-FORM,Cross,Cross,Cross,UI-FORM-01,T-FE-FORM-01,vee-validate/Zod standard form,CrudFormPage,"422 field/summary, dirty, duplicate submit, If-Match",FE Lead,BE/QA,8,V13-FE-013,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-022,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-URL,REQ-FE-URL,Cross,Cross,Cross,UI-URL-01,T-FE-URL-01,Filter/page/tab URL state,router/query codec,deep-link roundtrip와 허용 filter whitelist,FE Lead,QA,6,V13-FE-011,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-023,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-GRID,REQ-FE-GRID,Cross,Cross,Cross,UI-GRID-01,T-FE-GRID-01,AG Grid server-side contract,KsDataGrid,pagination/sort/filter/column state/a11y,FE Lead,BE/QA,8,V13-FE-004,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-024,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-PERM,REQ-FE-AUTHZ,Cross,Cross,Cross,UI-AUTH-01,T-FE-AUTH-01,Permission/Capability Guard integration,AppShell/Route meta,unauthorized 존재정보 과노출 0,FE/Security,QA,7,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-025,S7,W15-16,Cross,Cross-cutting,ClientAdvisory,FE-REVIEW,REQ-ADV-REVIEW,Cross,Cross,Cross,UI-T05-ADV,T-ADV-REVIEW-UI,추천 검토 Workbench 적용,advisor/recommendations,"self-approval 0, warning ack, conflict, expiry",FE/UX,Compliance/QA,10,V13-FE-015,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-026,S8,W17-18,Cross,Cross-cutting,ClientAdvisory,FE-PUBLISH,REQ-ADV-PUBLISH,Cross,Cross,Cross,UI-T02-ADV,T-ADV-PUBLISH-UI,고객 제안 상세 적용,advice detail,승인본 hash/as-of/version만 고객 노출,FE/UX,Compliance/QA,9,V13-FE-012,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-027,S8,W17-18,Cross,Cross-cutting,DataOperations,FE-BATCH,REQ-OPS-BATCH,Cross,Cross,Cross,UI-T08-OPS,T-OPS-BATCH-UI,Data/Job Run Batch 화면 적용,ops/data-runs,JobRun/Watermark/reprocess dry-run/audit,FE/Ops,SRE/QA,9,V13-FE-018,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-028,S8,W17-18,Cross,Cross-cutting,ExecutionReconciliation,FE-RECON,REQ-RECON-UI,Cross,Cross,Cross,UI-T09-RECON,T-RECON-UI,대사·정정 화면 적용,ops/reconciliation,"before/after, maker-checker, blind overwrite 0",FE/Ops,DBA/QA,9,V13-FE-019,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-029,S11,W23-24,Cross,Cross-cutting,ModelOperations,FE-GOV,REQ-MODEL-GOV-UI,Cross,Cross,Cross,UI-T10-MODEL,T-MODEL-GOV-UI,모델 버전 비교 화면 적용,ops/model-governance,"same dataset/cost, gate pack, rollback",FE/Quant,Risk/QA,10,V13-FE-020,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-030,S11,W23-24,Cross,Cross-cutting,Evaluation,FE-DASH,REQ-EVAL-DASH,Cross,Cross,Cross,UI-T07-EVAL,T-EVAL-DASH,일평가 Scorecard 적용,research/evaluations,metric definition/sample/window/table alternative,FE/Quant,QA/UX,9,V13-FE-017,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-031,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-A11Y,REQ-FE-A11Y,Cross,Cross,Cross,UI-ALL,T-FE-A11Y-01,접근성 자동·수동 Matrix,a11y test pack,keyboard/focus/ARIA/contrast/table alternative,QA/UX,FE,8,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-032,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-VISUAL,REQ-FE-VISUAL,Cross,Cross,Cross,UI-ALL,T-FE-VISUAL-01,Visual regression baseline,Playwright screenshots,T01~T10 desktop/mobile 의미 diff 0,QA/UX,FE,8,V13-FE-011..020,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-033,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-ERROR,REQ-FE-ERROR,Cross,Cross,Cross,UI-ALL,T-FE-ERROR-01,ProblemDetails mapping,error mapper,401/403/409/422/429/503 표준행동,FE/BE,QA,7,V13-FE-007,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-034,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-IDEMP,REQ-FE-IDEMP,Cross,Cross,Cross,UI-ALL,T-FE-IDEMP-01,Idempotency retry contract,command composable,"동일 retry key 재사용, 중복 side effect 0",FE/BE,QA,7,V13-FE-021,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-035,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-FRESH,REQ-FE-FRESH,Cross,Cross,Cross,UI-ALL,T-FE-FRESH-01,Data freshness/version standard,freshness/version components,as-of/published_at/revision/stale 일관,FE/Data,QA/UX,7,V13-FE-007,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-036,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-EXPORT,REQ-FE-EXPORT,Cross,Cross,Cross,UI-ALL,T-FE-EXPORT-01,Print/export evidence contract,export footer,approved hash/as-of/version/disclaimer 포함,FE/Compliance,QA,6,V13-FE-026,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-037,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-SWAP,Cross,Cross,Cross,UI-FOUND-11,T-FE-SWAP-01,Vendor swap rehearsal,alternate fake adapter,"Feature 변경 0, contract/visual/a11y pass",FE Architect,QA/UX,8,V13-FE-004,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-038,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-PERF,REQ-FE-PERF,Cross,Cross,Cross,UI-ALL,T-FE-PERF-01,대량 화면 성능 budget,performance report,"10k row virtualized, interaction P95 승인",FE/SRE,QA,8,V13-FE-023,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-039,S14,W29-30,Cross,Cross-cutting,UIFoundation,FE-DEBT,REQ-FE-DEBT,Cross,Cross,Cross,UI-ALL,T-FE-DEBT-01,공통 컴포넌트 승격/폐기 review,component registry,owner/usage/change-axis/deprecation 기록,FE Architect,PM/QA,6,V13-FE-001..038,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-040,S15,W31-32,Cross,Cross-cutting,UIFoundation,FE-EVIDENCE,REQ-FE-REL,Cross,Cross,Cross,UI-ALL,T-FE-REL-01,FE Release Evidence assemble,release evidence,typecheck/test/e2e/a11y/visual/perf hash,QA/Release,FE/SRE,6,V13-FE-031..039,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-001,S8,W17-18,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-FREEZE,Cross,MIG-0018,J31,UI-J31,T-J31,J31 PredictionFreeze 계약·DB,prediction_freeze + registry,결과 공개 전 VersionSet hash append-only,Quant/BE,Data/QA,8,VS-09/18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-002,S8,W17-18,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-MATURITY,Cross,MIG-0018,J32,UI-J32,T-J32,J32 평가창 성숙 sweep,evaluation_window_maturity,거래세션 1/5/20/63/126/252 정확,Quant/BE,Data/QA,8,V13-MODEL-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-003,S11,W23-24,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-SELL,Cross,Cross,J33,UI-J33,T-J33,J33 매도·재진입 attribution,weekly evidence,false-exit/gain/capture/delay cost 정의 일치,Quant/Risk,Advisor/QA,9,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-004,S11,W23-24,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-CAL,Cross,Cross,J34,UI-J34,T-J34,J34 calibration/regime review,calibration evidence,coverage/Brier/logloss/regime/version,Quant/Risk,Data/IV,9,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-005,S11,W23-24,Cross,Cross-cutting,Governance,MODEL-IMPROVE,REQ-MODEL-HYP,Cross,MIG-0018,J35,UI-J35,T-J35,J35 개선가설 생성,model_improvement_hypothesis,문제/증거/변경/효과/반증/비목표/만료,Quant Lead,Risk/Architect,9,V13-MODEL-003..004,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-006,S11,W23-24,Cross,Cross-cutting,Governance,MODEL-IMPROVE,REQ-MODEL-CHAL,Cross,Cross,J36,UI-J36,T-J36,J36 Challenger 계획,experiment plan,승인 없는 train/config/activate 0,Quant Lead,IV/QA,9,V13-MODEL-005,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-007,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-VALIDATE,REQ-MODEL-IV,Cross,Cross,J37,UI-J37,T-J37,J37 독립검증 Pack,validation pack,OOS/PBO/DSR/cost2x/repro/ops 완결,IndependentValidation,Risk/Compliance,10,V13-MODEL-006,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-008,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-DEBT,REQ-MODEL-DEBT,Cross,Cross,J38,UI-J38,T-J38,J38 모델·정책 Debt review,debt decision pack,owner/expiry/remediation/exit test,Risk/Architect,Quant/PM,7,V13-MODEL-005,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-MODEL-009,S8,W17-18,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-V2,Cross,MIG-0018,J31~J38,UI-MOPS,T-SCHED-V2,model-operations.v2 contract,JSON contract,J31~J38 mode/cadence/queue/gate 검증,BE/SRE,Quant/QA,6,V13-MODEL-001..008,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-010,S8,W17-18,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-FAIL,Cross,MIG-0018,J31~J38,UI-MOPS,T-SCHED-FAIL,Schedule fail-closed migration,0018 migration,"8개 schedule enabled=false, dependency 승인 전 HOLD",DBA/BE,SRE/QA,7,V13-MODEL-009,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-011,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-CAL,Cross,Cross,J31~J34,UI-MOPS,T-SCHED-CAL,Evaluation clock/calendar tests,calendar fixtures,휴장/DST/반일장/window maturity Golden,Data/QA,Quant/BE,8,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-012,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-REV,Cross,Cross,J31~J34,UI-MOPS,T-SCHED-REV,Revision-aware replay tests,replay evidence,"과거 overwrite 0, 새 dataset/result revision",Data/BE,QA/Quant,8,V13-MODEL-001..004,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-013,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-IDEMP,Cross,Cross,J31~J38,UI-MOPS,T-SCHED-IDEMP,Job crash/retry/lease tests,fault evidence,duplicate request/artifact/hypothesis 0,BE/SRE,QA/DBA,8,V13-MODEL-009,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-014,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-SEC,REQ-MODEL-SEG,Cross,MIG-0018,J35~J37,UI-J35~J37,T-MODEL-SEG,maker-checker/segregation E2E,approval evidence,"maker != checker, expired proposal block",Risk/BE,Compliance/QA,8,V13-MODEL-005..007,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-015,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-BOUNDARY,REQ-MODEL-AUTO,Cross,Cross,J31~J38,UI-MOPS,T-MODEL-AUTO,금지 side effect architecture test,boundary tests,auto promote/config/publication/order 0,Architect/QA,Risk/Security,7,V13-MODEL-009,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-016,S14,W29-30,Cross,Cross-cutting,Governance,MODEL-OPS,REQ-MODEL-RUNBOOK,Cross,Cross,J31~J38,UI-MOPS,T-MODEL-OPS,지속 모델운영 Runbook/rollback,runbook,owner/secondary/hold/replay/rollback drill,SRE/Risk,Quant/QA,8,V13-MODEL-001..015,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-001,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-01,Cross,Cross,Cross,UI-DEV-01,T-SCAFFOLD-01,BE/FE Vertical Slice scaffolder,tools/scaffold_vertical_slice.py,dry-run/overwrite refusal/unresolved token 0,Architect/DevEx,BE/FE Lead,8,V13-FE-003,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-002,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-02,Cross,Cross,Cross,UI-DEV-02,T-SCAFFOLD-02,FastEndpoints/Dapper template,templates/vertical-slice/backend,Endpoint/Request/Response/Validator/Handler/Sql packet,BE Lead,Architect/QA,7,V13-TOOL-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-003,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-03,Cross,Cross,Cross,UI-DEV-03,T-SCAFFOLD-03,Vue/Zod/Query template,templates/vertical-slice/frontend,api/schema/query/page/test packet,FE Lead,Architect/QA,7,V13-TOOL-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-004,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-13,현재 첨부 5개 원본 보존,attachments/current_request_20260802_v13,SHA-256/size/filename byte-for-byte,PM/Architect,QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-005,S0,W1-2,Cross,Cross-cutting,Governance,TRACE,REQ-TRACE-13,Cross,Cross,Cross,Cross,T-TRACE-13,v13 Source/WBS/Trace update,docs/v13_0 CSV,"WBS 400, ID duplicate 0, J31~J38 trace",PM/QA,Architect,7,V13-TOOL-004,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-006,S14,W29-30,Cross,Cross-cutting,Quality,STATIC,REQ-STATIC-13,Cross,Cross,Cross,UI-ALL,T-STATIC-13,v13 static validator,STATIC_VALIDATION_V13_0.txt,"0 FAIL, WARN은 runtime 미실행만",QA/DevEx,Architect,8,"V13-FE-040,V13-MODEL-016",G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-007,S14,W29-30,Cross,Cross-cutting,Documentation,DOCX,REQ-DOCX-13,Cross,Cross,Cross,Cross,T-DOCX-13,v13 통합 제안서 DOCX,K-ArtSell_Aegis_v13_0*.docx,render 모든 페이지 육안 QA,PM/Consultant,QA/Architect,8,V13-TOOL-005,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-008,S15,W31-32,Cross,Cross-cutting,Release,PACKAGE,REQ-PACK-13,Cross,Cross,Cross,Cross,T-PACK-13,단일 ZIP·manifest·SHA,final package,"zip -T, manifest count/hash, 첨부 누락 0",Release/QA,PM/SRE,8,V13-TOOL-006..007,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V14-001,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-001,Cross,Cross,Cross,Cross,Cross,UI Adapter v2 계약 동결,contracts/ui/ui-adapter.v2.json,"10개 capability와 contractVersion 2.0, fail-fast 검증",FE Architect,QA/UX,5,AEG-X-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-002,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-002,Cross,Cross,Cross,Cross,Cross,Provider resolver와 환경 선택 구현,resolveUiProvider.ts·env contract,"primevue/native 외 값은 startup 실패, Feature 수정 0",FE Lead,Architect/QA,5,AEG-V14-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-003,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-003,Cross,Cross,Cross,Cross,Cross,PrimeVue+AG Grid provider v2 이관,primevue adapter v2,10 capability contract test 통과,FE Lead,QA,6,AEG-V14-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-004,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-004,Cross,Cross,Cross,Cross,Cross,Native reference provider 구현,native-accessible adapter,"공급자 교체 증명, productionEligible=false",FE Lead,UX/QA,7,AEG-V14-001,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-005,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-001,Cross,Cross,Cross,Cross,Cross,DateField 표준 래퍼 구현,KsDateField + 2 provider adapter,label/error/help/min/max 계약과 keyboard test,FE,UX/QA,4,AEG-V14-003,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-006,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-002,Cross,Cross,Cross,Cross,Cross,NumberField 표준 래퍼 구현,KsNumberField + 2 provider adapter,decimal/범위/빈값 계약과 form test,FE,Quant/QA,4,AEG-V14-003,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-007,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,FITNESS,REQ-UI-FIT-001,Cross,Cross,Cross,Cross,Cross,Vendor import architecture fitness 강화,validate_v14.py import scan,adapter 경계 외 primevue/ag-grid import 0,Architect/QA,FE Lead,5,AEG-V14-002,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-008,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-005,Cross,Cross,Cross,Cross,Cross,Adapter capability contract test,uiAdapter.contract.spec.ts,두 provider 동일 capability와 component 누락 0,QA/FE,Architect,4,"AEG-V14-003,AEG-V14-004",G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-009,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-006,Cross,Cross,Cross,Cross,Cross,공급자 교체 승인 Gate 정의,UI_PROVIDER_REPLACEMENT_GATE.md,a11y/visual/perf/state/security 증거 없이는 교체 금지,UX/Architect,QA/Security,3,AEG-V14-008,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-010,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-003,Cross,Cross,Cross,Cross,Cross,컴포넌트 버전/폐기 정책,FE_COMPONENT_CATALOGUE.csv,Stable/Experimental/Deprecated 상태와 대체일 정의,FE Lead,PM/UX,3,AEG-V14-001,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-011,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-004,Cross,Cross,Cross,Cross,Cross,표준 UI public barrel 정리,shared/ui/index.ts,"Feature import 경로 3개 이하, vendor symbol 노출 0",FE Lead,Architect,3,AEG-V14-007,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-012,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-005,Cross,Cross,Cross,Cross,Cross,Native adapter 비생산 경고/관제,adapter descriptor + startup log,운영 환경 native 선택 시 배포 Gate HOLD,FE/SRE,QA,4,AEG-V14-004,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-013,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T01,Cross,Cross,Cross,T01,T-UI-T01,T01 검색·목록 CRUD 표준 화면 구현,SearchListCrudPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-014,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T02,Cross,Cross,Cross,T02,T-UI-T02,T02 상세·증거 조회 표준 화면 구현,DetailReadPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-015,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T03,Cross,Cross,Cross,T03,T-UI-T03,T03 등록·편집 Form 표준 화면 구현,EditFormPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-016,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T04,Cross,Cross,Cross,T04,T-UI-T04,T04 Master-Detail 표준 화면 구현,MasterDetailCrudPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-017,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T05,Cross,Cross,Cross,T05,T-UI-T05,T05 maker-checker 검토 표준 화면 구현,ApprovalWorkbenchPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-018,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T06,Cross,Cross,Cross,T06,T-UI-T06,T06 단계 Wizard 표준 화면 구현,StepWizardPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-019,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T07,Cross,Cross,Cross,T07,T-UI-T07,T07 Dashboard/Scorecard 표준 화면 구현,ScorecardDashboardPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-020,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T08,Cross,Cross,Cross,T08,T-UI-T08,T08 Batch/Data Ops 표준 화면 구현,BatchOperationsPageV2.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-021,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T09,Cross,Cross,Cross,T09,T-UI-T09,T09 대사·예외 표준 화면 구현,ReconciliationExceptionPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-022,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T10,Cross,Cross,Cross,T10,T-UI-T10,T10 버전·거버넌스 표준 화면 구현,VersionGovernancePage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-023,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-STATE-001,Cross,Cross,Cross,Cross,Cross,표준 화면 상태 union 계약,screenContract.ts,READY/LOADING/EMPTY/WARN/ERROR/권한/충돌/만료/처리 상태 명시,FE Architect,UX/QA,4,AEG-V14-013,MVP-B,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-024,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-STATE-002,Cross,Cross,Cross,Cross,Cross,StandardScreenBoundary 상태 통합,StandardScreenBoundary.vue,모든 v2 화면이 동일 상태 경계 사용,FE,QA/UX,4,AEG-V14-023,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-025,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-001,Cross,Cross,Cross,Cross,Cross,목록 화면 scaffold 템플릿,CrudListPage.vue.template,"vendor import 0, v2 화면 계약 사용",FE,QA,3,AEG-V14-013,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-026,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-002,Cross,Cross,Cross,Cross,Cross,Form 화면 scaffold 템플릿,CrudFormPage.vue.template,Zod/If-Match/Idempotency TODO marker 명시,FE,QA,3,AEG-V14-015,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-027,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-003,Cross,Cross,Cross,Cross,Cross,상세 화면 scaffold 템플릿,CrudDetailPage.vue.template,"EvidenceVersionSet 필수, mutable evidence 금지",FE,Compliance/QA,3,AEG-V14-014,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-028,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-004,Cross,Cross,Cross,Cross,Cross,검토 화면 scaffold 템플릿,CrudReviewPage.vue.template,maker-checker 3영역과 경고 확인 slot,FE,Compliance/QA,3,AEG-V14-017,MVP-B,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-029,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,DEVEX,REQ-UI-SCAFFOLD-005,Cross,Cross,Cross,Cross,Cross,UI 화면 scaffolder 구현,tools/scaffold_ui_screen.py,"kind 4종 생성, overwrite 보호, vendor import 0",FE/DevEx,QA,5,AEG-V14-025..028,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-030,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-DEEPLINK-001,Cross,Cross,Cross,Cross,Cross,목록/선택/탭 URL 재현 계약,route state guideline + tests,새로고침/공유 링크에서 동일 화면 상태,FE/UX,QA,5,AEG-V14-013,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-031,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-CONFLICT-001,Cross,Cross,Cross,Cross,Cross,Form 충돌/dirty guard 표준화,If-Match conflict flow,"409/412에서 silent overwrite 0, 최신 재조회",FE,BE/QA,6,AEG-V14-015,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-032,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-EXPORT-001,Cross,Cross,Cross,Cross,Cross,목록 Export 권한/감사 표준,export command template,서버 권한·범위·감사 없이 client export 0,FE/BE,Security/QA,5,AEG-V14-013,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-033,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,A11Y,REQ-UI-A11Y-001,Cross,Cross,Cross,Cross,Cross,10개 화면 키보드/landmark 검증,Playwright accessibility scenarios,"키보드 trap 0, heading/landmark 순서 PASS",QA/UX,FE,8,AEG-V14-013..022,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-034,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,VISUAL,REQ-UI-VIS-001,Cross,Cross,Cross,Cross,Cross,공급자별 visual regression 기준,baseline screenshots,prime/native 주요 상태 diff 승인,QA/UX,FE,7,AEG-V14-008,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-035,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,PERF,REQ-UI-PERF-001,Cross,Cross,Cross,Cross,Cross,AG Grid server-side volume 기준,grid performance evidence,"10k/100k 행은 server-side, UI long task 기준 충족",FE/SRE,QA,7,AEG-V14-003,G6-A,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-036,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-ERROR-001,Cross,Cross,Cross,Cross,Cross,ProblemDetails 사용자 메시지 매핑,problem code catalogue,"원문 stack/secret 노출 0, 재시도 가능성 구분",FE/Security,BE/QA,5,AEG-V14-024,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-037,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-EVIDENCE-001,Cross,Cross,Cross,Cross,Cross,EvidenceVersionSet 표준 노출,evidence panel contract,추천/모델/평가 화면에서 dataset/model/config/code/contract 표시,FE/Compliance,QA,5,"AEG-V14-014,AEG-V14-022",G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-038,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-STALENESS-001,Cross,Cross,Cross,Cross,Cross,Read Model stale 표시/재빌드 UX,freshness badge + rebuild status,"stale 숨김 0, watermark/projection version 조회",FE/Data,SRE/QA,5,"AEG-V14-016,AEG-V14-020",G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-039,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,TEST,REQ-UI-CONTRACT-001,Cross,Cross,Cross,Cross,Cross,화면 catalogue 정적 계약 테스트,catalogue.spec.ts,"ID/컴포넌트 중복 0, evidence/anti-pattern 비어있음 0",QA/FE,Architect,3,AEG-V14-013..022,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-040,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,DOC,REQ-UI-DOC-001,Cross,Cross,Cross,Cross,Cross,UI 사용·금지 패턴 현장 가이드,02_FRONTEND_ADAPTER_STANDARD.md,신규 Feature PR 체크리스트와 예제 4종,FE Lead/UX,Architect/QA,4,AEG-V14-029,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-041,S6,W13-14,VS-20,PromoteModelVersion,ModelOperations,DOMAIN,REQ-MODEL-CYCLE-001,Cross,Cross,J31-J39,Cross,T-MODEL-CYCLE-001,ModelFeedbackCycle 상태기계,ModelFeedbackCycle.cs,"금지 전이 예외, revision/transition 이력",BE/Quant,Risk/QA,7,AEG-X-001,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-042,S6,W13-14,VS-20,PromoteModelVersion,ModelOperations,DOMAIN,REQ-MODEL-CYCLE-002,Cross,Cross,J31-J39,Cross,Cross,Feedback plan 9단계 계약,ModelFeedbackPlan.cs,"ACTIVATE=MANUAL_ONLY, 자동승격/주문 금지",Quant/Risk,BE/Compliance,5,AEG-V14-041,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-043,S6,W13-14,VS-20,PromoteModelVersion,ModelOperations,DOMAIN,REQ-MODEL-HYP-001,Cross,Cross,J35/J36,Cross,Cross,개선 가설·반증 계약,ModelImprovementHypothesis.cs,support/counter/falsification/unknown/decision required 검증,Quant/BE,IndependentValidation/QA,6,AEG-V14-042,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-044,S6,W13-14,Cross,Cross-cutting,ModelOperations,DB,REQ-MODEL-CYCLE-003,Cross,MIG-0019,J39,Cross,Cross,Feedback cycle 물리모델,MIG-0019 model_feedback_cycle,상태/revision/closed 불변조건,DBA/BE,Quant/QA,6,AEG-V14-041,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-045,S6,W13-14,Cross,Cross-cutting,ModelOperations,DB,REQ-MODEL-CYCLE-004,Cross,MIG-0019,J39,Cross,Cross,Feedback transition append-only 원장,model_feedback_transition + trigger,"update/delete 차단, sequence/content hash unique",DBA/Compliance,BE/QA,5,AEG-V14-044,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-046,S6,W13-14,Cross,Cross-cutting,ModelOperations,DB,REQ-MODEL-HYP-002,Cross,MIG-0019,J35,Cross,Cross,가설 supporting/counter evidence 정규화,model_hypothesis_evidence,side/classification/reference/hash 보존,DBA/Quant,Risk/QA,5,AEG-V14-043,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-047,S7,W15-16,Cross,Cross-cutting,ModelOperations,GOV,REQ-MODEL-ACT-001,Cross,MIG-0019,MANUAL_ONLY,Cross,Cross,Human-only activation decision,model_activation_decision,"actor_type HUMAN_CHANGE_APPROVAL, maker!=checker",Risk/Compliance,DBA/BE,6,AEG-V14-045,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-048,S7,W15-16,Cross,Cross-cutting,ModelOperations,API,REQ-MODEL-CYCLE-005,MOD-LOOP-01,Cross,J31-J39,Cross,Cross,Feedback loop 조회 Endpoint,GET /model-operations/feedback-loop,"권한 5역할, 자동화 경계 응답",BE,Security/QA,4,AEG-V14-042,G4,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-049,S7,W15-16,Cross,Cross-cutting,ModelOperations,JOB,REQ-MODEL-CYCLE-006,Cross,MIG-0019,J39,Cross,Cross,J39 FeedbackCycleIntegrityAudit 등록,registry+schedule contract,"disabled by default, q-control, G4",BE/SRE,Compliance/QA,4,AEG-V14-044,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-050,S7,W15-16,Cross,Cross-cutting,ModelOperations,JOB,REQ-MODEL-CYCLE-007,Cross,Cross,J39,Cross,Cross,Stuck cycle aging 정책,aging policy contract,"stage별 SLA 초과는 alert/HOLD, 자동 전이 0",Risk/SRE,Quant/QA,5,AEG-V14-049,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-051,S7,W15-16,Cross,Cross-cutting,ModelOperations,TEST,REQ-MODEL-CYCLE-008,Cross,Cross,Cross,Cross,T-MODEL-CYCLE-001,Feedback cycle 상태전이 unit test,ModelFeedbackCycleTests,정상경로/skip validation/manual activation boundary PASS,QA/BE,Quant/Risk,5,AEG-V14-041..043,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-052,S8,W17-18,Cross,Cross-cutting,ModelOperations,TEST,REQ-MODEL-HYP-003,Cross,Cross,Cross,Cross,T-MODEL-HYP-001,가설 분류·만료 unit test,ModelImprovementHypothesisTests,UNKNOWN/DECISION_REQUIRED/반대증거 누락 차단,QA/Quant,BE,4,AEG-V14-043,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-053,S8,W17-18,Cross,Cross-cutting,ModelOperations,REPO,REQ-MODEL-CYCLE-009,Cross,MIG-0019,J39,Cross,Cross,Feedback cycle repository/optimistic update,Dapper repository,"expected revision 불일치 409, transition same transaction",BE/DBA,QA,8,AEG-V14-044..045,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-054,S8,W17-18,Cross,Cross-cutting,ModelOperations,OUTBOX,REQ-MODEL-CYCLE-010,Cross,Cross,J39,Cross,Cross,Cycle transition Outbox 연결,ModelFeedbackTransitioned event,"aggregate update+transition+outbox 원자성, 중복 0",BE/SRE,QA/DBA,7,AEG-V14-053,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-055,S8,W17-18,Cross,Cross-cutting,ModelOperations,METRIC,REQ-MODEL-METRIC-001,Cross,Cross,J10/J11/J33/J34,Cross,Cross,Metric definition version Gate,metric definition registry validation,정의/분모/창/cohort 버전 없으면 평가 HOLD,Quant/Data,Risk/QA,6,AEG-V14-042,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-056,S8,W17-18,Cross,Cross-cutting,ModelOperations,OOS,REQ-MODEL-OOS-001,Cross,Cross,J18/J19/J20,Cross,Cross,동일 dataset/cost/cohort 비교 강제,comparison context validator,champion/challenger 비교 context mismatch 0,Quant/BE,IndependentValidation/QA,7,AEG-V14-055,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-057,S9,W19-20,Cross,Cross-cutting,ModelOperations,GOV,REQ-MODEL-GATE-001,Cross,Cross,J22/J37,Cross,Cross,Promotion Gate evidence completeness,promotion gate pack validator,252일/2국면/false-exit/reentry/PBO/DSR/double-cost/ops 증거,Risk/Quant,Compliance/QA,8,AEG-V14-055..056,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-058,S9,W19-20,Cross,Cross-cutting,ModelOperations,RUNBOOK,REQ-MODEL-ROLLBACK-001,Cross,Cross,J23,Cross,Cross,모델 rollback drill 증거 표준,runbook+drill evidence,"분기 drill, RTO, current/fallback hash, 주문 영향 0",SRE/Risk,QA/BE,6,AEG-V14-047,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-059,S9,W19-20,Cross,Cross-cutting,ModelOperations,UI,REQ-MODEL-UI-001,Cross,Cross,J31-J39,T10,Cross,모델 피드백 거버넌스 화면,T10 VersionGovernancePage feature,cycle/stage/evidence/hypothesis/validation/approval/rollback 표시,FE/Risk,BE/QA,8,AEG-V14-048,G4,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-060,S9,W19-20,Cross,Cross-cutting,ModelOperations,OBS,REQ-MODEL-OBS-001,Cross,Cross,J39,Cross,Cross,피드백 루프 metric/alert,cycle_age/hold/evidence_gap/illegal_transition,"Owner/Secondary, alert severity, runbook 링크",SRE/Quant,Compliance/QA,6,AEG-V14-049..050,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-061,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,API,REQ-API-PROBLEM-001,Cross,Cross,Cross,Cross,Cross,ProblemDetails 오류코드 registry,contracts/api/problem-codes.v1.json,401/403/409/412/422/429/503 의미와 retryable 고정,BE Architect,FE/Security/QA,5,AEG-X-003,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-062,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,API,REQ-API-CONC-001,Cross,Cross,Cross,Cross,Cross,If-Match/ETag concurrency building block,VersionToken contract,mutable aggregate silent overwrite 0,BE,FE/QA,6,AEG-V14-061,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-063,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,CMD,REQ-CMD-IDEMP-001,Cross,Cross,Cross,Cross,Cross,Idempotency receipt 표준화,command receipt table/handler,"같은 key 같은 result hash, 다른 payload 409",BE/DBA,QA/SRE,8,AEG-X-006,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-064,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,DATA,REQ-DATA-PIT-001,Cross,Cross,Cross,Cross,Cross,PIT context reader 공통 계약,IApprovedPitContextReader,published_at/tradable_session/version set 누락 시 HOLD,Data/BE,Quant/QA,7,AEG-X-009,G1,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-065,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,READMODEL,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,Projection metadata 표준,ProjectionVersion/Watermark/Stale/Rebuild,모든 Read Model Owner/version/watermark 보유,BE/Data,SRE/QA,7,AEG-V14-038,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-066,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,OUTBOX,REQ-OUTBOX-001,Cross,Cross,Cross,Cross,Cross,Outbox/Inbox chaos matrix,crash-before/after publish/replay tests,"side effect 누락/중복 0, dead-letter/runbook",BE/SRE,QA/DBA,10,AEG-X-006,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-067,S11,W23-24,Cross,Cross-cutting,DataPlatform,DQ,REQ-DQ-001,Cross,Cross,Cross,Cross,Cross,Golden corporate action/상폐/총수익 dataset,golden data pack,분할/배당/합병/상폐/통화/거래일 케이스 재현,Data/Quant,DBA/QA,10,AEG-X-009,G1,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-068,S11,W23-24,Cross,Cross-cutting,DataPlatform,SOURCE,REQ-SOURCE-001,Cross,Cross,J25,Cross,Cross,Source contract drift fail-closed,J25 evidence and hold,license/schema/SLA/timezone/unit 변경 시 추천 HOLD,Data Governance,Adapter/QA,7,AEG-X-009,G1,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-069,S11,W23-24,Cross,Cross-cutting,BackendPlatform,CONTRACT,REQ-OPENAPI-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact→FE schema Gate,generated client/schema diff,DTO drift와 수동 중복 타입 0,BE/FE,QA,8,AEG-V14-061,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-070,S11,W23-24,Cross,Cross-cutting,BackendPlatform,ARCH,REQ-VS-TEMPLATE-001,Cross,Cross,Cross,Cross,Cross,Command/Query Vertical Slice 템플릿 분리,templates/dotnet v14,정책/I-O/transaction/query read model 책임 분리,Architect/BE,QA,6,AEG-X-003,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-071,S12,W25-26,Cross,Cross-cutting,Quality,CI,REQ-CI-V14-001,Cross,Cross,Cross,Cross,Cross,v14 정적 validator CI 적용,tools/validate_v14.py,JSON/CSV/adapter/screen/model/migration/attachment PASS,QA/DevOps,Architect,6,AEG-V14-007,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-072,S12,W25-26,Cross,Cross-cutting,Quality,FE-CI,REQ-CI-FE-001,Cross,Cross,Cross,Cross,Cross,pnpm lock 생성·검토·frozen CI,pnpm-lock.yaml,승인 네트워크에서 typecheck/test/build 재현,FE/DevOps,Security/QA,5,AEG-V14-071,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-073,S12,W25-26,Cross,Cross-cutting,Quality,BE-CI,REQ-CI-BE-001,Cross,Cross,Cross,Cross,Cross,.NET 10 restore/build/test 실증,CI TRX/artifacts,warning policy 포함 Release build/test PASS,DevOps/BE,QA,5,AEG-V14-071,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-074,S12,W25-26,Cross,Cross-cutting,Quality,DB-CI,REQ-CI-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/rerun/failure rehearsal,migration evidence,0019 포함 4시나리오/checksum mutation 차단,DBA/DevOps,BE/QA,7,AEG-V14-073,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-075,S13,W27-28,Cross,Cross-cutting,Quality,E2E,REQ-E2E-UI-001,Cross,Cross,Cross,Cross,Cross,10개 화면 타입 Playwright smoke,screen contract E2E,prime provider에서 route/state/keyboard evidence,QA/FE,UX,10,AEG-V14-033,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-076,S13,W27-28,Cross,Cross-cutting,Security,SUPPLY,REQ-SBOM-001,Cross,Cross,Cross,Cross,Cross,NuGet/npm SBOM·license/vulnerability Gate,SBOM artifacts,허용목록/critical 취약점/AG Grid license 검증,Security/DevOps,Architect/QA,7,AEG-V14-072..073,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-077,S13,W27-28,Cross,Cross-cutting,Operations,SLO,REQ-SLO-001,Cross,Cross,Cross,Cross,Cross,UI/API/Batch SLO·RPO·RTO 승인,SLO ADR + load/DR evidence,volume 가정과 alert/runbook/owner 승인,SRE/PM,DBA/QA,8,"AEG-V14-035,AEG-V14-060",G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-078,S14,W29-30,Cross,Cross-cutting,Quality,RELEASE,REQ-REL-EVID-001,Cross,Cross,Cross,Cross,Cross,v14 Release Evidence 조립,release evidence bundle,source/build/test/migration/security/rollback hash 연결,QA/Release,Compliance/SRE,6,AEG-V14-071..077,G6,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-079,S14,W29-30,Cross,Cross-cutting,Governance,PACKAGE,REQ-PKG-001,Cross,Cross,Cross,Cross,Cross,재귀 ZIP 방지 패키징,package builder/manifest,"output zip·historical generated zip 자동 제외, source archive는 Full만",DevOps/PM,QA,5,AEG-X-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-080,S15,W31-32,Cross,Cross-cutting,Governance,SIGNOFF,REQ-GO-001,Cross,Cross,Cross,Cross,Cross,운영·준법·투자위 통합 Go/No-Go,signed gate matrix,자동주문 OFF·research status·미검증 항목 명시,Steering Committee,All Leads,8,AEG-V14-078..079,G6,SOURCE+V14_DELTA,P0,PLANNED +AEG-V15-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-01,Cross,Cross,Cross,Cross,T-V15-GOV-01,기준선·첨부 Coverage Matrix 재승인,v15 Version Coverage/Supersession Registry,"v10·v12.1·v14·v15 상태와 SHA 100%, 중복/누락 0",PM/Architect,Compliance/QA,3,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-002,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-02,Cross,Cross,Cross,Cross,T-V15-GOV-02,DECISION_REQUIRED 만료·Owner 통제,Decision expiry report,기한 경과 미결정이 Gate에서 자동 차단,PM/Architect,Compliance/QA,5,AEG-V15-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-003,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-03,Cross,Cross,Cross,Cross,T-V15-GOV-03,UI/모델 운영 계약 ID Registry,Contract ID registry,UI/Job/Policy/Metric/DB ID 충돌 0,PM/Architect,Compliance/QA,5,AEG-V15-002,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-004,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-04,Cross,Cross,Cross,Cross,T-V15-GOV-04,Source/Assumption/Unknown PR 증거 표준,AI change evidence schema,PR마다 근거 분류와 실제 실행명령 존재,PM/Architect,Compliance/QA,6,AEG-V15-003,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-005,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-05,Cross,Cross,Cross,Cross,T-V15-GOV-05,자동주문·KIS·자동승격 금지 설정검사,Capability fail-closed policy,모든 환경에서 금지 capability true 구성 0,PM/Architect,Compliance/QA,5,AEG-V15-004,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-006,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-06,Cross,Cross,Cross,Cross,T-V15-GOV-06,요구사항 삭제·대체 영향분석,Supersession impact report,삭제 전 Traceability와 승인자 기록,PM/Architect,Compliance/QA,6,AEG-V15-005,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-007,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-07,Cross,Cross,Cross,Cross,T-V15-GOV-07,WBS/부채/Decision 월간 정합성 검사,Governance consistency report,Owner/Gate/Exit evidence 공란 0,PM/Architect,Compliance/QA,4,AEG-V15-006,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-008,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-08,Cross,Cross,Cross,Cross,T-V15-GOV-08,Steering Go/No-Go evidence pack,Steering pack,"근거 없는 완료 주장 0, 승인/보류 사유 기록",PM/Architect,Compliance/QA,4,AEG-V15-007,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-009,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-01,Cross,MIG-0020,Cross,UI-V15-FEA-01,T-V15-FEA-01,UI Adapter contract 3.0 확정,ui-adapter.v3.json,14 capability·정규화 prop/event·fail-fast 승인,FE Lead,UX/QA,3,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-010,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-02,Cross,MIG-0020,Cross,UI-V15-FEA-02,T-V15-FEA-02,PrimeVue/AG Grid provider v3 구현,Prime provider,"Feature vendor import 0, contract test 통과",FE Lead,UX/QA,5,AEG-V15-009,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-011,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-03,Cross,MIG-0020,Cross,UI-V15-FEA-03,T-V15-FEA-03,Native reference provider v3 구현,Native provider,동일 contract·keyboard baseline 재현,FE Lead,UX/QA,5,AEG-V15-010,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-012,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-04,Cross,MIG-0020,Cross,UI-V15-FEA-04,T-V15-FEA-04,MultiSelect/InlineMessage/Paginator/Tabs 래퍼,Ks component set,업무 화면이 vendor prop을 알지 않음,FE Lead,UX/QA,6,AEG-V15-011,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-013,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-05,Cross,MIG-0020,Cross,UI-V15-FEA-05,T-V15-FEA-05,Grid server query contract,UiGridQuery contract,page/sort/filter/search 재현·PII column mask,FE Lead,UX/QA,5,AEG-V15-012,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-014,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-06,Cross,MIG-0020,Cross,UI-V15-FEA-06,T-V15-FEA-06,Provider compatibility harness,Adapter conformance tests,두 provider에 동일 상태·event matrix,FE Lead,UX/QA,6,AEG-V15-013,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-015,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-07,Cross,MIG-0020,Cross,UI-V15-FEA-07,T-V15-FEA-07,UI contract release evidence 원장,governance.ui_contract_release,승인 provider/version/hash 이력 불변,FE Lead,UX/QA,4,AEG-V15-014,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-016,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-08,Cross,MIG-0020,Cross,UI-V15-FEA-08,T-V15-FEA-08,Adapter migration runbook,ui-provider-switch.md,rollback·visual/a11y/perf Gate 명시,FE Lead,UX/QA,4,AEG-V15-015,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-017,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-01,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-01,T-V15-CRUD-01,CRUD resource contract 표준화,CrudResourceContract,Query/Form/Permission/Response parser 책임 분리,FE Lead,UX/BE,3,AEG-X-001,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-018,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-02,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-02,T-V15-CRUD-02,URL query codec 구현,queryCodec.ts,deep-link round-trip·invalid input fail-closed,FE Lead,UX/BE,5,AEG-V15-017,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-019,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-03,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-03,T-V15-CRUD-03,CRUD list state composable,useCrudListState.ts,Pinia 서버캐시 금지·paging reset 일관,FE Lead,UX/BE,5,AEG-V15-018,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-020,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-04,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-04,T-V15-CRUD-04,표준 CRUD 목록 화면,StandardCrudListPage.vue,state/paging/evidence/aside slot 계약,FE Lead,UX/BE,6,AEG-V15-019,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-021,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-05,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-05,T-V15-CRUD-05,표준 CRUD Form 화면,StandardCrudFormPage.vue,Zod·dirty·readonly·submit 경계,FE Lead,UX/BE,5,AEG-V15-020,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-022,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-06,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-06,T-V15-CRUD-06,Optimistic concurrency UX,409/412 conflict flow,"silent overwrite 0, reload/compare/reapply 제공",FE Lead,UX/BE,6,AEG-V15-021,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-023,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-07,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-07,T-V15-CRUD-07,Idempotency UX,command submission guard,"중복 클릭 side effect 0, correlation 표시",FE Lead,UX/BE,4,AEG-V15-022,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-024,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-08,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-08,T-V15-CRUD-08,CRUD scaffold v3,scaffold_ui_screen.py delta,생성 결과 contract/lint/test baseline 충족,FE Lead,UX/BE,4,AEG-V15-023,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-025,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-01,Cross,Cross,Cross,UI-V15-LAY-01,T-V15-LAY-01,CrudWorkspaceLayout 구현,CrudWorkspaceLayout.vue,toolbar/main/aside/action 순서·responsive,UX Lead,FE/QA,3,AEG-X-001,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-026,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-02,Cross,Cross,Cross,UI-V15-LAY-02,T-V15-LAY-02,OperationsConsoleLayout 구현,OperationsConsoleLayout.vue,JobRun/watermark/owner/재처리 표면화,UX Lead,FE/QA,5,AEG-V15-025,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-027,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-03,Cross,Cross,Cross,UI-V15-LAY-03,T-V15-LAY-03,Page evidence header 고도화,Evidence header,asOf/version/projection/watermark/stale 표시,UX Lead,FE/QA,5,AEG-V15-026,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-028,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-04,Cross,Cross,Cross,UI-V15-LAY-04,T-V15-LAY-04,화면 상태 Matrix 회귀,T01~T10 state matrix,13 상태 누락 0,UX Lead,FE/QA,6,AEG-V15-027,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-029,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-05,Cross,Cross,Cross,UI-V15-LAY-05,T-V15-LAY-05,접근성 keyboard/focus 계약,a11y acceptance,skip/focus/dialog/grid/tab 순서 검증,UX Lead,FE/QA,5,AEG-V15-028,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-030,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-06,Cross,Cross,Cross,UI-V15-LAY-06,T-V15-LAY-06,민감정보 column 표시정책,PII grid policy,마스킹·export 권한·audit,UX Lead,FE/QA,6,AEG-V15-029,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-031,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-07,Cross,Cross,Cross,UI-V15-LAY-07,T-V15-LAY-07,반응형 운영화면 기준,responsive evidence,1024/1440/1920/모바일 업무순서 유지,UX Lead,FE/QA,4,AEG-V15-030,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-032,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-08,Cross,Cross,Cross,UI-V15-LAY-08,T-V15-LAY-08,디자인 token 변경 Gate,semantic token contract,기능 CSS 직접 색상/간격 drift 0,UX Lead,FE/QA,4,AEG-V15-031,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-033,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-01,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-01,Schedule anchor 계산기,ScheduleOccurrencePlanner,dispatch 지연이 cadence drift를 만들지 않음,BE Lead,SRE/QA,3,AEG-X-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-034,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-02,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-02,Catch-up policy 구현,LATEST/SKIP/ALL_LIMIT,장애 복구 후 job storm 0,BE Lead,SRE/QA,5,AEG-V15-033,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-035,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-03,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-03,Due operation 계약 확장,DueModelOperation v15,scheduledFor/catchUp/maxCatchUp 추적,BE Lead,SRE/QA,5,AEG-V15-034,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-036,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-04,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-04,Dispatcher nextDue CAS,schedule repository,lease 상실·중복 advance 0,BE Lead,SRE/QA,6,AEG-V15-035,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-037,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-05,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-05,BusinessHold와 기술실패 분리,execution state machine,"blind retry 0, reason/holdUntil 기록",BE Lead,SRE/QA,5,AEG-V15-036,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-038,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-06,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-06,Schedule heartbeat/aging,execution heartbeat,stuck request 탐지와 Owner alert,BE Lead,SRE/QA,6,AEG-V15-037,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-039,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-07,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-07,시장 timezone/calendar 계약,calendar/timezone contract,UTC 저장·시장세션 계산·DST 테스트,BE Lead,SRE/QA,4,AEG-V15-038,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-040,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-08,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-08,Scheduler chaos rehearsal,dispatcher chaos tests,enqueue/mark 실패·재시작 중복 side effect 0,BE Lead,SRE/QA,4,AEG-V15-039,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-041,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-01,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-01,1/5/20/63/126/252 window planner,EvaluationWindowPlanner,calendar day가 아닌 거래세션 사용,Quant Lead,Data/QA,3,AEG-X-001,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-042,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-02,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-02,Prediction window 불변원장,prediction_evaluation_window,중복 window 0·revision overwrite 0,Quant Lead,Data/QA,5,AEG-V15-041,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-043,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-03,V15-EVA-API,MIG-0020,J40,Cross,T-V15-EVA-03,J40 Window integrity audit,J40,missing/duplicate/late/calendar drift 보고,Quant Lead,Data/QA,5,AEG-V15-042,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-044,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-04,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-04,Metric definition version 계약,MetricDefinitionVersion,분자/분모/창/집계/threshold hash 고정,Quant Lead,Data/QA,6,AEG-V15-043,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-045,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-05,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-05,Cohort definition 원장,metric_cohort_definition,표본 선택 변경 이력·최소표본 계약,Quant Lead,Data/QA,5,AEG-V15-044,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-046,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-06,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-06,Outcome maturity SLA,window backlog SLO,지연·결측·상폐/총수익 hold 구분,Quant Lead,Data/QA,6,AEG-V15-045,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-047,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-07,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-07,Revision re-evaluation 영향분석,affected evidence index,원천 revision 영향 결정 추적,Quant Lead,Data/QA,4,AEG-V15-046,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-048,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-08,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-08,Scorecard reproducibility pack,metric evidence bundle,동일 VersionSet·definition 결과 동일,Quant Lead,Data/QA,4,AEG-V15-047,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-049,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-01,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-01,Feedback transition 시간 단조성,ModelFeedbackCycle,과거시각 전이 거부·ClosedAt 보존,Risk/Quant,IndependentValidation/Compliance,3,AEG-X-001,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-050,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-02,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-02,Operation execution 상태기계,ModelOperationExecution,허용전이·terminal 상태 테스트,Risk/Quant,IndependentValidation/Compliance,5,AEG-V15-049,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-051,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-03,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-03,Hypothesis counter-evidence 필수화,hypothesis contract,반대증거/반증기준 공란 승인 0,Risk/Quant,IndependentValidation/Compliance,5,AEG-V15-050,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-052,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-04,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-04,Challenger experiment registry,experiment manifest,시도 전체·seed·비용·stop 기준 기록,Risk/Quant,IndependentValidation/Compliance,6,AEG-V15-051,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-053,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-05,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-05,Promotion threshold VersionSet,promotion gate contract,임계값 문서/YAML/C# drift 0,Risk/Quant,IndependentValidation/Compliance,5,AEG-V15-052,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-054,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-06,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-06,독립검증 업무분장 검사,segregation test,개발자=최종승인자 0,Risk/Quant,IndependentValidation/Compliance,6,AEG-V15-053,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-055,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-07,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-07,Human activation evidence,model activation decision,maker≠checker·change ticket·rollback,Risk/Quant,IndependentValidation/Compliance,4,AEG-V15-054,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-056,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-08,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-08,자동 모델 변경 금지 테스트,automation boundary tests,scheduler의 lifecycle/config mutation 0,Risk/Quant,IndependentValidation/Compliance,4,AEG-V15-055,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-057,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-01,Cross,MIG-0020,Cross,Cross,T-V15-DAT-01,PIT 필드·단위 contract lint,PIT schema lint,published/revision/tradable/unit 누락 0,Data Architect,DBA/Quant,3,AEG-X-001,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-058,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-02,Cross,MIG-0020,Cross,Cross,T-V15-DAT-02,Raw→Canonical→DQ→Dataset lineage,lineage graph,추천 Evidence까지 hash chain 100%,Data Architect,DBA/Quant,5,AEG-V15-057,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-059,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-03,Cross,MIG-0020,Cross,Cross,T-V15-DAT-03,기업행사·상폐·총수익 Golden 확장,Golden dataset,가격/수량/원가/배당 대사,Data Architect,DBA/Quant,5,AEG-V15-058,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-060,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-04,Cross,MIG-0020,Cross,Cross,T-V15-DAT-04,valid-time overlap 방지,DB constraints,Fee/Tax/FX/Policy 유효구간 중첩 0,Data Architect,DBA/Quant,6,AEG-V15-059,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-061,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-05,Cross,MIG-0020,Cross,Cross,T-V15-DAT-05,Read Model projection contract,ProjectionVersion/Watermark,stale 표시·rebuild/diff,Data Architect,DBA/Quant,5,AEG-V15-060,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-062,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-06,Cross,MIG-0020,Cross,Cross,T-V15-DAT-06,불변원장 correction replay,correction E2E,update/delete 없이 reversal/correction,Data Architect,DBA/Quant,6,AEG-V15-061,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-063,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-07,Cross,MIG-0020,Cross,Cross,T-V15-DAT-07,대량 ingestion 성능·격리,load/DQ test,"SLA 내 적재, 결함 row 격리",Data Architect,DBA/Quant,4,AEG-V15-062,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-064,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-08,Cross,MIG-0020,Cross,Cross,T-V15-DAT-08,DB migration 0020 4시나리오,DbUp rehearsal,fresh/upgrade/rerun/failure 복구,Data Architect,DBA/Quant,4,AEG-V15-063,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-065,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-01,Cross,Cross,Cross,Cross,T-V15-ALG-01,매도 우선순위 회귀,SellPolicyChain Golden,impairment/survival 하위점수 상쇄 0,Quant Lead,BE/QA,3,AEG-X-001,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-066,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-02,Cross,Cross,Cross,Cross,T-V15-ALG-02,Lot 비율·Portfolio weight 단위 테스트,semantic unit tests,비율/절대비중 혼용 0,Quant Lead,BE/QA,5,AEG-V15-065,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-067,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-03,Cross,Cross,Cross,Cross,T-V15-ALG-03,Dynamic floor 단조성 검증,monotonic property,가격 상승 시 승인된 floor 역행 0,Quant Lead,BE/QA,5,AEG-V15-066,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-068,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-04,Cross,Cross,Cross,Cross,T-V15-ALG-04,재진입 window/calendar 통합,Reentry calendar tests,10세션/126세션·중복 stage 0,Quant Lead,BE/QA,6,AEG-V15-067,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-069,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-05,Cross,Cross,Cross,Cross,T-V15-ALG-05,비용후 기회우위 하단 계약,Opportunity edge tests,Fee/Tax/FX/slippage PIT·lower bound>0,Quant Lead,BE/QA,5,AEG-V15-068,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-070,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-06,Cross,Cross,Cross,Cross,T-V15-ALG-06,모델 calibration/regime 진단,evaluation report,P10/P50/P90·Brier/log loss·regime,Quant Lead,BE/QA,6,AEG-V15-069,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-071,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-07,Cross,Cross,Cross,Cross,T-V15-ALG-07,false-exit/gain-capture 정의 고정,metric definition,연 2% 기준의 분모·창 명확,Quant Lead,BE/QA,4,AEG-V15-070,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-072,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-08,Cross,Cross,Cross,Cross,T-V15-ALG-08,PBO/DSR 전체 실험 원장,experiment registry,선택된 승자만 기록하는 편향 0,Quant Lead,BE/QA,4,AEG-V15-071,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-073,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-01,Cross,Cross,Cross,Cross,T-V15-QA-01,Architecture fitness v15,architecture tests,vendor import/direct DB/DateTime.Now/ID drift 0,QA Lead,FE/BE/Data,3,AEG-X-001,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-074,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-02,Cross,Cross,Cross,Cross,T-V15-QA-02,UI adapter contract tests,Vitest contract suite,14 capability·event semantics,QA Lead,FE/BE/Data,5,AEG-V15-073,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-075,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-03,Cross,Cross,Cross,Cross,T-V15-QA-03,CRUD URL/state tests,Vitest,deep-link·paging·conflict·idempotency,QA Lead,FE/BE/Data,5,AEG-V15-074,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-076,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-04,Cross,Cross,Cross,Cross,T-V15-QA-04,Playwright T01/T05/T08/T10,E2E suite,고객/승인/배치/거버넌스 핵심 경로,QA Lead,FE/BE/Data,6,AEG-V15-075,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-077,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-05,Cross,Cross,Cross,Cross,T-V15-QA-05,Accessibility automated+manual,a11y evidence,WCAG target·keyboard/focus/label,QA Lead,FE/BE/Data,5,AEG-V15-076,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-078,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-06,Cross,Cross,Cross,Cross,T-V15-QA-06,Scheduler unit/integration/chaos,xUnit/Postgres,anchor/catchup/lease/hold/restart,QA Lead,FE/BE/Data,6,AEG-V15-077,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-079,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-07,Cross,Cross,Cross,Cross,T-V15-QA-07,Migration invariant tests,DataTests,append-only/unique/window/overlap,QA Lead,FE/BE/Data,4,AEG-V15-078,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-080,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-08,Cross,Cross,Cross,Cross,T-V15-QA-08,Release regression matrix,Release Evidence,실행 명령·artifact hash·owner,QA Lead,FE/BE/Data,4,AEG-V15-079,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-081,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-01,Cross,Cross,Cross,UI-V15-OPS-01,T-V15-OPS-01,OTel model operation spans,trace contract,schedule/request/window/evidence correlation,SRE Lead,Security/DBA,3,AEG-X-001,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-082,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-02,Cross,Cross,Cross,UI-V15-OPS-02,T-V15-OPS-02,Scheduler/feedback metrics,metric catalogue,lag/hold/stuck/duplicate/hash mismatch,SRE Lead,Security/DBA,5,AEG-V15-081,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-083,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-03,Cross,Cross,Cross,UI-V15-OPS-03,T-V15-OPS-03,Telegram PII redaction,notification tests,고객/토큰/내부점수 노출 0,SRE Lead,Security/DBA,5,AEG-V15-082,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-084,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-04,Cross,Cross,Cross,UI-V15-OPS-04,T-V15-OPS-04,Kill-switch drill,runbook evidence,evaluation/recommendation/publish 단계별 차단,SRE Lead,Security/DBA,6,AEG-V15-083,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-085,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-05,Cross,Cross,Cross,UI-V15-OPS-05,T-V15-OPS-05,Backup/restore/reconcile drill,DR evidence,RPO/RTO·원장/Projection 대사,SRE Lead,Security/DBA,5,AEG-V15-084,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-086,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-06,Cross,Cross,Cross,UI-V15-OPS-06,T-V15-OPS-06,SBOM/license/vulnerability Gate,supply-chain report,NuGet/npm allowlist·critical 0,SRE Lead,Security/DBA,6,AEG-V15-085,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-087,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-07,Cross,Cross,Cross,UI-V15-OPS-07,T-V15-OPS-07,Capacity assumptions/soak,capacity report,portfolio/security/client/job volume 승인,SRE Lead,Security/DBA,4,AEG-V15-086,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-088,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-08,Cross,Cross,Cross,UI-V15-OPS-08,T-V15-OPS-08,Production auth ADR,OIDC/JWT E2E,fail-closed·key rotation·claim/RBAC,SRE Lead,Security/DBA,4,AEG-V15-087,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-089,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-01,Cross,Cross,Cross,Cross,T-V15-PKG-01,v15 통합 제안서,v15 DOCX,render·a11y·내용/표 검토,Release Manager,PM/QA,3,AEG-X-001,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-090,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-02,Cross,Cross,Cross,Cross,T-V15-PKG-02,상세 WBS 576건,WBS master,공란/중복 0·Gate 연결,Release Manager,PM/QA,5,AEG-V15-089,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-091,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-03,Cross,Cross,Cross,Cross,T-V15-PKG-03,기술부채 124건,Debt register,P0 owner/exit/gate 100%,Release Manager,PM/QA,5,AEG-V15-090,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-092,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-04,Cross,Cross,Cross,Cross,T-V15-PKG-04,Traceability 101행,Traceability matrix,REQ→Test→WBS→Gate 연결,Release Manager,PM/QA,6,AEG-V15-091,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-093,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-05,Cross,Cross,Cross,Cross,T-V15-PKG-05,Core_NoLegacy 패키지,Core ZIP,과거 ZIP 제외·ZIP test PASS,Release Manager,PM/QA,5,AEG-V15-092,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-094,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-06,Cross,Cross,Cross,Cross,T-V15-PKG-06,Full_With_Attachments 패키지,Full ZIP,현재 원본 4개 SHA 보존,Release Manager,PM/QA,6,AEG-V15-093,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-095,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-07,Cross,Cross,Cross,Cross,T-V15-PKG-07,Manifest/SHA 생성,manifest/checksum,모든 파일 hash·자기참조 제외,Release Manager,PM/QA,4,AEG-V15-094,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-096,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-08,Cross,Cross,Cross,Cross,T-V15-PKG-08,배포 README/검증 진실성,distribution guide,미실행 검증을 PASS로 표현 0,Release Manager,PM/QA,4,AEG-V15-095,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED diff --git a/docs/v15_0/DECISION_LOG.csv b/docs/v15_0/DECISION_LOG.csv new file mode 100644 index 00000000..9d91167e --- /dev/null +++ b/docs/v15_0/DECISION_LOG.csv @@ -0,0 +1,81 @@ +Decision_ID,Status,Decision_or_Question,Basis,Owner,Gate,Approved_or_Due +DEC-001,APPROVED,투자자문형→Shadow→Pilot; 자동주문 OFF,v10.0·v12.2,운영사/준법,ALL,2026-08-01 +DEC-002,APPROVED,알고리즘 상태 RESEARCH_CANDIDATE_NOT_PRODUCTION,v10.0·v12.2,투자위/리스크,G4,2026-08-01 +DEC-003,APPROVED,Modular Monolith+Vertical Slice; 조기 microservice 금지,v10.0,Architect,G0,2026-08-01 +DEC-004,APPROVED,PIT/revision/hash/lineage와 immutable Evidence 우선,v10.0·v12.2,Data/Quant,G1,2026-08-01 +DEC-005,APPROVED,매도 우선순위: impairment→survival→floor→concentration→opportunity→reentry,v12.2,투자위/Quant,G2,2026-08-01 +DEC-006,APPROVED,SellRatioOfLot와 portfolio weight/core floor 단위 분리,v12.0 Delta,Quant/Architect,G2-A,2026-08-02 +DEC-007,DECISION_REQUIRED,생산 OIDC/JWT 공급자와 claims mapping,자료 미지원,Security/PM,G5,미정 +DEC-008,DECISION_REQUIRED,PIT 총수익·상폐·컨센서스 공급원/라이선스,자료 미지원,Data Governance/Legal,G1,미정 +DEC-009,DECISION_REQUIRED,계좌·시장·venue별 Fee/Tax/FX schedule,자료 미지원,Ops/Tax/Quant,G1,미정 +DEC-010,DECISION_REQUIRED,SLO/RPO/RTO와 운영 용량 기준,자료 미지원,SRE/PM,G5,미정 +DEC-011,DECISION_REQUIRED,고객/계좌/상품 규모와 성능 테스트 볼륨,자료 미지원,PM/SRE,G6-A,미정 +DEC-012,DECISION_REQUIRED,한국 최신 PIT 데이터 확보 범위와 재검증 일정,자료 미지원,Quant/Data,G4,미정 +DEC-013,APPROVED,Lot-relative sell ratio uses CurrentLotPortfolioWeight; target security weight subtracts LotWeight×Ratio,v10/v12.1 unit-separation intent and data-consistency correction,Quant/Architect,G2-A,2026-08-02 +DEC-014,APPROVED,Ordered policy trace is immutable internal decision evidence; customer view receives curated explanation,Explainability and audit delta,Quant/Compliance/Architect,G2-A/G3,2026-08-02 +DEC-015,APPROVED,v12.2 preserves all six current-session attachments byte-for-byte and treats v12.1 as baseline,Non-regression source control,PM/Architect,G0,2026-08-02 +DEC-016,DECISION_REQUIRED,Select production OpenAPI client generation tool and ownership,Toolchain/network approval required,BE/FE/DevOps,G3,Before S11 +DEC-017,DECISION_REQUIRED,Approve .NET/PostgreSQL/pnpm runner image digests,Real build and migration evidence prerequisite,DevOps/Security,G0,Before coding start +DEC-063,DECISION_REQUIRED,자본바닥/생존 매도가 same-direction cooldown을 우회하는가,v10 우선순위는 명확하나 cooldown 예외는 첨부 근거에 명시되지 않음,투자위/리스크/Quant,G2,Before VS-10 production path +DEC-064,DECISION_REQUIRED,Hard impairment 80~100%를 어떤 증거등급/심각도로 매핑하는가,v10 범위는 80~100%; 현재 구현은 보수적으로 100%,투자위/준법/Quant,G2,Before policy parameter change +DEC-065,APPROVED,v12.2 이전 ambiguous weight context는 추정 사용하지 않고 semantics v2로 재구축한다,PIT·재현성·DECISION_REQUIRED fail-closed 원칙,Data Architect/Quant/Architect,G2-A,2026-08-02 +DEC-066,APPROVED,정책·이벤트·성과지표 계약은 버전과 hash를 가진 machine-readable artifact로 관리한다,"DOC-NR-05/06, v12.1 TD-021/032",Architect/Quant/Risk,G2/G3,2026-08-02 +DEC-022,APPROVED,스케줄러 자동화는 EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY로 제한,v10 자동주문 OFF·v12.1 연구후보 경계,Risk/Architect,ALL,2026-08-02 +DEC-023,APPROVED,모델·정책·임계값 자동 승격/변경/롤백 금지; human maker-checker 필수,모델 거버넌스와 독립검증 Gate,InvestmentCommittee/Compliance,G4/G5,2026-08-02 +DEC-024,APPROVED,15분 Dispatcher + DB schedule/lease + dynamic queue 패턴,시장별 job 난립과 DST hard-code 방지,Architect/SRE,G3,2026-08-02 +DEC-025,APPROVED,모델 평가 요청 시 승인 Dataset/Model/Config/Code/Contract VersionSet 동결,재현성·이력성·PIT 원칙,Data/Quant,G3,2026-08-02 +DEC-026,APPROVED,성과지표는 분자/분모/평가창/집계/비용을 버전 계약으로 관리,63일 연구 통계와 연간 목표 혼용 방지,Quant/Risk,G4,2026-08-02 +DEC-027,APPROVED,일/주/월/분기 평가와 revision-trigger replay를 분리,운영 부하와 증거 적시성 균형,Quant/SRE,G3/G4,2026-08-02 +DEC-028,APPROVED,J21은 개선 제안만 생성하며 코드·모델·설정 파일을 수정하지 않음,바이브코딩·홀루시네이션·과최적화 통제,Architect/Quant,G4,2026-08-02 +DEC-029,APPROVED,"J10/J11/J17 일, J18/J24 주, J19/J21/J22 월, J20/J23 분기 기본 cadence",v10 J10/J11 및 유지보수 운영리듬 계승,Risk/Ops,G3/G5,2026-08-02 +DEC-030,DECISION_REQUIRED,평가 evidence retention/partition/archive/legal hold 기간,첨부 근거에 구체 보존기간 없음,Compliance/DBA,G5/G6-A,G5 전 +DEC-031,DECISION_REQUIRED,Data/Feature/Prediction/Calibration drift metric·sample·threshold,첨부 근거는 drift 필요성만 제시하고 수치 계약 미제공,Quant/Risk,G4,J17 구현 전 +DEC-032,DECISION_REQUIRED,False-exit adverse-regret의 정확한 가격·benchmark·window 정의,첨부의 연 2% 목표와 연구 CSV를 직접 동일시할 수 없음,InvestmentCommittee/Quant,G4,J10 생산화 전 +DEC-033,APPROVED,"ModelOperations Dispatcher 기본 OFF, ShadowEvaluation과 별도 승인 필요",v10 안전경계+v12.5,Architect/Security,G0,2026-08-02 +DEC-034,APPROVED,"J10~J30은 평가·제안·훈련만 허용, 모델/주문 자동변경 금지",v12.4+v12.5,Risk/Compliance,ALL,2026-08-02 +DEC-035,APPROVED,v12.4 원본 ZIP을 immutable baseline으로 보존하고 current attachment를 직접 보존,비회귀,PM/QA,G0,2026-08-02 +DEC-036,DECISION_REQUIRED,생산 OIDC/JWT provider와 claims/key rotation,첨부 미결,Security/PM,G5,D+10 +DEC-037,DECISION_REQUIRED,총수익·상폐·컨센서스 source/license/SLA,첨부 미결,Data Governance/Legal,G1,D+10 +DEC-038,DECISION_REQUIRED,KRX/NYSE/NASDAQ market calendar source와 운영 owner,v12.4 TD-042,Data/Ops,G1,D+10 +DEC-039,DECISION_REQUIRED,Fee/Tax/FX account/venue/asset schedule,첨부 미결,Ops/Tax/Quant,G1,D+10 +DEC-040,DECISION_REQUIRED,false-exit/reentry metric denominator/window,metric governance,Risk/Quant,G4,D+30 +DEC-041,DECISION_REQUIRED,SLO/RPO/RTO와 volume assumptions,운영 미결,SRE/PM,G5,D+20 +DEC-042,APPROVED,288 baseline WBS 보존+48 execution assurance Delta,v12.5,PM/Architect,G0,2026-08-02 +DEC-043,APPROVED,직접 runtime evidence 없는 상태를 IMPLEMENTATION_TEMPLATE로 표시,신뢰성,QA/Compliance,ALL,2026-08-02 +DEC-044,DECISION_REQUIRED,투자일임형 검토 개시 시점과 독립승인 체계,252일 Shadow 이후,운영사/법무/준법,G6,Shadow+252 +DEC-045,APPROVED,Feature는 UI vendor를 직접 import하지 않고 adapter port만 사용,v10 Ch42 + v13 design,Architect/FE,G0,2026-08-02 +DEC-046,APPROVED,T01~T10을 표준 CRUD/업무화면 타입으로 사용,v10 Ch41 + v13 delta,UX/FE/QA,MVP-A,2026-08-02 +DEC-047,APPROVED,J31~J38은 evidence/proposal only이며 기본 OFF,v10/v12.5 automation boundary,Risk/Ops,ALL,2026-08-02 +DEC-048,APPROVED,모델 개선은 가설→Challenger 계획→독립검증→maker-checker 순서,model governance,Investment Committee/Risk,G4,2026-08-02 +DEC-049,DECISION_REQUIRED,승인된 PrimeVue theme와 디자인 토큰 시각 기준,runtime visual evidence missing,UX/Brand/FE,G0,D6 +DEC-050,DECISION_REQUIRED,OpenAPI→TypeScript/Zod 생성 도구와 버전 정책,tool not selected,BE/FE Architect,G3,S2 +DEC-051,DECISION_REQUIRED,Visual regression 승인 브라우저·viewport·허용차,runtime environment missing,QA/UX,MVP-B,S6 +DEC-052,DECISION_REQUIRED,모델 개선가설 보존기간·법무/준법 열람 범위,retention policy missing,Compliance/Risk,G4,S10 +DEC-053,APPROVED,UI Adapter contractVersion 2.0과 10 capability를 표준으로 사용,v14 Delta,FE Architect,G0,2026-08-02 +DEC-054,APPROVED,"PrimeVue+AG Grid는 생산 후보, Native는 교체 검증용 reference만",과유불급·교체가능성,FE/UX,G3,2026-08-02 +DEC-055,APPROVED,Feature의 PrimeVue/AG Grid 직접 import 금지,DIP·기술부채 통제,Architect,G0,2026-08-02 +DEC-056,APPROVED,T01~T10 화면 ID와 v2 컴포넌트를 안정 계약으로 관리,표준화·재현성,UX/FE,MVP-B,2026-08-02 +DEC-057,APPROVED,지속 모델 루프는 평가·제안까지만 자동화하고 activation은 수동 change approval,고객보호·모델리스크,Risk/Compliance,G4,2026-08-02 +DEC-058,APPROVED,J39 FeedbackCycleIntegrityAudit는 기본 disabled,fail-closed,SRE/Risk,G4,2026-08-02 +DEC-059,APPROVED,Feedback transition·activation decision은 append-only evidence로 보존,감사·이력성,DBA/Compliance,G4,2026-08-02 +DEC-060,APPROVED,과거 생성 ZIP은 Core에 포함하지 않고 Full 패키지의 원본 첨부에만 포함,재귀 ZIP 방지,PM/DevOps,G0,2026-08-02 +DEC-061,DECISION_REQUIRED,UI 접근성 자동화 도구와 visual regression 저장소 선택,v14 잔여 위험,UX/QA,G3,D10 +DEC-062,APPROVED,실행하지 않은 .NET/pnpm/PostgreSQL 검증은 PASS로 표기하지 않음,홀루시네이션 통제,QA/Architect,ALL,2026-08-02 +DEC-067,APPROVED,UI Adapter contract 3.0은 14개 정규화 capability를 사용하고 Feature vendor import를 금지,v10 화면계약+v14 delta,Architect/FE,G0,2026-08-02 +DEC-068,APPROVED,Native provider는 계약 검증용 reference이며 생산 적격으로 간주하지 않음,과유불급,Architect/QA,G0,2026-08-02 +DEC-069,APPROVED,"Server state=TanStack Query, form=vee-validate/Zod, URL=vue-router, Pinia는 session/UI preference만",v12.1 FE 기준,FE Lead,MVP-A,2026-08-02 +DEC-070,APPROVED,CRUD 화면은 Idempotency-Key·If-Match·ProblemDetails·asOf/projection metadata를 표준 계약으로 사용,v10 화면/API 기준,BE/FE,G3,2026-08-02 +DEC-071,APPROVED,Schedule 다음 시각은 dispatch 시각이 아니라 scheduledFor anchor에서 계산,재현성·drift 방지,BE/SRE,G3,2026-08-02 +DEC-072,APPROVED,"장애 catch-up 기본은 LATEST_ONLY, 무제한 replay 금지",운영 안정성,SRE/Quant,G3,2026-08-02 +DEC-073,APPROVED,평가창은 1/5/20/63/126/252 거래세션이며 calendar day 사용 금지,v10 일평가,Quant/Data,G4,2026-08-02 +DEC-074,APPROVED,Metric과 Cohort 정의를 version/hash로 동결,KPI drift 방지,Risk/Quant,G4,2026-08-02 +DEC-075,APPROVED,J40은 EvaluationWindowIntegrityAudit이며 기본 disabled,자동화 경계,Compliance/QA,G4,2026-08-02 +DEC-076,APPROVED,BusinessHold는 기술 실패와 분리하고 blind retry하지 않음,v10 배치 기준,Ops/SRE,G3,2026-08-02 +DEC-077,APPROVED,ModelFeedback transition은 시간 단조성과 immutable transition evidence를 보존,재현성·감사,Risk/BE,G4,2026-08-02 +DEC-078,APPROVED,UI provider 교체는 contract/a11y/visual/perf/release evidence 승인 후 수행,교체 안정성,UX/QA,G3,2026-08-02 +DEC-079,DECISION_REQUIRED,생산 시장 Calendar/Timezone source와 휴장 정정 SLA,Source 미확정,Data Governance,G1,D10 +DEC-080,DECISION_REQUIRED,Metric/Cohort 최초 승인 정의와 최소표본,정량 기준 미확정,Quant/Risk,G4,S8 +DEC-081,DECISION_REQUIRED,CRUD 삭제를 soft delete/reversal 중 무엇으로 적용할지 도메인별 결정,업무 규칙 미확정,Product/DBA,MVP-A,S6 +DEC-082,DECISION_REQUIRED,PrimeVue/AG Grid Community 사용범위·라이선스 승인,법무 검토 필요,Legal/FE,G5,S10 +DEC-083,DECISION_REQUIRED,Scheduler enqueue/mark 원자성 구현을 dispatch outbox로 승격할지,구현 선택,Architect/SRE,G3,S3 +DEC-084,DECISION_REQUIRED,성능시험 고객/계좌/상품/Job 볼륨,용량 가정 미확정,PM/SRE,G6-A,S12 diff --git a/docs/v15_0/DOCX_A11Y_V15_0.json b/docs/v15_0/DOCX_A11Y_V15_0.json new file mode 100644 index 00000000..7ed73761 --- /dev/null +++ b/docs/v15_0/DOCX_A11Y_V15_0.json @@ -0,0 +1,9 @@ +{ + "file": "/mnt/data/KArtSell_Aegis_v15_0_execution_hardened/docs/v15_0/K-ArtSell_Aegis_v15_0_실행완결성_표준UI_지속모델운영_통합고도화_제안서.docx", + "counts": { + "high": 0, + "medium": 0, + "low": 0 + }, + "findings": [] +} diff --git a/docs/v15_0/FE_COMPONENT_CATALOGUE.csv b/docs/v15_0/FE_COMPONENT_CATALOGUE.csv new file mode 100644 index 00000000..e07a3daf --- /dev/null +++ b/docs/v15_0/FE_COMPONENT_CATALOGUE.csv @@ -0,0 +1,44 @@ +ID,Component,Layer,Props_or_Type,Events_or_Slots,Accessibility,Required_Tests,Vendor_Boundary +C-001,AppShellLayout,Layout,product/environment/automation boundary,navigation/header/footer,skip-link/landmarks,route/auth E2E,Adapter-neutral +C-002,PageLayout,Layout,title/status/asOf/version,actions/summary/filters/aside/footer,h1/meta landmarks,responsive/state,Adapter-neutral +C-003,ReviewWorkbenchLayout,Layout,queue/detail/decision,slots,named regions/keyboard order,maker-checker E2E,Adapter-neutral +C-004,FormPageLayout,Layout,form/preview,submit,label/focus order,dirty/validation,Adapter-neutral +C-005,DashboardLayout,Layout,kpi/primary/secondary/alerts,slots,table alternative required,no-data/partial,Adapter-neutral +C-010,KsButton,Standard,label/severity/type/loading,click,button semantics,disabled/loading,Button port +C-011,KsTextField,Standard,label/error/help/model,update/blur,label/describedby/invalid,422/a11y,TextField port +C-012,KsSelect,Standard,label/options/error/model,update/blur,label/options/invalid,boundary/a11y,Select port +C-013,KsDataGrid,Standard,rows/columns/loading/selection,rowSelected,grid keyboard contract,large rows/filter,DataGrid port +C-014,KsDialog,Standard,visible/title/modal,update visible,focus trap/vendor contract,escape/modal,Dialog port +C-015,KsStatusTag,Standard,value/severity/iconLabel,-,text+icon not color only,severity matrix,StatusTag port +C-020,StandardStatePanel,Standard,11-state/title/message/trace,retry,aria-busy/status,state matrix,Adapter-neutral +T-01,CrudListPage,ScreenType,T01,slots,list semantics,filter URL/empty/auth,Layout composition +T-02,CrudDetailPage,ScreenType,T02,slots,version/as-of landmarks,published/expired/auth,Layout composition +T-03,CrudFormPage,ScreenType,T03,submit/slots,form error focus,dirty/conflict/idempotency,Layout composition +T-05,CrudReviewPage,ScreenType,T05,queue/detail/decision,keyboard review order,segregation/expiry/conflict,Layout composition +T-08,BatchOperationsPage,ScreenType,T08,timeline/records/reprocess/runbook,progress/status,retry/replay/duplicate,Layout composition +V14-C-001,KsDateField,Standard Component,modelValue/label/min/max/error,update/blur,label-describedby/date keyboard,adapter parity/form,Provider port +V14-C-002,KsNumberField,Standard Component,modelValue/min/max/fraction/error,update/blur,label/error/value semantics,decimal/boundary/form,Provider port +V14-C-003,NativeUiAdapter,Reference Provider,10 capabilities,provider install,HTML native keyboard baseline,contract/browser/a11y,Adapter implementation only +V14-C-004,UiProviderResolver,Bootstrap,VITE_UI_ADAPTER,install,fail-fast unsupported provider,configuration/contract,Composition root only +V14-C-005,SearchListCrudPage,Screen Type,T01,named slots,검색·목록 CRUD landmarks/state,T01 state/E2E,Adapter-neutral +V14-C-006,DetailReadPage,Screen Type,T02,named slots,상세·증거 조회 landmarks/state,T02 state/E2E,Adapter-neutral +V14-C-007,EditFormPage,Screen Type,T03,named slots,등록·편집 Form landmarks/state,T03 state/E2E,Adapter-neutral +V14-C-008,MasterDetailCrudPage,Screen Type,T04,named slots,Master-Detail landmarks/state,T04 state/E2E,Adapter-neutral +V14-C-009,ApprovalWorkbenchPage,Screen Type,T05,named slots,maker-checker 검토 landmarks/state,T05 state/E2E,Adapter-neutral +V14-C-010,StepWizardPage,Screen Type,T06,named slots,단계 Wizard landmarks/state,T06 state/E2E,Adapter-neutral +V14-C-011,ScorecardDashboardPage,Screen Type,T07,named slots,Dashboard/Scorecard landmarks/state,T07 state/E2E,Adapter-neutral +V14-C-012,BatchOperationsPageV2,Screen Type,T08,named slots,Batch/Data Ops landmarks/state,T08 state/E2E,Adapter-neutral +V14-C-013,ReconciliationExceptionPage,Screen Type,T09,named slots,대사·예외 landmarks/state,T09 state/E2E,Adapter-neutral +V14-C-014,VersionGovernancePage,Screen Type,T10,named slots,버전·거버넌스 landmarks/state,T10 state/E2E,Adapter-neutral +C-032,KsMultiSelect,Adapter facade,modelValue/options/label/disabled,update:modelValue,label/multiple selection,contract/a11y,Provider v3 +C-033,KsInlineMessage,Adapter facade,severity/title/message/dismissible,dismiss,alert/status semantics,contract/a11y,Provider v3 +C-034,KsPaginator,Adapter facade,page/pageSize/total/pageSizes,pageChange,nav label/buttons,paging tests,Provider v3 +C-035,KsTabs,Adapter facade,modelValue/items/ariaLabel,update:modelValue/default slot,tablist/tab/tabpanel,keyboard/a11y,Provider v3 +C-036,CrudWorkspaceLayout,Layout,asideWidth/dense,toolbar/aside/actions,task order/landmarks,responsive,Adapter-neutral +C-037,OperationsConsoleLayout,Layout,title/runStatus/watermark/owner,runs/actions/footer,operations context,responsive/E2E,Adapter-neutral +C-038,StandardCrudListPage,Screen facade,rows/columns/page/evidence/state,rowSelected/pageChange/retry,state/grid/pager,Vitest/Playwright,Adapter-neutral +C-039,StandardCrudFormPage,Screen facade,state/dirty/readonly/version,submit/cancel/retry,form/status,Vitest/Playwright,Adapter-neutral +C-040,CrudResourceContract,Contract,query/form/parser/permissions,-,N/A,type/contract,Adapter-neutral +C-041,useCrudListState,Composable,query/selected/dirty,replace/page/search/reset,N/A,unit,Adapter-neutral +C-042,QueryStateBoundary v3,Boundary,13 states/correlation,retry,alert/status/focus,state matrix,Ks facade +C-043,UiAdapterContract v3,Contract,14 capabilities/provider metadata,fail-fast,WCAG target,conformance,Provider boundary diff --git a/docs/v15_0/JOB_CATALOGUE.csv b/docs/v15_0/JOB_CATALOGUE.csv new file mode 100644 index 00000000..d991efb7 --- /dev/null +++ b/docs/v15_0/JOB_CATALOGUE.csv @@ -0,0 +1,27 @@ +Job_ID,Name,Cadence,Trigger_or_Precondition,Queue,Automation_Mode,Frozen_Context,Output,Primary_Owner,Secondary,Gate,Failure_Mode,Status +J10,OutcomeEvaluationRun,DAILY,market session closed and total-return data complete,q-evaluation,EVALUATION_ONLY,Dataset/Model/Config/Code/Contract,1/5/20/63/126/252 OutcomeObservation,Quant/Ops,Data/QA,G3,BUSINESS_HOLD on missing PIT/TR,TEMPLATE +J11,DailyScorecardBuild,DAILY,J10 due windows complete,q-evaluation,EVALUATION_ONLY,Metric definition/cohort versions,daily scorecard and alerts,Quant/Ops,Risk/SRE,G3,HOLD on sample/lag/definition mismatch,TEMPLATE +J17,DriftDetectionRun,DAILY,approved baseline and minimum sample available,q-evaluation,EVALUATION_ONLY,baseline manifest/version,data/feature/prediction/calibration drift,Quant/Risk,Data/SRE,G4,HOLD only; no automatic model change,TEMPLATE +J18,ChampionChallengerEvaluation,WEEKLY,same frozen dataset/cost/cohort available,q-evaluation,EVALUATION_ONLY,paired model VersionSets,paired comparison with confidence intervals,Quant/Risk,IndependentValidation/QA,G4,QUARANTINE on cohort mismatch,TEMPLATE +J19,FrozenOosBacktest,MONTHLY,dataset rights/hash/seed/environment manifest approved,q-research,EVALUATION_ONLY,frozen research manifest,walk-forward OOS artifacts,Quant/Data,QA/Risk,G4,FAIL artifact retained,TEMPLATE +J20,RobustnessPboDsrRun,QUARTERLY,complete experiment registry and OOS outputs,q-research,EVALUATION_ONLY,experiment registry/version,PBO/DSR/stability/cost2x report,Quant/Risk,IndependentValidation,G4,HOLD on incomplete attempt ledger,TEMPLATE +J21,ModelImprovementProposalBuild,MONTHLY,scorecard/drift/attribution/debt evidence complete,q-research,PROPOSAL_ONLY,all cited evidence hashes,review-required improvement proposals,Quant Lead,Risk/Architect,G4,no code/config/model mutation,TEMPLATE +J22,PromotionEvidenceReviewBuild,MONTHLY,candidate requests review and all gates calculated,q-control,PROPOSAL_ONLY,promotion-gate v1 evidence bundle,maker-checker review packet,Risk/InvestmentCommittee,Compliance/QA,G4,PENDING/HOLD; no activation,TEMPLATE +J23,ModelRollbackDrill,QUARTERLY,approved champion/fallback manifests and runbook,q-control,DRILL_ONLY,champion/fallback VersionSets,RTO/RPO and restore evidence,SRE/Risk,Module Owner/QA,G5,no real order submission,TEMPLATE +J24,DataRevisionRevalidation,WEEKLY+EVENT,approved revision lineage and impact index,q-backfill,EVALUATION_ONLY,before/after dataset versions,replay impact and correction proposal,Data/Quant,DBA/QA,G3,no overwrite; correction evidence only,TEMPLATE +J25,SourceContractDriftCheck,DAILY,approved source schema/license/SLA snapshot,q-evaluation,EVALUATION_ONLY,Source contract hash/version,schema/license/SLA drift evidence,Data Governance,Adapter Owner/QA,G1,BUSINESS_HOLD on unapproved change,TEMPLATE_DISABLED +J26,MarketCalendarCompletenessCheck,DAILY,approved market calendar and EOD completeness,q-market-data,EVALUATION_ONLY,Calendar/source/version,tradable-session readiness,Data/Ops,Quant/QA,G1,HOLD on holiday/DST/source mismatch,TEMPLATE_DISABLED +J27,EvidenceChainAudit,DAILY,decision/outcome/audit hash chain available,q-control,EVALUATION_ONLY,Evidence VersionSet,missing-link/mutation evidence,Compliance/QA,Data/BE,G3,QUARANTINE on hash mismatch,TEMPLATE_DISABLED +J28,ProjectionFreshnessCheck,DAILY,projection contract and watermark,q-evaluation,EVALUATION_ONLY,Projection version/watermark,staleness/rebuild diff,BE/Data,SRE/QA,G3,HOLD on stale projection,TEMPLATE_DISABLED +J29,CapacitySlaTrend,WEEKLY,approved SLO and volume assumptions,q-control,EVALUATION_ONLY,SLO/capacity version,capacity trend decision packet,SRE/PM,DBA/Module Owner,G5,WARN/HOLD on saturation,TEMPLATE_DISABLED +J30,ReleaseEvidenceAssemble,EVENT_DRIVEN,release candidate artifacts complete,q-control,PROPOSAL_ONLY,Source/build/test/migration/security/rollback hash,review-required release bundle,QA/Release Manager,Compliance/SRE,G6,HOLD on any missing artifact,TEMPLATE_DISABLED +J31,PredictionFreezeRun,DAILY,approved market cutoff before outcomes,q-evaluation,EVALUATION_ONLY,Dataset/Model/Config/Code/Contract,immutable prediction freeze,Quant/Data,QA/Risk,G3,HOLD on PIT/model context,TEMPLATE_DISABLED +J32,OutcomeMaturitySweep,DAILY,market session close and total-return/calendar complete,q-evaluation,EVALUATION_ONLY,Calendar/Dataset/Metric contract,matured 1/5/20/63/126/252 requests,Quant/Ops,Data/QA,G3,HOLD on TR/calendar gap,TEMPLATE_DISABLED +J33,SellReentryAttributionReview,WEEKLY,matured sell/reentry windows,q-evaluation,EVALUATION_ONLY,Metric/cohort/benchmark/cost versions,false-exit/gain/capture/delay evidence,Quant/Risk,Advisor/QA,G4,HOLD on metric definition mismatch,TEMPLATE_DISABLED +J34,CalibrationRegimeReview,WEEKLY,versioned prediction/cohort/regime evidence,q-evaluation,EVALUATION_ONLY,Prediction/Cohort/Regime versions,calibration/coverage/drift/regime report,Quant/Risk,Data/IV,G4,HOLD on insufficient sample,TEMPLATE_DISABLED +J35,ImprovementHypothesisBuild,MONTHLY,scorecard/attribution/drift/debt current,q-research,PROPOSAL_ONLY,Evidence and debt versions,review-required falsifiable hypothesis,Quant Lead,Risk/Architect,G4,NO OUTPUT on incomplete evidence,TEMPLATE_DISABLED +J36,ChallengerExperimentPlan,MONTHLY,approved improvement hypothesis,q-research,PROPOSAL_ONLY,Hypothesis/Experiment registry,review-required challenger plan,Quant Lead,IV/QA,G4,REJECT on unapproved change,TEMPLATE_DISABLED +J37,IndependentValidationPack,QUARTERLY,OOS/PBO/DSR/cost/repro evidence complete,q-control,PROPOSAL_ONLY,All promotion evidence versions,independent validation packet,IndependentValidation,Risk/Compliance,G4,NO-GO on missing evidence,TEMPLATE_DISABLED +J38,ModelPolicyDebtReview,MONTHLY,debt/incident/model register current,q-control,PROPOSAL_ONLY,Debt/Incident/Model versions,prioritized debt decision packet,Risk/Architect,Quant/PM,G5,HOLD on stale register,TEMPLATE_DISABLED +J39,FeedbackCycleIntegrityAudit,DAILY,approved feedback-cycle/aging contracts,q-control,EVALUATION_ONLY,Cycle/transition/evidence hashes,stuck/illegal/evidence-gap report,Compliance/QA,Quant/SRE,G4,HOLD and alert only; no automatic transition,TEMPLATE_DISABLED +J40,EvaluationWindowIntegrityAudit,DAILY,"approved calendar, metric/cohort definitions and prediction windows",q-control,EVALUATION_ONLY,Prediction/Calendar/Metric/Cohort VersionSet,missing/duplicate/late/calendar-drift report,Quant/QA,Data/SRE,G4,BUSINESS_HOLD only; no model mutation,DISABLED_TEMPLATE diff --git a/docs/v15_0/K-ArtSell_Aegis_v15_0_실행완결성_표준UI_지속모델운영_통합고도화_제안서.docx b/docs/v15_0/K-ArtSell_Aegis_v15_0_실행완결성_표준UI_지속모델운영_통합고도화_제안서.docx new file mode 100644 index 00000000..efa767f8 Binary files /dev/null and b/docs/v15_0/K-ArtSell_Aegis_v15_0_실행완결성_표준UI_지속모델운영_통합고도화_제안서.docx differ diff --git a/docs/v15_0/SOURCE_COVERAGE_MATRIX.csv b/docs/v15_0/SOURCE_COVERAGE_MATRIX.csv new file mode 100644 index 00000000..aaedacbb --- /dev/null +++ b/docs/v15_0/SOURCE_COVERAGE_MATRIX.csv @@ -0,0 +1,5 @@ +File,Relative_Path,Size,SHA256,Role,Package,Treatment +K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx,attachments/current_session/K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx,64063,eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3,Approved source/baseline document,CORE_AND_FULL,RETAINED_UNMODIFIED +K-ArtSell_Aegis_v14_0_통합고도화_제안서.docx,attachments/current_session/K-ArtSell_Aegis_v14_0_통합고도화_제안서.docx,52359,3cf7ca799ead9758dcc3c0405fbf82eadfdd9d7fac18a06c6f7f5e86a47ce29a,Approved source/baseline document,CORE_AND_FULL,RETAINED_UNMODIFIED +K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,attachments/current_session/K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,402134,d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6,Approved source/baseline document,CORE_AND_FULL,RETAINED_UNMODIFIED +KArtSell_Aegis_v14_0_Core_NoLegacy(1).zip,attachments/source_archives/KArtSell_Aegis_v14_0_Core_NoLegacy(1).zip,4206503,0ec0e4a376e119a213435552dfac62c9590007e0ad73f3833428d7cee1c4dd76,Prior implementation archive,FULL_ONLY,RETAINED_UNMODIFIED diff --git a/docs/v15_0/TECH_DEBT_REGISTER.csv b/docs/v15_0/TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..130553dc --- /dev/null +++ b/docs/v15_0/TECH_DEBT_REGISTER.csv @@ -0,0 +1,125 @@ +ID,Priority,Debt,Impact,Remediation,Gate,Owner,Status +TD-001,P0,도구체인 실빌드 미검증,C# 컴파일/패키지 호환 결함 가능,승인 .NET 10 runner에서 restore/build/test,G0,DevOps,OPEN +TD-002,P0,pnpm-lock.yaml 부재,FE 공급망·재현성 미확보,승인 네트워크에서 pnpm install 후 lock review/commit,G0,FE Lead,OPEN +TD-003,P0,PostgreSQL migration rehearsal 미실행,fresh/upgrade/re-run/복구 실패 가능,PostgreSQL 승인 버전 4시나리오 자동화,G0,DBA,OPEN +TD-004,P0,원시 연구 데이터 권리·checksum·환경 lock 미완전,제3자 clean-room 재현 불가,Source catalog/license/raw checksum/container digest 확보,G1,Data Governance,OPEN +TD-005,P0,KR 검증 종료 2021-04-16,최근 시장국면 검증 공백,2026 현재까지 PIT 총수익·상폐·기업행사 보충 후 frozen OOS,G4,Quant/Data,OPEN +TD-006,P0,실제 OIDC/JWT 공급자 미결정,외부 Pilot 접근통제 불가,"Auth ADR, key rotation, claims/RBAC E2E",G5,Security,OPEN +TD-007,P0,총수익·상폐수익·컨센서스 공급계약 미확정,생존편향·성과왜곡,공식/상용 source 계약·SLA·재배포 권리 승인,G1,Data Governance,OPEN +TD-008,P0,Fee/Tax/FX PIT 표 미확정,비용후 기대효용 왜곡,valid_from/to 계좌·venue·상품·side·band schedule,G1,DBA/Quant,OPEN +TD-009,P0,Outbox/Inbox crash/replay 실증 미완료,side effect 누락·중복,lease/dead-letter/replay chaos test,G3,BE/SRE,IN_PROGRESS +TD-010,P1,JobRun·Watermark 표준의 일부 구현만 존재,배치 재처리·감사 불완전,공통 JobRun scope/version/hash/heartbeat 정책 적용,G1,BE/SRE,IN_PROGRESS +TD-011,P1,Architecture test가 정적 문자열 규칙 중심,금지 의존 누락 가능,assembly/namespace/schema/API fitness function 확대,G0,Architect,IN_PROGRESS +TD-012,P1,OpenAPI→FE contract 자동생성 미도입,DTO drift·홀루시네이션 위험,OpenAPI artifact diff + generated client/schema gate,G3,BE/FE,OPEN +TD-013,P1,PII redaction·Telegram 보안 테스트 미완성,고객정보 노출 가능,classification/redaction test와 secret scan,G5,Security/SRE,OPEN +TD-014,P1,Model promotion workflow 미완성,무단 모델 활성화 위험,model card/maker-checker/effective_at/rollback 구현,G4,Risk/BE,OPEN +TD-015,P1,Read Model rebuild runner 미완성,stale projection 복구 불가,projection version/watermark/rebuild/diff 도구,G3,BE/Data,IN_PROGRESS +TD-016,P1,SLO/RPO/RTO 미승인,운영 Go 판단 불가,부하시험·백업복구·DR ADR 승인,G5,SRE/DBA,OPEN +TD-017,P2,공통 UI 컴포넌트 승격 기준 미운영,중복 또는 과도한 추상화,3회 반복+동일 의미/변경축 확인 후 승격,S10,FE Lead,OPEN +TD-018,P1,PBO/DSR 전체 탐색·시도 원장 미완성,과최적화 위험,전체 실험 registry+CSCV/PBO/DSR/block bootstrap,G4,Quant/Risk,OPEN +TD-019,P1,자산유형별 재진입 확인팩터 공급원 미완성,재진입 품질 저하,asset policy contract+PIT source+missing evidence downgrade,G2,Quant/Data,OPEN +TD-020,P0,자동주문/KIS 제출은 금지 상태,오활성화 사고 위험,Options ValidateOnStart+CI config scan+runtime kill switch 유지,ALL,Security/Ops,MITIGATED +TD-021,P1,정책 임계값이 문서·YAML·C#에 중복될 가능성,계약 drift,승인 config registry+schema+hash+generated constants,G2,Quant/BE,OPEN +TD-022,P1,DB immutable trigger와 correction event 운영절차 미실증,정정/감사 장애 가능,maker-checker correction replay와 audit trace E2E,G3,DBA/Compliance,OPEN +TD-023,P2,프런트 서버상태/Pinia 책임 경계의 팀 규율 미검증,중복 캐시·stale UI,lint/review checklist+query key registry,MVP-B,FE Lead,OPEN +TD-024,P1,Dependency vulnerability/license 자동검사 미구성,공급망 리스크,NuGet/npm SBOM·license allowlist·vulnerability gate,G5,Security/DevOps,OPEN +TD-025,P1,성능 규모 가정 미확정,배치 SLA/DB index 과·소설계,portfolio/security/client volume 결정·capacity test,G6-A,PM/SRE,OPEN +TD-026,P0,Security/Lot weight field ambiguity in v12.1,Partial-lot sell could miscalculate target security weight,MIG-0014 + domain/API/FE golden vectors,G2-A,Quant/BE,IN_PROGRESS +TD-027,P1,Only final sell policy reason was persisted,Blocked/not-applicable priority path was not auditable,Persist ordered policy_trace_json and internal trace contract,G2-A,BE/Quant,IN_PROGRESS +TD-028,P0,Current-session attachment set differs from prior package manifest,Source coverage claim can become stale,Rebuild source index from six current attachments and verify SHA,G0,PM/QA,MITIGATED +TD-029,P1,Request execution contract remains endpoint-local,Error/idempotency/correlation behavior can drift,Adopt reviewed request execution template after characterization tests,G0,BE Lead,OPEN +TD-030,P0,Outbox dispatcher runtime implementation is incomplete,Stored events may not publish or may duplicate,Lease/dead-letter/replay implementation and crash tests,G3,BE/SRE,OPEN +TD-031,P0,Inbox result-hash/replay proof is incomplete,Duplicate downstream side effects remain possible,Consumer-specific transaction and crash/replay tests,G3,BE/SRE,OPEN +TD-032,P1,Outcome metric definitions are not fully versioned,Historical false-exit/gain-capture can drift,outcome-metrics.v1 registry added; Quant/Risk approval and DB scorecard binding remain,G3,Quant/Risk,IN_PROGRESS +TD-033,P1,Module and feature scaffolding depended on manual copying,Pattern drift and vibe-coding hallucination,deterministic scaffold_slice.py + reviewed templates + tests,G0,Architect,MITIGATED +TD-034,P0,v12.2 legacy weight backfill could be treated as explicit lot semantics,Historic context may create incorrect partial-lot target weight,MIG-0015 semantics version; reader accepts version 2 only; rebuild required,G2-A,DBA/BE/Quant,MITIGATED +TD-035,P0,Opportunity edge with zero requested ratio was clamped to 10% sell,Missing quantity decision could become unintended sell,Fail closed with OPPORTUNITY_RATIO_NOT_POSITIVE and Golden test,G2-A,BE/Quant,IN_PROGRESS +TD-036,P1,CI referenced v12.1 validator and contained duplicate working-directory key,Latest controls could be skipped and YAML behavior ambiguous,"Use validate_v123, single working-directory, scaffold tests",G0,DevOps/QA,MITIGATED +TD-037,P1,Policy values duplicated between documents and C# magic numbers,Threshold and priority drift,SellPolicyContract + machine-readable registry + static cross-check,G2,Quant/BE,IN_PROGRESS +TD-038,P1,Previous package did not include v12.2 itself as a new source attachment,Cumulative source chain incomplete for next delta,Seven-file source coverage and SHA index,G0,PM/QA,MITIGATED +TD-039,P0,pnpm lockfile still cannot be generated in isolated environment,Frontend dependency resolution is not reproducible,Generate and review pnpm-lock.yaml on approved connected runner; frozen CI only,G0,FE Lead/DevOps,OPEN +TD-040,P0,v12.3 C# and PostgreSQL changes are statically validated only,"Compile, package compatibility and migration runtime defects may remain",Run .NET 10 build/test and PostgreSQL fresh/upgrade/re-run/failure rehearsal,G0,DevOps/DBA/QA,OPEN +TD-041,P0,v12.4 ModelOperations .NET 실빌드 미검증,scheduler/API/DI/SQL compile 또는 runtime 결함 가능,승인 .NET 10 runner에서 restore/build/test와 PostgreSQL integration 실행,G0/G3,DevOps/BE,OPEN +TD-042,P0,시장별 거래일·휴장·DST 기반 due 계산 미구현,평가 시점 지연 또는 잘못된 세션 평가,MarketCalendar 기반 next_due resolver와 KRX/NYSE/NASDAQ Golden calendar,G3,Data/BE,OPEN +TD-043,P0,false-exit 정확한 adverse-regret 정의 미승인,연 2% 목표의 재현성과 비교 가능성 훼손,분자/분모/가격/benchmark/window/결측 정의를 투자위 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-044,P0,승인 Dataset Manifest와 Model Registry 초기 데이터 부재,모든 scheduled request가 BusinessHold,source/license/hash/model card 승인 후 seed를 별도 승인 migration으로 추가,G3,Data Governance/Risk,OPEN +TD-045,P0,J10~J24 실제 계산 consumer는 작업요청 template 수준,스케줄은 요청을 만들지만 성과·drift·OOS artifact 미생성,VS-18/19/20별 evaluator와 Golden/integration 구현,G4,Quant/BE,OPEN +TD-046,P1,drift baseline·metric·threshold 미승인,과민 또는 지연 경보,feature/data/prediction/calibration drift별 sample minimum과 threshold 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-047,P1,Champion/Challenger cohort 할당·동일성 계약 미완료,비교 편향과 승자 선택 오류,동일 PIT dataset/cost/window/cohort matching 및 holdout 정책 승인,G4,Quant/IndependentValidation,OPEN +TD-048,P1,개선 제안 우선순위와 중복 병합 운영 미실증,제안 폭증·기술부채 누락·과유불급,impact/risk/evidence/cost rubric와 월간 triage WIP limit 운영,G4,Quant Lead/Architect,OPEN +TD-049,P0,모델 승격 maker-checker workflow와 실제 IdP claims 미연결,무단 또는 자기승인 가능,OIDC claims/RBAC/SoD E2E와 감사 원장 연결,G5,Security/Risk,OPEN +TD-050,P1,scheduler lease·enqueue crash chaos 미실증,중복/누락 request 또는 stale lease,다중 worker·DB restart·enqueue 전후 crash·clock skew chaos test,G5,SRE/BE,OPEN +TD-051,P1,모델 rollback drill 실증 없음,모델 이상 시 복구시간 불명,"분기 fallback manifest restore와 Capability hold, RTO/RPO 측정",G5,SRE/Risk,OPEN +TD-052,P1,평가 evidence 보존기간·partition·archive 정책 미결정,DB 팽창 또는 감사자료 조기 삭제,"규제/계약 기준 retention, monthly partition, legal hold, archive restore ADR",G5/G6-A,DBA/Compliance,DECISION_REQUIRED +TD-053,P0,ModelOperations dispatcher가 이전 버전에서 무조건 등록,미승인 평가 자동실행,v12.5 기본 OFF+Capability startup guard+등록 제거 test,G0,BE/Security,MITIGATED +TD-054,P0,기존 J10~J24 schedule enabled seed,Dispatcher 활성 시 재승인 없이 실행 가능,"0017에서 모두 disabled, 운영 변경승인으로 개별 enable",G3,Ops/Risk,MITIGATED +TD-055,P0,실제 evaluator handler 미구현,요청만 생성되고 평가 결과 없음,J10~J30 handler contract·integration·artifact 구현,G3,BE/Quant,OPEN +TD-056,P0,Hangfire enqueue와 schedule mark 사이 원자성 공백,중복 background job 또는 lost dispatch,dispatch-intent outbox 또는 reconciliation 설계와 chaos test,G3,BE/SRE,OPEN +TD-057,P0,승인 시장캘린더/DST 미구현,잘못된 session·lookahead·SLA,J26와 MarketCalendar contract/Golden,G1,Data/Quant,OPEN +TD-058,P1,Promotion thresholds C# hardcode,문서/JSON/C# drift,machine-readable registry+generated constants+drift test,G4,Quant/BE,OPEN +TD-059,P1,Metric Definition 승인 workflow 미완성,false-exit/reentry 수치 조작 가능,definition maker-checker/effective/version/hash,G4,Risk/BE,OPEN +TD-060,P1,Operation artifact retention/archive 미정,증거 유실 또는 DB 비대,artifact class별 retention/legal hold/archive policy,G5,Compliance/DBA,OPEN +TD-061,P1,Release Evidence 자동조립 미구현,수동 누락과 허위 Go,J30 bundle과 required artifact gate,G6,QA/Release,OPEN +TD-062,P1,Projection rebuild diff 미구현,stale/read model 오류 복구 불가,J28+rebuild runner+source watermark diff,G3,BE/Data,OPEN +TD-063,P0,총수익·상폐수익·기업행사 Golden 미완성,성과·Lot·원가 왜곡,공식 source와 golden reconciliation,G1,Data/DBA,OPEN +TD-064,P1,PIT 유효구간 충돌 제약 미완성,중복 current/effective record,bitemporal unique/exclusion constraints,G1,DBA/Data,OPEN +TD-065,P1,고객 UX 불확실성·반대증거 검증 미실행,오해·민원·부적합성,사용성/접근성/준법 테스트,G3,UX/Compliance,OPEN +TD-066,P0,OIDC/JWT·PII·Telegram 운영보안 미실증,무단접근·정보유출,Auth E2E+redaction+secret scan,G5,Security/SRE,OPEN +TD-067,P0,SLO/Volume/Queue isolation 미승인,배치 SLA와 DB 과소/과설계,capacity ADR+load/chaos test,G5,SRE/PM,OPEN +TD-068,P1,현재 패키지 직접 첨부와 이전 누적 첨부가 혼재,Source coverage 오해,direct/transitive coverage와 immutable baseline archive 구분,G0,PM/QA,MITIGATED +TD-069,P0,Feature의 UI Vendor 직접 import 가능,교체성·테스트·접근성 계약 붕괴,import boundary architecture rule,G0,FE Architect,IN_PROGRESS +TD-070,P0,표준 화면 상태 Matrix의 화면별 편차,경고·만료·충돌 오표현,StandardStatePanel+T01~T10 tests,MVP-B,UX/QA,IN_PROGRESS +TD-071,P1,PrimeVue/AG Grid 실제 build 미검증,API/type drift 가능,pnpm lock+typecheck+vitest+build,G0,FE Lead,OPEN +TD-072,P1,Visual regression baseline 부재,adapter 교체 시 의미 회귀,Playwright screenshots and approval,MVP-B,QA/UX,OPEN +TD-073,P1,OpenAPI→Zod 자동생성 미완료,DTO drift·홀루시네이션,versioned generated contract gate,G3,BE/FE,OPEN +TD-074,P0,Prediction freeze runtime 미구현,사후정보 혼입·평가 재현성 상실,J31+append-only freeze integration,G3,Quant/BE,OPEN +TD-075,P0,평가창 성숙 calendar 미실증,1/5/20/63/126/252 window 오류,J32 market-calendar Golden,G3,Data/QA,OPEN +TD-076,P1,개선가설 maker-checker UI/API 미구현,자의적 모델 변경 위험,J35 hypothesis workflow E2E,G4,Risk/BE/FE,OPEN +TD-077,P1,Challenger 실험 registry 미완료,선택적 보고·PBO 왜곡,experiment registry and all-attempt ledger,G4,Quant/Risk,OPEN +TD-078,P1,Scaffolder 생성물 실빌드 미검증,템플릿 부패 가능,generated sample in CI restore/build/test,G0,DevEx,OPEN +TD-079,P2,표준 컴포넌트 사용량/Owner registry 부재,죽은 abstraction 축적,component registry/deprecation review,G6-A,FE Architect,OPEN +TD-080,P1,전체 v13 ZIP 대용량,다운로드/무결성 실패 가능,single zip test+SHA+optional documented split procedure,G6,Release,OPEN +TD-081,P0,UI adapter v2 실 typecheck 미검증,Vue/PrimeVue prop/event 호환 결함 가능,pnpm frozen typecheck/test/build,G0,FE Lead,OPEN +TD-082,P1,Native adapter는 reference 수준,생산 접근성/성능/브라우저 호환 미보장,productionEligible=false 유지 및 교체 Gate 검증,G3,FE/UX,MITIGATED +TD-083,P1,Date/Number provider parity 미실증,빈값/시간대/소수 정밀도 drift,provider contract+form E2E,G3,FE/QA,OPEN +TD-084,P1,UI visual regression 부재,공급자 교체 시 레이아웃 회귀,상태별 screenshot baseline,G3,QA/UX,OPEN +TD-085,P1,10개 화면 상태 matrix E2E 미완성,오류·권한·만료 화면 누락,Playwright 상태 조합 smoke,G3,QA,OPEN +TD-086,P1,표준 화면 wrapper slot 계약 컴파일 미검증,Vue slot typing 오류 가능,pnpm typecheck 및 component tests,G0,FE,OPEN +TD-087,P1,UI scaffolder 생성 결과 실빌드 미검증,템플릿 코드 결함 가능,temp feature 생성 후 typecheck,G0,DevEx/FE,OPEN +TD-088,P0,Feedback cycle repository 미구현,DB 상태와 domain state 불일치,optimistic repository+transaction+outbox,G4,BE/DBA,OPEN +TD-089,P1,J39 audit handler 미구현,stuck/illegal cycle 탐지 불가,integrity query+artifact+alert,G4,BE/SRE,OPEN +TD-090,P0,Human activation decision application service 미구현,수동 절차가 DB 직접 작업으로 퇴행 가능,maker-checker command/API/runbook,G4,Risk/BE,OPEN +TD-091,P1,가설 evidence 분류 저장 흐름 미구현,UNKNOWN/DECISION_REQUIRED 우회 가능,validation+DB+review E2E,G4,Quant/BE,OPEN +TD-092,P0,0019 migration rehearsal 미실행,배포 실패/trigger/constraint 결함 가능,fresh/upgrade/rerun/failure DB test,G0,DBA,OPEN +TD-093,P0,pnpm-lock.yaml 부재 지속,FE 재현성과 공급망 Gate 차단,승인 네트워크에서 lock 생성·검토,G0,FE/DevOps,OPEN +TD-094,P1,OpenAPI→FE 생성 계약 미구현,DTO/Zod drift,artifact diff+generated schema,G3,BE/FE,OPEN +TD-095,P1,접근성 자동화 라이브러리 미결정,a11y 회귀 탐지 부족,axe 또는 승인 대안 ADR,G3,UX/QA,DECISION_REQUIRED +TD-096,P1,AG Grid 사용량/라이선스 검토 미완료,상용기능 오사용 또는 비용 위험,Community/Enterprise 기능 inventory,G5,Legal/FE,OPEN +TD-097,P1,화면/배치 용량 가정 미승인,과·소설계와 SLA 왜곡,고객/계좌/종목/행/동시성 기준 승인,G6-A,PM/SRE,OPEN +TD-098,P0,모델 metric definition 원장 미완전,평가 KPI 분모·창 drift,approved versioned metric definitions,G4,Quant/Risk,OPEN +TD-099,P0,시장 캘린더·시간대 공급계약 미확정,평가창/재진입/배치 오류,시장별 calendar source와 DST golden,G1,Data/Quant,OPEN +TD-100,P1,과거 ZIP 중첩에 의한 크기 증가 위험,배포·다운로드 비효율,Core/Full 분리 및 output exclusion manifest,G0,DevOps/PM,MITIGATED +TD-101,P0,UI Adapter v3 runtime typecheck 미검증,vendor/event typing 오류 가능,pnpm frozen typecheck+Vitest contract,G0,FE Lead,OPEN +TD-102,P0,pnpm-lock.yaml 미생성,FE 공급망 재현성 없음,승인 네트워크에서 lock 생성·review·commit,G0,FE Lead,OPEN +TD-103,P0,.NET 10 실빌드 미검증,C# 계약 변경 컴파일 불확실,승인 runner restore/build/test,G0,DevOps,OPEN +TD-104,P0,0020 migration rehearsal 미실행,schedule/window schema 실패 가능,fresh/upgrade/rerun/failure rehearsal,G0,DBA,OPEN +TD-105,P0,시장 Calendar/Timezone 공급계약 미확정,window/reentry 오평가,KRX/NYSE/NASDAQ calendar source 승인,G1,Data Governance,OPEN +TD-106,P0,Scheduler enqueue/mark 원자성 제한,중복 background job 가능,dispatch outbox 또는 persisted command chaos 검증,G3,BE/SRE,OPEN +TD-107,P1,Hangfire CancellationToken 전파 미완성,장기 job 중지 지연,IJobCancellationToken/core CT 표준,G3,BE/SRE,OPEN +TD-108,P0,Metric/Cohort 승인 정의 미등록,KPI drift 가능,definition registry 승인·hash,G4,Quant/Risk,OPEN +TD-109,P0,J40 실제 handler 미구현,window 결함 자동 탐지 불가,handler/read model/alert/runbook,G4,BE/Quant,OPEN +TD-110,P1,UI contract release workflow 미구현,provider 교체 승인 이력 없음,maker-checker UI release service,G3,FE/QA,OPEN +TD-111,P1,AG Grid server-side datasource 미구현,대량목록 성능·정합성 제한,normalized grid query adapter,G3,FE/BE,OPEN +TD-112,P1,CRUD delete/correction 정책 미정,감사/복구 위험,soft delete/reversal 정책 Decision,MVP-A,Product/DBA,OPEN +TD-113,P1,409/412 비교 UX 미완성,사용자 재작업·덮어쓰기 위험,diff/reapply E2E,MVP-B,FE/UX,OPEN +TD-114,P1,Visual regression baseline 부재,Provider 교체 회귀 탐지 불가,T01~T10 screenshot baseline,G3,QA/UX,OPEN +TD-115,P1,수동 접근성 검증 미실행,업무 키보드 흐름 결함 가능,WCAG manual checklist,G5,UX/QA,OPEN +TD-116,P1,ModelFeedbackCycle repository 미구현,상태기계가 메모리 template 수준,optimistic repository+transaction event,G4,BE/DBA,OPEN +TD-117,P1,Evaluation window 영향 인덱스 미구현,revision 재평가 누락,source→evidence→window index,G4,Data/BE,OPEN +TD-118,P1,Scheduler SLO/alert threshold 미승인,운영 판단 불가,lag/hold/stuck SLO 승인,G5,SRE/PM,OPEN +TD-119,P1,PrimeVue/AG Grid 라이선스 검토 미완료,배포 법적 위험,SBOM/license allowlist,G5,Legal/DevOps,OPEN +TD-120,P1,OIDC provider 미결정,Pilot 접근통제 불가,Auth ADR+claims E2E,G5,Security,OPEN +TD-121,P1,PBO/DSR 전체 실험 원장 미구현,과최적화 은폐 가능,experiment registry,G4,Quant/Risk,OPEN +TD-122,P1,총수익·상폐·컨센서스 최신 PIT 공백,성과 왜곡,승인 source와 최근 OOS,G4,Data/Quant,OPEN +TD-123,P1,운영 용량 가정 미확정,DB/index/job 과소·과설계,volume decision+soak,G6-A,PM/SRE,OPEN +TD-124,P1,Core/Full 패키지 CI 자동화 미완성,재귀 ZIP·누락 재발,package policy automated test,G6,Release Manager,OPEN diff --git a/docs/v15_0/TRACEABILITY_MATRIX.csv b/docs/v15_0/TRACEABILITY_MATRIX.csv new file mode 100644 index 00000000..58ecc99e --- /dev/null +++ b/docs/v15_0/TRACEABILITY_MATRIX.csv @@ -0,0 +1,102 @@ +Requirement_ID,Slice_ID,Policy_or_Data_ID,API_ID,DB_ID,Job_Event_ID,UI_ID,Test_ID,WBS_Range,Release_Gate,Evidence_Status +REQ-PLAT-001,VS-00,DATA/DOMAIN-CONTRACT,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,AEG-VS-00-01..AEG-VS-00-07,G0,SOURCE+DESIGN_PROPOSAL +REQ-IAM-001,VS-01,DATA/DOMAIN-CONTRACT,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,AEG-VS-01-01..AEG-VS-01-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-SEC-001,VS-02,DATA/DOMAIN-CONTRACT,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,AEG-VS-02-01..AEG-VS-02-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-DAT-001,VS-03,DATA/DOMAIN-CONTRACT,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,AEG-VS-03-01..AEG-VS-03-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-CA-001,VS-04,DATA/DOMAIN-CONTRACT,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,AEG-VS-04-01..AEG-VS-04-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-FND-001,VS-05,DATA/DOMAIN-CONTRACT,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,AEG-VS-05-01..AEG-VS-05-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-COST-001,VS-06,DATA/DOMAIN-CONTRACT,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,AEG-VS-06-01..AEG-VS-06-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-CLI-001,VS-07,DATA/DOMAIN-CONTRACT,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,AEG-VS-07-01..AEG-VS-07-07,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-LED-001,VS-08,DATA/DOMAIN-CONTRACT,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,AEG-VS-08-01..AEG-VS-08-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-EVD-001,VS-09,DATA/DOMAIN-CONTRACT,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,AEG-VS-09-01..AEG-VS-09-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-SELL-001,VS-10,"ALG-SELL-001~005,ALG-SELL-PORT-001",SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,AEG-VS-10-01..AEG-VS-10-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-RE-001,VS-11,ALG-REENTRY-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,AEG-VS-11-01..AEG-VS-11-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-BUY-001,VS-12,ALG-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,AEG-VS-12-01..AEG-VS-12-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RISK-001,VS-13,ALG-PORT-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,AEG-VS-13-01..AEG-VS-13-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-REC-001,VS-14,DATA/DOMAIN-CONTRACT,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,AEG-VS-14-01..AEG-VS-14-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-REV-001,VS-15,DATA/DOMAIN-CONTRACT,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,AEG-VS-15-01..AEG-VS-15-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-PUB-001,VS-16,DATA/DOMAIN-CONTRACT,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,AEG-VS-16-01..AEG-VS-16-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-CLD-001,VS-17,DATA/DOMAIN-CONTRACT,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,AEG-VS-17-01..AEG-VS-17-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-EVA-001,VS-18,DATA/DOMAIN-CONTRACT,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,AEG-VS-18-01..AEG-VS-18-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-BKT-001,VS-19,DATA/DOMAIN-CONTRACT,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,AEG-VS-19-01..AEG-VS-19-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-MOD-001,VS-20,DATA/DOMAIN-CONTRACT,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,AEG-VS-20-01..AEG-VS-20-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-REB-001,VS-21,DATA/DOMAIN-CONTRACT,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,AEG-VS-21-01..AEG-VS-21-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-RPL-001,VS-22,DATA/DOMAIN-CONTRACT,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,AEG-VS-22-01..AEG-VS-22-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RECON-001,VS-23,DATA/DOMAIN-CONTRACT,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,AEG-VS-23-01..AEG-VS-23-07,Pilot-A,SOURCE+DESIGN_PROPOSAL +REQ-RPT-001,VS-24,DATA/DOMAIN-CONTRACT,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,AEG-VS-24-01..AEG-VS-24-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-GOV-001,VS-25,DATA/DOMAIN-CONTRACT,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,AEG-VS-25-01..AEG-VS-25-07,G5,SOURCE+DESIGN_PROPOSAL +REQ-SIG-WEIGHT-022,VS-10,ALG-SELL-002~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,AEG22-VS10-001~004,G2-A,SOURCE+INFERENCE +REQ-SIG-TRACE-022,VS-10,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL +REQ-DAT-LIC-022,VS-03,DQ-01~08,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,AEG22-VS03-002,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-REL-022,Cross,DOC-NR-03/06,Cross,Cross,Cross,Cross,T-REL-022,AEG22-X-012,G6,DESIGN_PROPOSAL +REQ-CONTRACT-001,Cross/VS-10/VS-18,sell-policy.v1/outcome-metrics.v1,SIG-01/02,MIG-0015,EVT-SIG-001/J10,UI-SIG-TRACE/UI-EVAL-01,T-CONTRACT-001/T-EVAL-METRIC-001,"AEG-X-034,AEG-VS-10-08..12,AEG-VS-18-08",G2-A/G3,SOURCE+DESIGN_PROPOSAL +REQ-ARCH-SCAFFOLD,Cross,AGENTS/SLICE_SPEC,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,AEG-X-033,G0,DESIGN_PROPOSAL +REQ-SOURCE-123,Cross,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,"AEG-X-031,AEG-X-043",G0/G6,SOURCE +REQ-MO-SCHED-001,VS-18/20/25,model-operations.v1,MO-PLAN-01,MIG-0016,Dispatcher/J10~J24,UI-MO-01,"T-MO-004~007,T-MO-029","AEG-MO-001,004~007,029",G3/G5,TEMPLATE +REQ-MO-EVAL-001,VS-18,outcome-metrics.v2,EVAL-01/02/05,MIG-0016,J10/J11,UI-MO-02,"T-MO-EVAL-001/002,T-MO-ATTR-001","AEG-MO-002~003,010~011,016",G3/G4,TEMPLATE +REQ-MO-DRIFT-001,VS-20,drift-contract DEC_REQUIRED,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,AEG-MO-012,G4,DECISION_REQUIRED +REQ-MO-CC-001,VS-20,champion-challenger matched cohort,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,AEG-MO-013,G4,TEMPLATE +REQ-MO-OOS-001,VS-19,Frozen Manifest/OOS,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,AEG-MO-014,G4,TEMPLATE +REQ-MO-ROBUST-001,VS-19/20,PBO/DSR/Cost2x,BACKTEST-02,MIG-0016,J20,UI-MO-04/06,"T-MO-ROBUST-001,T-MO-MNT-002","AEG-MO-015,037",G4,TEMPLATE +REQ-MO-IMPROVE-001,VS-20,ImprovementProposal,GOV-MO-01/02,MIG-0016,J21,UI-MO-05,T-MO-IMP-001/002,"AEG-MO-017~018,034,038",G4/G5,TEMPLATE +REQ-MO-PROMOTE-001,VS-20/25,promotion-gate.v1,GOV-MO-03/04,MIG-0016,J22,UI-MO-06,T-MO-GATE-001/002,AEG-MO-019~020,G4/G5,TEMPLATE +REQ-MO-ROLLBACK-001,VS-25,rollback runbook,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,AEG-MO-024,G5,TEMPLATE +REQ-MO-REPLAY-001,VS-23,PIT revision/correction,REPLAY-01/02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001/002,AEG-MO-022~023,G3,TEMPLATE +REQ-MO-FE-001,VS-18/20/25,Zod runtime contract,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01~09,"T-MO-FE-001~003,T-MO-E2E-001","AEG-MO-008~009,021,031",G3/G5,TEMPLATE +REQ-MO-OPS-001,VS-25/Cross,observability/retry/security/capacity,MO-OPS-01~04,MIG-0016,Dispatcher/J10~J24,UI-MO-09,"T-MO-OPS-001/002,T-MO-SEC-001,T-MO-CAP-001,T-MO-CI-001","AEG-MO-025~028,032~035",G5/G6,TEMPLATE +REQ-EXA-001,Cross/VS-18/19/20/25,EXA-CONTRACT-01,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-001,AEG-V12-5-001..AEG-V12-5-004,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-002,Cross/VS-18/19/20/25,EXA-CONTRACT-02,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-002,AEG-V12-5-005..AEG-V12-5-008,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-003,Cross/VS-18/19/20/25,EXA-CONTRACT-03,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-003,AEG-V12-5-009..AEG-V12-5-012,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-004,Cross/VS-18/19/20/25,EXA-CONTRACT-04,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-004,AEG-V12-5-013..AEG-V12-5-016,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-005,Cross/VS-18/19/20/25,EXA-CONTRACT-05,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-005,AEG-V12-5-017..AEG-V12-5-020,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-006,Cross/VS-18/19/20/25,EXA-CONTRACT-06,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-006,AEG-V12-5-021..AEG-V12-5-024,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-007,Cross/VS-18/19/20/25,EXA-CONTRACT-07,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-007,AEG-V12-5-025..AEG-V12-5-028,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-008,Cross/VS-18/19/20/25,EXA-CONTRACT-08,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-008,AEG-V12-5-029..AEG-V12-5-032,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-009,Cross/VS-18/19/20/25,EXA-CONTRACT-09,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-009,AEG-V12-5-033..AEG-V12-5-036,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-010,Cross/VS-18/19/20/25,EXA-CONTRACT-10,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-010,AEG-V12-5-037..AEG-V12-5-040,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-011,Cross/VS-18/19/20/25,EXA-CONTRACT-11,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-011,AEG-V12-5-041..AEG-V12-5-044,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-012,Cross/VS-18/19/20/25,EXA-CONTRACT-12,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-012,AEG-V12-5-045..AEG-V12-5-048,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-FE-ADAPTER,Cross,UI-ADAPTER-v1,Cross,-,-,UI-FOUND-01..11,T-FE-ARCH/ADAPTER/SWAP,"V13-FE-001..010,V13-FE-037",G0/G4-A,SOURCE+DESIGN_PROPOSAL +REQ-FE-SCREEN-TYPES,Cross/VS-07..25,T01..T10,Feature contracts,Read Models,J01..J38,UI-T01..T10,T-FE-T01..T10,V13-FE-011..040,MVP-A..G6,SOURCE+DESIGN_PROPOSAL +REQ-MODEL-FEEDBACK,VS-18/19/20/25,PredictionFreeze/Maturity/Hypothesis,ModelOperations internal,MIG-0018,J31..J38,UI-J31..J38,T-J31..J38,V13-MODEL-001..016,G3..G6-A,SOURCE+DESIGN_PROPOSAL +REQ-SCAFFOLD-13,Cross,PWP/SLICE_SPEC,FastEndpoints template,DbUp placeholder,Outbox placeholder,Vue feature template,T-SCAFFOLD-01..03,V13-TOOL-001..003,G0,DESIGN_PROPOSAL +REQ-UI-ADAPTER-001,Cross,UI-ADAPTER-2.0,-,-,-,UI-CORE,T-UI-ADAPTER-001,AEG-V14-001..012,G0,V14_DELTA_STATIC_ONLY +REQ-UI-T01,Cross,SCREEN-T01,-,-,-,T01,T-UI-T01,AEG-V14-013,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T02,Cross,SCREEN-T02,-,-,-,T02,T-UI-T02,AEG-V14-014,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T03,Cross,SCREEN-T03,-,-,-,T03,T-UI-T03,AEG-V14-015,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T04,Cross,SCREEN-T04,-,-,-,T04,T-UI-T04,AEG-V14-016,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T05,VS-15,SCREEN-T05,REV-01,review_history,-,T05,T-UI-T05,AEG-V14-017,G3,V14_DELTA_STATIC_ONLY +REQ-UI-T06,Cross,SCREEN-T06,-,-,-,T06,T-UI-T06,AEG-V14-018,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T07,VS-18,SCREEN-T07,EVAL-01,evaluation.*,J10/J11,T07,T-UI-T07,AEG-V14-019,G4,V14_DELTA_STATIC_ONLY +REQ-UI-T08,Cross,SCREEN-T08,OPS-01,job_run,J01-J39,T08,T-UI-T08,AEG-V14-020,G3,V14_DELTA_STATIC_ONLY +REQ-UI-T09,VS-23,SCREEN-T09,REC-01,reconciliation.*,J12,T09,T-UI-T09,AEG-V14-021,G5,V14_DELTA_STATIC_ONLY +REQ-UI-T10,VS-20,SCREEN-T10,MOD-LOOP-01,governance.*,J31-J39,T10,T-UI-T10,"AEG-V14-022,059",G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-CYCLE-001,VS-20,MODEL-FEEDBACK-CYCLE,MOD-LOOP-01,MIG-0019,J31-J39,T10,T-MODEL-CYCLE-001,AEG-V14-041..054,G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-HYP-001,VS-20,MODEL-HYPOTHESIS,MOD-HYP-01,MIG-0019,J35/J36,T10,T-MODEL-HYP-001,"AEG-V14-043,046,052",G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-ACT-001,VS-20,HUMAN-ACTIVATION-ONLY,MOD-ACT-01,MIG-0019,MANUAL_ONLY,T10,T-MODEL-ACT-001,"AEG-V14-047,057",G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-CYCLE-006,VS-20,CYCLE-INTEGRITY,-,MIG-0019,J39,T10,T-J39-001,"AEG-V14-049..050,060",G4,V14_DELTA_STATIC_ONLY +REQ-API-CONC-001,Cross,OPTIMISTIC-CONCURRENCY,Cross,Cross,-,T03/T05/T09/T10,T-CONC-001,AEG-V14-062,G3,V14_DELTA_STATIC_ONLY +REQ-CMD-IDEMP-001,Cross,IDEMPOTENCY,Cross,Cross,Outbox,T03/T05/T08/T09,T-IDEMP-001,AEG-V14-063,G3,V14_DELTA_STATIC_ONLY +REQ-DATA-PIT-001,Cross,PIT-CONTEXT,Cross,Cross,J01-J39,T02/T07/T10,T-PIT-001,AEG-V14-064,G1,V14_DELTA_STATIC_ONLY +REQ-RM-001,Cross,READMODEL-VERSION,Cross,Cross,J28,T01/T04/T07/T08/T09,T-RM-001,AEG-V14-065,G3,V14_DELTA_STATIC_ONLY +REQ-PKG-001,Cross,PACKAGE-NON-RECURSION,-,-,-,-,T-PKG-001,AEG-V14-079,G0,V14_DELTA_STATIC_ONLY +REQ-V15-FEA-01,VS-00,UI-ADAPTER-V3,UI-CONTRACT-03,GOV-UI-RELEASE,CI,UI-STD-03,T-V15-FEA-01~07,AEG-V15-009..016,G0,SOURCE+DESIGN_PROPOSAL +REQ-V15-CRUD-01,VS-07,CRUD-PAGE-V1,CRUD-LIST/FORM,READMODEL,-,UI-CRUD-01,T-V15-CRUD-01~08,AEG-V15-017..024,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-V15-LAY-01,Cross,LAYOUT-REGIONS-V1,-,-,-,UI-LAYOUT-01,T-V15-LAY-01~08,AEG-V15-025..032,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-V15-SCH-01,VS-18,SCHEDULE-ANCHOR,MOD-OPS,MIG-0020,J31~J40,UI-OPS-01,T-V15-SCH-01~08,AEG-V15-033..040,G3,SOURCE+DESIGN_PROPOSAL +REQ-V15-EVA-01,VS-18,EVAL-WINDOWS,EVA-03,MIG-0020,J32/J40,UI-EVA-01,T-V15-EVA-01~08,AEG-V15-041..048,G4,SOURCE+DESIGN_PROPOSAL +REQ-V15-MOD-01,VS-20,FEEDBACK-CYCLE,MOD-03,MIG-0019/0020,J35~J40,UI-MOD-01,T-V15-MOD-01~08,AEG-V15-049..056,G4,SOURCE+DESIGN_PROPOSAL +REQ-V15-DAT-01,VS-03,PIT/DQ/LINEAGE,DAT-01,MIG-0020,J02/J05/J24,UI-DAT-01,T-V15-DAT-01~08,AEG-V15-057..064,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-V15-ALG-01,VS-10,ALG-SELL/REENTRY,SIG-01,MIG-0014,J08/J09/J33,UI-SIG-01,T-V15-ALG-01~08,AEG-V15-065..072,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-V15-QA-01,Cross,FITNESS/CONTRACT,-,-,CI,UI-ALL,T-V15-QA-01~08,AEG-V15-073..080,G6-A,SOURCE+DESIGN_PROPOSAL +REQ-V15-OPS-01,VS-25,SLO/DR/SEC,GOV-OPS,-,J23/J27/J29,UI-OPS-02,T-V15-OPS-01~08,AEG-V15-081..088,G5,SOURCE+DESIGN_PROPOSAL +REQ-V15-PKG-01,Cross,DOC-NR/PACKAGE,-,-,CI,-,T-V15-PKG-01~08,AEG-V15-089..096,G6,SOURCE+DESIGN_PROPOSAL +REQ-V15-UI-STATE,Cross,SCREEN-STATE-MATRIX,-,-,-,T01~T10,T-V15-LAY-04,AEG-V15-028,G3,SOURCE+DESIGN_PROPOSAL +REQ-V15-CONFLICT,VS-15,IF-MATCH/409/412,ADV-REVIEW,READMODEL,-,T05,T-V15-CRUD-06,AEG-V15-022,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-V15-IDEMP,VS-14,IDEMPOTENCY,REC-RUN,OUTBOX,J08,T01/T05,T-V15-CRUD-07,AEG-V15-023,G3,SOURCE+DESIGN_PROPOSAL +REQ-V15-METRIC,VS-18,METRIC-DEF/COHORT,EVA-SCORE,MIG-0020,J10/J11/J34,T07,T-V15-EVA-04~05,AEG-V15-044..045,G4,SOURCE+DESIGN_PROPOSAL +REQ-V15-CALENDAR,VS-03,MARKET-CALENDAR,DAT-CAL,MIG-0020,J26/J32/J40,T08,T-V15-SCH-07,AEG-V15-039,G1,SOURCE+DESIGN_PROPOSAL +REQ-V15-BHOLD,VS-18,EXECUTION-STATE,MOD-OPS,MIG-0020,J31~J40,T08,T-V15-SCH-05,AEG-V15-037,G3,SOURCE+DESIGN_PROPOSAL +REQ-V15-UIREL,VS-00,UI-RELEASE,UI-CONTRACT,MIG-0020,CI,T10,T-V15-FEA-07,AEG-V15-015,G3,SOURCE+DESIGN_PROPOSAL +REQ-V15-ACTIVATION,VS-20,HUMAN-ACTIVATION,MOD-ACT,MIG-0019,MANUAL_ONLY,T10,T-V15-MOD-07~08,AEG-V15-055..056,G4,SOURCE+DESIGN_PROPOSAL +REQ-V15-ZIP,Cross,PACKAGE-POLICY,-,-,CI,-,T-V15-PKG-05~07,AEG-V15-093..095,G6,SOURCE+DESIGN_PROPOSAL diff --git a/docs/v16_0/00_EXECUTIVE_REFERENCE_IMPLEMENTATION.md b/docs/v16_0/00_EXECUTIVE_REFERENCE_IMPLEMENTATION.md new file mode 100644 index 00000000..0dee4773 --- /dev/null +++ b/docs/v16_0/00_EXECUTIVE_REFERENCE_IMPLEMENTATION.md @@ -0,0 +1,16 @@ +# K-ArtSell Aegis v16.0 실행참조 구현 고도화 + +## 결론 +v16.0은 화면·문서·WBS 숫자를 늘리는 릴리스가 아니라 v15의 선언형 계약 중 실제 코드 참조가 약했던 부분을 좁게 닫는다. v10.0의 Baseline Preservation + Delta + Supersession + Traceability, 투자자문형 우선, `RESEARCH_CANDIDATE_NOT_PRODUCTION`, 자동주문/KIS 제출 OFF를 유지한다. + +## v16 Delta +1. UI Adapter v4 호환성 보고서와 공급자 교체 증거 계약. +2. FieldShell, DataContextHeader, CommandBar와 CRUD Resource Contract v2. +3. 서버 PIT ExecutionEnvelope와 매도 결정 Evidence/단위 Guard. +4. Hangfire 모델운영 Lease Fencing 및 J41 Lease Integrity Audit. +5. 1/5/20/63/126/252 거래세션 평가의 J42 Reconciliation Planner. +6. Projection rebuild 요청과 UI Adapter compatibility evidence DB 계약. +7. Core/Full 분리: Core에 과거 ZIP 0개, Full에 직전 v15 Core ZIP 1개만 보존. + +## 냉정한 판정 +정적 구조와 참조 구현은 강화되었지만 .NET 10, pnpm, PostgreSQL, Playwright, 252거래일 Shadow를 이 환경에서 수행하지 않았다. 따라서 생산 준비 완료가 아니다. diff --git a/docs/v16_0/01_BRUTAL_ROLE_AUDIT.md b/docs/v16_0/01_BRUTAL_ROLE_AUDIT.md new file mode 100644 index 00000000..10c54c4f --- /dev/null +++ b/docs/v16_0/01_BRUTAL_ROLE_AUDIT.md @@ -0,0 +1,13 @@ +# 역할별 처절한 감사 + +| 역할 | 결함 | v16 처방 | +|---|---|---| +| 운영사 | Scheduler가 중복 실행되면 운영자는 DB 수작업으로 퇴행한다. | Lease fencing, heartbeat, J41, Runbook과 Owner를 표면화한다. | +| 아키텍트 | 14개 컴포넌트가 존재해도 공급자 호환성 증거가 없으면 Adapter는 선언이다. | Adapter v4 compatibility report와 승인 Evidence를 둔다. | +| PM/PL | 576개 WBS가 있어도 실제 코드/DB/Test 연결이 약하면 일정 장식이다. | v16 Delta는 구현 파일과 수용증거가 1:1인 작업만 추가한다. | +| UX/AX | 정상 화면 템플릿만 표준화하면 stale/conflict/hold를 숨긴다. | DataContextHeader, CommandBar, CRUD v2 상태 계약을 추가한다. | +| QA | 파일 존재 검사를 build PASS로 오해할 위험이 있다. | 정적 검증과 runtime 검증을 분리하고 미실행을 명시한다. | +| 투자 고객 | 내부 점수보다 데이터 시점·비용·반대증거·만료·승인이 중요하다. | Evidence/VersionSet/Projection/Watermark/Correlation을 공통 Header로 노출한다. | +| 개발자 | Generic Repository나 모든 prop 래핑은 과설계다. | 외부 경계와 의미 안정성이 있는 최소 계약만 추상화한다. | +| 데이터 아키텍트/DBA | 평가 누락·중복·revision 재평가가 수작업이면 재현성이 깨진다. | J42와 append-only reconciliation evidence를 추가한다. | +| 준법/리스크 | 자동화가 제안·평가를 넘어 모델 활성화로 새면 통제 실패다. | 모든 신규 Job은 EvaluationOnly이며 schedules 기본 disabled다. | diff --git a/docs/v16_0/02_FRONTEND_ADAPTER_CRUD_STANDARD.md b/docs/v16_0/02_FRONTEND_ADAPTER_CRUD_STANDARD.md new file mode 100644 index 00000000..392d77a8 --- /dev/null +++ b/docs/v16_0/02_FRONTEND_ADAPTER_CRUD_STANDARD.md @@ -0,0 +1,17 @@ +# FE Adapter v4·표준 레이아웃·CRUD v2 + +## 의존 방향 +`Feature → Standard Screen/CRUD → Ks Facade → UiAdapter v4 → PrimeVue/AG Grid 또는 Native Reference` + +## 새 표준 +- `FieldShell`: label, required, help/error, aria-describedby, alert semantics의 단일 기준. +- `KsDataContextHeader`: as-of, Dataset/Model/Config/Code/Contract, ProjectionVersion, Watermark, Correlation. +- `KsCommandBar`: 페이지 행동의 순서와 disabled/busy 의미 표준. +- `CrudResourceDefinition`: Zod Query/Row/Form, 민감필드, permission, If-Match, Idempotency-Key. +- `useOptimisticCommand`: 중복 클릭 방지와 409/412 conflict 표면화. + +## 교체 Gate +Contract conformance, keyboard/focus, T01~T10 상태 회귀, visual regression, performance budget, SBOM/license, rollback rehearsal가 모두 필요하다. 공급자 변경은 startup 선택이며 runtime global mutation을 금지한다. + +## 과유불급 +Vendor prop 전체를 wrapper에 노출하지 않는다. 두 화면에서만 우연히 비슷한 컴포넌트를 성급하게 공통화하지 않는다. 동일 의미와 변경축이 3회 이상 반복된 경우만 승격한다. diff --git a/docs/v16_0/03_BACKEND_DATA_SCHEDULER_STANDARD.md b/docs/v16_0/03_BACKEND_DATA_SCHEDULER_STANDARD.md new file mode 100644 index 00000000..11e93df5 --- /dev/null +++ b/docs/v16_0/03_BACKEND_DATA_SCHEDULER_STANDARD.md @@ -0,0 +1,18 @@ +# BE·데이터·스케줄러 실행참조 표준 + +## BE +Endpoint는 HTTP/Auth/Validation, Application은 orchestration/idempotency/transaction, Domain은 순수 정책, Infrastructure는 Dapper/Npgsql/Adapter를 소유한다. 생산 Command는 최소 식별자만 받고 PIT Evidence는 서버에서 해석한다. + +## ExecutionEnvelope +`AsOf`, `PublishedAtCutoff`, `ScopeKey`, `IdempotencyKey`, `CorrelationId`, `VersionSet`, `ContentHash`를 검증한다. `PublishedAtCutoff > AsOf`는 즉시 차단한다. + +## Scheduler +- `scheduledFor` anchor에서 다음 시각을 계산한다. +- Lease는 fencing token을 가지며 stale worker의 갱신·advance를 거부한다. +- BusinessHold와 기술 실패를 분리한다. +- J41은 expired/overlap/stale token을 감사한다. +- J42는 거래세션 평가창의 누락·중복·지연·revision 재계산 계획을 만든다. +- J41/J42는 기본 disabled이며 자동 모델 변경을 하지 않는다. + +## DB +Write model은 정규화한다. Evidence/Decision/Evaluation reconciliation은 append-only로 보존한다. 역정규화는 Projection에 한정하고 Version/Watermark/Rebuild/Stale 상태를 가진다. diff --git a/docs/v16_0/04_ALGORITHM_MODEL_GOVERNANCE.md b/docs/v16_0/04_ALGORITHM_MODEL_GOVERNANCE.md new file mode 100644 index 00000000..1dc04798 --- /dev/null +++ b/docs/v16_0/04_ALGORITHM_MODEL_GOVERNANCE.md @@ -0,0 +1,12 @@ +# 알고리즘·지속 모델 평가 거버넌스 + +매도 우선순위는 `HARD_IMPAIRMENT → PORTFOLIO_SURVIVAL → DYNAMIC_PROFIT_FLOOR → CONCENTRATION/LIQUIDITY → OPPORTUNITY_COST → REENTRY_OPTION`으로 고정한다. 상위 위험을 하위 점수로 상쇄하지 않는다. + +## v16 Guard +`SellDecisionEvidenceGuard`는 Evidence/VersionSet 누락, look-ahead, SellRatioOfLot와 PortfolioWeight의 0~1 단위 위반, 매도 결정이 오히려 목표비중을 높이는 오류를 차단한다. + +## 모델 피드백 +Freeze → Mature → Score → Diagnose → Hypothesis → Challenger → Validate → Review → Human Activation을 유지한다. J42는 평가 정합성을 복구하는 계획만 만들며 모델·정책·설정·고객 공개·주문을 변경하지 않는다. + +## 승격 최소조건 +252 거래세션 Shadow, 복수 국면, 비용후 기대효용, calibration, false-exit/reentry attribution, PBO≤20%, DSR≥95%, 비용 2배 양수, 독립검증, 운영 무결성, rollback 증거가 필요하다. diff --git a/docs/v16_0/05_PROCESS_VIBE_DEBT_CONTROL.md b/docs/v16_0/05_PROCESS_VIBE_DEBT_CONTROL.md new file mode 100644 index 00000000..cec46034 --- /dev/null +++ b/docs/v16_0/05_PROCESS_VIBE_DEBT_CONTROL.md @@ -0,0 +1,14 @@ +# 프로세스 단순화·바이브코딩·기술부채 + +## 단일 Flow +Idea → Decision Required 해소 → Slice Ready → Walking Skeleton → Contract/Golden → Implement → Review → Release Evidence → Observe → Debt/Outcome. + +## 금지 +- AI 대화만으로 threshold/table/index/library를 만든다. +- 실행하지 않은 build/test/migration/Shadow를 PASS로 쓴다. +- 리팩터링과 정책/수식 변경을 하나의 PR로 합친다. +- 모든 화면에 AG Grid, 모든 클래스에 interface, 모든 테이블에 event sourcing을 적용한다. +- current row overwrite로 PIT/revision을 지운다. + +## 기술부채 항목 +모든 부채는 Priority, Impact, Remediation, Owner, Gate, Exit Evidence, Status를 가진다. P0는 해당 Gate 전에 종료하거나 승인된 완화통제가 있어야 한다. diff --git a/docs/v16_0/06_VALIDATION_TRUTH.md b/docs/v16_0/06_VALIDATION_TRUTH.md new file mode 100644 index 00000000..698e963e --- /dev/null +++ b/docs/v16_0/06_VALIDATION_TRUTH.md @@ -0,0 +1,16 @@ +# 검증 진실성 + +## 이 환경에서 수행 +- JSON/CSV/소스 구조 정적 검증. +- Vendor import boundary와 Adapter v4 capability 검사. +- Python validator와 ZIP CRC 검증. +- DOCX render 및 전체 페이지 육안검사. + +## 미수행 +- .NET 10 restore/build/test. +- pnpm frozen install/typecheck/Vitest/build/Playwright. +- PostgreSQL DbUp fresh/upgrade/re-run/failure recovery. +- Outbox/Inbox·lease·scheduler chaos와 DR/대사 리허설. +- 252 거래세션 Shadow, PBO/DSR, 생산 승격. + +미수행 항목은 PASS가 아니다. diff --git a/docs/v16_0/07_PACKAGE_ATTACHMENT_POLICY.md b/docs/v16_0/07_PACKAGE_ATTACHMENT_POLICY.md new file mode 100644 index 00000000..574225e5 --- /dev/null +++ b/docs/v16_0/07_PACKAGE_ATTACHMENT_POLICY.md @@ -0,0 +1,7 @@ +# 패키지·첨부 정책 + +- Core_NoLegacy: 실행 소스·문서·현재 DOCX 원본은 포함하고 `.zip` source archive는 제외한다. +- Full_With_Attachments: Core + 현재 첨부된 v15 Core archive 1개를 포함한다. +- 생성된 v16 ZIP을 다시 입력 tree에 넣지 않는다. +- Source Coverage Matrix와 SHA256SUMS로 원본 byte를 대사한다. +- 이전 v14 archive의 재포장은 v15 Core가 baseline을 승계하므로 중단한다. 이는 패키징 Supersession이며 코드·문서 기준선 삭제가 아니다. diff --git a/docs/v16_0/08_20_DAY_RESTART_PLAN.md b/docs/v16_0/08_20_DAY_RESTART_PLAN.md new file mode 100644 index 00000000..025c3c0c --- /dev/null +++ b/docs/v16_0/08_20_DAY_RESTART_PLAN.md @@ -0,0 +1,10 @@ +# 20영업일 재착수 + +| 기간 | 작업 | 완료 증거 | +|---|---|---| +| D1~D3 | v16 Coverage, Decision, Capability OFF, ID Registry | Steering 승인, 중복 ID 0 | +| D4~D6 | .NET/node/pnpm lock, Adapter v4, CRUD v2 | reproducible bootstrap | +| D7~D10 | DbUp 4시나리오, Auth, Outbox/Inbox, Lease fencing | G0/G3 통과 | +| D11~D14 | PIT/CA/DQ/Calendar/Projection/J42 | replay hash, look-ahead 0 | +| D15~D17 | Sell Evidence Guard, Reentry, Metric/Cohort, Feedback Golden | G2-A/G4 계약 통과 | +| D18~D20 | T01/T05/T08/T10, Scheduler chaos, OTel, Release Evidence | 첫 운영형 E2E Slice Done | diff --git a/docs/v16_0/08_DETAILED_WBS_MASTER.csv b/docs/v16_0/08_DETAILED_WBS_MASTER.csv new file mode 100644 index 00000000..39c772ea --- /dev/null +++ b/docs/v16_0/08_DETAILED_WBS_MASTER.csv @@ -0,0 +1,665 @@ +WBS_ID,Sprint,Weeks,Slice_ID,Slice,Module,Workstream,Requirement_ID,API_ID,DB_Migration_ID,Job_Event_ID,UI_ID,Test_ID,Task,Artifact,Acceptance_Evidence,Primary_Owner,Secondary,PD,Dependency,Gate,Evidence_Class,Risk,Status +AEG-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,Cross,Version Coverage Matrix 고도화,Version Coverage Matrix·Supersession Registry,모든 첨부와 v10/v12/v12.1의 Retained/Improved/Superseded 상태 100%,PM/Architect,Architect/QA,5,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,Cross,global.json 고도화,global.json·Directory.Packages·node/packageManager·lock 정책,승인 runner에서 dotnet restore/build/test 및 pnpm frozen build 재현,DevOps,Architect/QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,Cross,모듈/namespace/schema/API 금지 의존 Architecture tests 고도화,모듈/namespace/schema/API 금지 의존 Architecture tests,"Domain 기술의존 0, 모듈 직접 DB 접근 0, ID 중복 0",Architect/QA,Architect/QA,7,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-004,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/re-run/failure 복구 rehearsal 고도화,DbUp fresh/upgrade/re-run/failure 복구 rehearsal,PostgreSQL 승인 버전에서 4 시나리오와 checksum 변경 차단 통과,DBA/BE,Architect/QA,8,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-005,S0,W1-2,Cross,Cross-cutting,Security,SEC,REQ-SEC-BASE,Cross,Cross,Cross,Cross,Cross,"OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed 고도화","OIDC/JWT ADR, DevelopmentHeader 제한, fail-closed","비개발 무인증 접근 0, secret/log/prompt 노출 0",Security/BE,Architect/QA,7,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,ASYNC,REQ-ASYNC-001,Cross,Cross,Cross,Cross,Cross,Outbox publisher 고도화,Outbox publisher·Inbox lease·dead-letter·replay,"duplicate 0, crash-before/after-publish 시나리오와 replay hash 통과",BE/SRE,Architect/QA,10,AEG-X-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-007,S0,W1-2,Cross,Cross-cutting,Observability,OPS,REQ-OBS-001,Cross,Cross,Cross,Cross,Cross,Serilog/OTel correlation 고도화,Serilog/OTel correlation·metric naming·Telegram redaction,"trace→job→decision→outbox 연결, PII redaction test 통과",SRE/Security,Architect/QA,7,AEG-X-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-008,S0,W1-2,Cross,Cross-cutting,API Contract,CONTRACT,REQ-API-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact 고도화,OpenAPI artifact·ProblemDetails taxonomy·FE contract generation,OpenAPI diff와 breaking change approval 없이는 Release 차단,BE/FE Architect,Architect/QA,8,AEG-X-003,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-01,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,GOV,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,정책·범위·실패상태 계약 확정,"REQ-PLAT-001, VS-00 SLICE_SPEC, ADR/Decision Log",사용자 결과 '빌드·마이그레이션·관제 가능한 단일 배포 골격'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,-,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-02,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DATA,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,데이터 시점·스키마·정합성 계약,"MIG-0000/0013, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-00-01,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-03,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,DOMAIN,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,도메인 불변조건·상태전이 구현,"src/Modules/Host/BuildingBlocks/PlatformBootstrap/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-00-02,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-04,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,BE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vertical Slice API/Application/SQL 구현,HEALTH-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-00-03,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-00-05,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,ASYNC,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-00-04,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-06,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,FE,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,Vue feature·Zod·Query·컴포넌트 구현,UI-PLAT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-00-05,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-00-07,S0,W1-2,VS-00,PlatformBootstrap,Host/BuildingBlocks,TESTOPS,REQ-PLAT-001,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,회귀·관제·Runbook·Rollback 증거,T-ARCH-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-00-06,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-009,S1,W3-4,Cross,Cross-cutting,Data Governance,DATA,REQ-DATA-SOURCE,Cross,Cross,Cross,Cross,Cross,Source catalog/license/SLA/timezone/unit/checksum 고도화,Source catalog/license/SLA/timezone/unit/checksum,승인 없는 source가 ingestion 또는 추천으로 진입하지 않음,Data Governance,Architect/QA,8,AEG-X-001,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-01,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,GOV,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,정책·범위·실패상태 계약 확정,"REQ-IAM-001, VS-01 SLICE_SPEC, ADR/Decision Log",사용자 결과 'MFA·RBAC·업무분장과 승인 경계'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-02,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DATA,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,데이터 시점·스키마·정합성 계약,"MIG-IAM-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-01-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-03,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,DOMAIN,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,도메인 불변조건·상태전이 구현,"src/Modules/IdentityAccess/ManageIdentityAndRoles/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-01-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-04,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,BE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vertical Slice API/Application/SQL 구현,IAM-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-01-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-01-05,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,ASYNC,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-01-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-06,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,FE,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,Vue feature·Zod·Query·컴포넌트 구현,UI-IAM-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-01-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-01-07,S1,W3-4,VS-01,ManageIdentityAndRoles,IdentityAccess,TESTOPS,REQ-IAM-001,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,회귀·관제·Runbook·Rollback 증거,T-IAM-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-01-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-01,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,GOV,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,정책·범위·실패상태 계약 확정,"REQ-SEC-001, VS-02 SLICE_SPEC, ADR/Decision Log",사용자 결과 '상장·상폐·상품구조·거래가능성의 PIT 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-00,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-02,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DATA,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,데이터 시점·스키마·정합성 계약,"MIG-SEC-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-02-01,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-03,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,DOMAIN,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/SynchronizeSecurityMaster/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-02-02,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-04,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,BE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vertical Slice API/Application/SQL 구현,"SEC-01/02,DAT-01; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-02-03,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-02-05,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,ASYNC,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Event/Job/Inbox·재처리 구현,"J01; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-02-04,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-06,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,FE,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SEC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-02-05,G1-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-02-07,S1,W3-4,VS-02,SynchronizeSecurityMaster,SecurityMaster,TESTOPS,REQ-SEC-001,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,회귀·관제·Runbook·Rollback 증거,T-SEC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-02-06,G1-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-010,S2,W5-6,Cross,Cross-cutting,Read Model,PROJECTION,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,projection owner/version/watermark/rebuild/staleness 고도화,projection owner/version/watermark/rebuild/staleness,"write model 직접 UI join 0, rebuild 결과 hash 동일",BE/Data,Architect/QA,8,AEG-X-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-01,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,GOV,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,정책·범위·실패상태 계약 확정,"REQ-DAT-001, VS-03 SLICE_SPEC, ADR/Decision Log",사용자 결과 '원시·조정 OHLCV·FX·금리의 revision 적재'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-02,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,데이터 시점·스키마·정합성 계약,"MIG-MD-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-03-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-03,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DOMAIN,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,도메인 불변조건·상태전이 구현,"src/Modules/MarketData/IngestMarketDataPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-03-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-04,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,BE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vertical Slice API/Application/SQL 구현,DAT-02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-03-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-03-05,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,ASYNC,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Event/Job/Inbox·재처리 구현,"J02; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-03-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-06,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,FE,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-03-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-03-07,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,TESTOPS,REQ-DAT-001,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,회귀·관제·Runbook·Rollback 증거,T-DQ-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-03-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-01,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,GOV,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,정책·범위·실패상태 계약 확정,"REQ-CA-001, VS-04 SLICE_SPEC, ADR/Decision Log",사용자 결과 '분할·배당·증자·합병·상폐의 가격·수량·원가 일관성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-03",G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-02,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DATA,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,데이터 시점·스키마·정합성 계약,"MIG-CA-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-04-01,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-03,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,DOMAIN,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,도메인 불변조건·상태전이 구현,"src/Modules/SecurityMaster/ApplyCorporateActions/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-04-02,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-04,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,BE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vertical Slice API/Application/SQL 구현,DAT-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-04-03,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-04-05,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,ASYNC,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Event/Job/Inbox·재처리 구현,"J03; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-04-04,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-06,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,FE,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-DQ-02; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-04-05,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-04-07,S2,W5-6,VS-04,ApplyCorporateActions,SecurityMaster,TESTOPS,REQ-CA-001,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,회귀·관제·Runbook·Rollback 증거,T-CA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-04-06,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-01,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,GOV,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,정책·범위·실패상태 계약 확정,"REQ-FND-001, VS-05 SLICE_SPEC, ADR/Decision Log",사용자 결과 '공시·재무·컨센서스 공개시각과 정정 이력'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-02,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DATA,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,데이터 시점·스키마·정합성 계약,"MIG-FND-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-05-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-03,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,DOMAIN,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,도메인 불변조건·상태전이 구현,"src/Modules/FundamentalsPIT/IngestFundamentalsPIT/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-05-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-04,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,BE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vertical Slice API/Application/SQL 구현,DAT-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-05-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-05-05,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,ASYNC,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Event/Job/Inbox·재처리 구현,"J04; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-05-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-06,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,FE,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,Vue feature·Zod·Query·컴포넌트 구현,UI-FND-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-05-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-05-07,S3,W7-8,VS-05,IngestFundamentalsPIT,FundamentalsPIT,TESTOPS,REQ-FND-001,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,회귀·관제·Runbook·Rollback 증거,T-FND-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-05-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-01,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,GOV,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,정책·범위·실패상태 계약 확정,"REQ-COST-001, VS-06 SLICE_SPEC, ADR/Decision Log",사용자 결과 '계좌·시장·상품별 Fee/Tax/FX valid-time 계약'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-02,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DATA,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,데이터 시점·스키마·정합성 계약,"MIG-COST-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-06-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-03,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,DOMAIN,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainFeeTaxFxSchedule/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-06-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-04,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,BE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vertical Slice API/Application/SQL 구현,COST-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-06-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-06-05,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,ASYNC,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Event/Job/Inbox·재처리 구현,"J04C; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-06-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-06,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,FE,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,Vue feature·Zod·Query·컴포넌트 구현,UI-COST-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-06-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-06-07,S3,W7-8,VS-06,MaintainFeeTaxFxSchedule,PortfolioRisk,TESTOPS,REQ-COST-001,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,회귀·관제·Runbook·Rollback 증거,T-COST-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-06-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-01,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,GOV,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,정책·범위·실패상태 계약 확정,"REQ-LED-001, VS-08 SLICE_SPEC, ADR/Decision Log",사용자 결과 '현금·체결·Lot·Cycle 불변 원장과 대사 기준'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-02,VS-06",G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-02,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DATA,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,데이터 시점·스키마·정합성 계약,"MIG-LED-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-08-01,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-03,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DOMAIN,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/MaintainPortfolioLedger/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-08-02,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-04,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,BE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vertical Slice API/Application/SQL 구현,POR-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-08-03,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-08-05,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,ASYNC,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Event/Job/Inbox·재처리 구현,"J12L; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-08-04,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-06,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,FE,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,Vue feature·Zod·Query·컴포넌트 구현,UI-POR-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-08-05,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-08-07,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,TESTOPS,REQ-LED-001,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,회귀·관제·Runbook·Rollback 증거,T-LED-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-08-06,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-011,S4,W9-10,Cross,Cross-cutting,Algorithm,GOLDEN,REQ-ALG-GOLDEN,Cross,Cross,Cross,Cross,Cross,Python↔C# Golden vector 고도화,Python↔C# Golden vector·epsilon·rounding 계약,정책 ID별 경계·우선순위·cost×2 결과 허용오차 내 동일,Quant/QA,Architect/QA,10,VS-09,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-01,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,GOV,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,정책·범위·실패상태 계약 확정,"REQ-EVD-001, VS-09 SLICE_SPEC, ADR/Decision Log",사용자 결과 'Dataset/Model/Config/Code SHA가 동결된 Evidence'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-02,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,데이터 시점·스키마·정합성 계약,"MIG-EVD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-09-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-03,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DOMAIN,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,도메인 불변조건·상태전이 구현,"src/Modules/ResearchFactors/BuildEvidenceSnapshot/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-09-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-04,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,BE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vertical Slice API/Application/SQL 구현,EVD-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-09-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-09-05,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,ASYNC,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Event/Job/Inbox·재처리 구현,"J06; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-09-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-06,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,FE,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-09-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-09-07,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,TESTOPS,REQ-EVD-001,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,회귀·관제·Runbook·Rollback 증거,T-EVD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-09-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-01,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,GOV,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,정책·범위·실패상태 계약 확정,"REQ-SELL-001, VS-10 SLICE_SPEC, ADR/Decision Log",사용자 결과 '우선순위가 보존된 HOLD/부분매도/전량매도 결정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-09,VS-13",G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-02,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DATA,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,데이터 시점·스키마·정합성 계약,"MIG-SIG-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-10-01,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-03,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,DOMAIN,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/GenerateSellDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-10-02,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-04,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,BE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vertical Slice API/Application/SQL 구현,SIG-SELL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-10-03,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-05,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ASYNC,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Event/Job/Inbox·재처리 구현,"J08S; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-10-04,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-06,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-SELL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-10-05,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-10-07,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,TESTOPS,REQ-SELL-001,SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,회귀·관제·Runbook·Rollback 증거,T-SELL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-10-06,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-012,S5,W11-12,Cross,Cross-cutting,Research,REPRO,REQ-REPRO-001,Cross,Cross,Cross,Cross,Cross,dataset/code/config/environment manifest와 artifact hash 고도화,dataset/code/config/environment manifest와 artifact hash,"동일 manifest·seed 결과 재현, 실패 artifact 보존",Quant/Data,Architect/QA,12,AEG-X-009,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-01,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,GOV,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,정책·범위·실패상태 계약 확정,"REQ-RE-001, VS-11 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비가치훼손 매도의 재진입 계약·단계·만료'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-10,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-02,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DATA,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,데이터 시점·스키마·정합성 계약,"MIG-RE-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-11-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-03,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,DOMAIN,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,도메인 불변조건·상태전이 구현,"src/Modules/SignalEngine/ManageReentryWatch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-11-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-04,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,BE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vertical Slice API/Application/SQL 구현,RE-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-11-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-11-05,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ASYNC,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Event/Job/Inbox·재처리 구현,"J09; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-11-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-06,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,FE,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RE-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-11-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-11-07,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,TESTOPS,REQ-RE-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,회귀·관제·Runbook·Rollback 증거,T-RE-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-11-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-01,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,GOV,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,정책·범위·실패상태 계약 확정,"REQ-BKT-001, VS-19 SLICE_SPEC, ADR/Decision Log",사용자 결과 '동결 manifest 기반 워크포워드·OOS·비용 스트레스 재현'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-04,VS-05,VS-06,VS-09",G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-02,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DATA,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,데이터 시점·스키마·정합성 계약,"MIG-BKT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-19-01,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-03,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,DOMAIN,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/RunFrozenBacktest/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-19-02,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-04,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,BE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vertical Slice API/Application/SQL 구현,BKT-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-19-03,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-19-05,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,ASYNC,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Event/Job/Inbox·재처리 구현,"J-BKT; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-19-04,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-06,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,FE,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BKT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-19-05,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-19-07,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,TESTOPS,REQ-BKT-001,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,회귀·관제·Runbook·Rollback 증거,T-BKT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-19-06,G2,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-01,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,GOV,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,정책·범위·실패상태 계약 확정,"REQ-CLI-001, VS-07 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 목표·위험성향·제한상품의 버전 관리'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-02,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DATA,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,데이터 시점·스키마·정합성 계약,"MIG-CLI-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-07-01,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-03,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,DOMAIN,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ManageClientIPS/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-07-02,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-04,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,BE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vertical Slice API/Application/SQL 구현,CLI-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-07-03,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-07-05,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,ASYNC,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-07-04,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-06,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,FE,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLI-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-07-05,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-07-07,S6,W13-14,VS-07,ManageClientIPS,ClientAdvisory,TESTOPS,REQ-CLI-001,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,회귀·관제·Runbook·Rollback 증거,T-CLI-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-07-06,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-01,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,GOV,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,정책·범위·실패상태 계약 확정,"REQ-REC-001, VS-14 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객별 BUY/HOLD/SELL/REENTER/REBALANCE 제안 패키지'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-10,VS-12,VS-13",MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-02,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DATA,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,데이터 시점·스키마·정합성 계약,"MIG-REC-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-14-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-03,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,DOMAIN,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/GenerateDailyRecommendations/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-14-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-04,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vertical Slice API/Application/SQL 구현,SIG-01/02/03; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-14-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-14-05,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,ASYNC,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Event/Job/Inbox·재처리 구현,"J08; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-14-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-06,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,FE,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REC-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-14-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-14-07,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,TESTOPS,REQ-REC-001,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,회귀·관제·Runbook·Rollback 증거,T-REC-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-14-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-01,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,GOV,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,정책·범위·실패상태 계약 확정,"REQ-REV-001, VS-15 SLICE_SPEC, ADR/Decision Log",사용자 결과 'maker-checker 승인·보류·기각과 낙관적 동시성'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-14,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-02,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DATA,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,데이터 시점·스키마·정합성 계약,"MIG-REV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-15-01,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-03,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,DOMAIN,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/ReviewRecommendation/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-15-02,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-04,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,BE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vertical Slice API/Application/SQL 구현,SIG-04; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-15-03,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-15-05,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,ASYNC,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-06,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,FE,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-15-05,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-15-07,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,TESTOPS,REQ-REV-001,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,회귀·관제·Runbook·Rollback 증거,T-REV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-15-06,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-013,S8,W17-18,Cross,Cross-cutting,Audit,TRACE,REQ-AUDIT-E2E,Cross,Cross,Cross,Cross,Cross,Evidence→Decision→Review→Publish→Outcome trace API 고도화,Evidence→Decision→Review→Publish→Outcome trace API,"publication/decision 기준 누락 링크 0, correction event 보존",Compliance/BE,Architect/QA,8,VS-18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-01,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,GOV,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,정책·범위·실패상태 계약 확정,"REQ-PUB-001, VS-16 SLICE_SPEC, ADR/Decision Log",사용자 결과 '승인·유효·데이터 정상 제안만 고객 공개'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-15,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-02,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DATA,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,데이터 시점·스키마·정합성 계약,"MIG-PUB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-16-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-03,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,DOMAIN,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/PublishClientAdvice/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-16-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-04,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vertical Slice API/Application/SQL 구현,SIG-05; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-16-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-16-05,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,ASYNC,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Event/Job/Inbox·재처리 구현,"J-PUB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-16-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-06,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,FE,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-ADV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-16-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-16-07,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,TESTOPS,REQ-PUB-001,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,회귀·관제·Runbook·Rollback 증거,T-PUB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-16-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-01,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,GOV,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,정책·범위·실패상태 계약 확정,"REQ-CLD-001, VS-17 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 수락·거절·보류와 attribution 연결'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,VS-16,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-02,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DATA,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,데이터 시점·스키마·정합성 계약,"MIG-CLD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-17-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-03,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,DOMAIN,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,도메인 불변조건·상태전이 구현,"src/Modules/ClientAdvisory/RecordClientDecision/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-17-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-04,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,BE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vertical Slice API/Application/SQL 구현,SIG-06; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-17-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-17-05,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,ASYNC,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Event/Job/Inbox·재처리 구현,"-; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-17-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-06,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,FE,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-CLD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-17-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-17-07,S8,W17-18,VS-17,RecordClientDecision,ClientAdvisory,TESTOPS,REQ-CLD-001,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,회귀·관제·Runbook·Rollback 증거,T-CLD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-17-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-01,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,정책·범위·실패상태 계약 확정,"REQ-EVA-001, VS-18 SLICE_SPEC, ADR/Decision Log",사용자 결과 '1/5/20/63/126/252일 결과·매도·재진입 품질 평가'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-10,VS-11,VS-16,VS-17",G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-02,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,데이터 시점·스키마·정합성 계약,"MIG-EVA-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-18-01,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-03,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DOMAIN,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,도메인 불변조건·상태전이 구현,"src/Modules/BacktestingEvaluation/EvaluateDecisionOutcome/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-18-02,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-04,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vertical Slice API/Application/SQL 구현,EVA-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-18-05,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ASYNC,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Event/Job/Inbox·재처리 구현,"J10/J11; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-18-04,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-06,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,Vue feature·Zod·Query·컴포넌트 구현,UI-EVA-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-18-05,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-07,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,TESTOPS,REQ-EVA-001,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,회귀·관제·Runbook·Rollback 증거,T-EVA-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-18-06,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-01,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,GOV,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,정책·범위·실패상태 계약 확정,"REQ-RISK-001, VS-13 SLICE_SPEC, ADR/Decision Log",사용자 결과 'ES·집중·상관·자본바닥 위험 스냅샷'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-08",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-02,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DATA,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,데이터 시점·스키마·정합성 계약,"MIG-RISK-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-13-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-03,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,DOMAIN,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/CalculatePortfolioRisk/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-13-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-04,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,BE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vertical Slice API/Application/SQL 구현,POR-02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-13-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-13-05,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,ASYNC,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Event/Job/Inbox·재처리 구현,"J07; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-13-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-06,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,FE,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RISK-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-13-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-13-07,S9,W19-20,VS-13,CalculatePortfolioRisk,PortfolioRisk,TESTOPS,REQ-RISK-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,회귀·관제·Runbook·Rollback 증거,T-RISK-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-13-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-01,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,GOV,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,정책·범위·실패상태 계약 확정,"REQ-REB-001, VS-21 SLICE_SPEC, ADR/Decision Log",사용자 결과 '비용·세금·위험예산·제약을 만족하는 리밸런싱'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-08,VS-12,VS-13",Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-02,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DATA,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,데이터 시점·스키마·정합성 계약,"MIG-REB-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-21-01,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-03,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,DOMAIN,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/BuildRebalanceProposal/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-21-02,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-04,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,BE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vertical Slice API/Application/SQL 구현,REB-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-21-03,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-21-05,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,ASYNC,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Event/Job/Inbox·재처리 구현,"J-REB; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-21-04,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-06,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,FE,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,Vue feature·Zod·Query·컴포넌트 구현,UI-REB-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-21-05,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-21-07,S9,W19-20,VS-21,BuildRebalanceProposal,PortfolioRisk,TESTOPS,REQ-REB-001,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,회귀·관제·Runbook·Rollback 증거,T-REB-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-21-06,Portfolio-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-01,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,GOV,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,정책·범위·실패상태 계약 확정,"REQ-BUY-001, VS-12 SLICE_SPEC, ADR/Decision Log",사용자 결과 'PIT 품질·밸류·수정·모멘텀을 결합한 후보 순위'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-03,VS-05,VS-06,VS-09",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-02,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DATA,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,데이터 시점·스키마·정합성 계약,"MIG-BUY-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-12-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-03,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,DOMAIN,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,도메인 불변조건·상태전이 구현,"src/Modules/ValuationForecast/RankBuyCandidates/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-12-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-04,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,BE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vertical Slice API/Application/SQL 구현,BUY-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-12-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-12-05,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,ASYNC,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Event/Job/Inbox·재처리 구현,"J08B; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-12-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-06,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,FE,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,Vue feature·Zod·Query·컴포넌트 구현,UI-BUY-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-12-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-12-07,S10,W21-22,VS-12,RankBuyCandidates,ValuationForecast,TESTOPS,REQ-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,회귀·관제·Runbook·Rollback 증거,T-BUY-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-12-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-01,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,GOV,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,정책·범위·실패상태 계약 확정,"REQ-RPL-001, VS-22 SLICE_SPEC, ADR/Decision Log",사용자 결과 '적합성·유동성·비용후 기회우위 대체상품 비교'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-07,VS-12,VS-13",Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-02,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DATA,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,데이터 시점·스키마·정합성 계약,"MIG-RPL-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-22-01,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-03,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,DOMAIN,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,도메인 불변조건·상태전이 구현,"src/Modules/PortfolioRisk/SuggestReplacementProducts/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-22-02,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-04,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,BE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vertical Slice API/Application/SQL 구현,RPL-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-22-03,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-22-05,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,ASYNC,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Event/Job/Inbox·재처리 구현,"J-RPL; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-22-04,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-06,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,FE,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPL-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-22-05,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-22-07,S10,W21-22,VS-22,SuggestReplacementProducts,PortfolioRisk,TESTOPS,REQ-RPL-001,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,회귀·관제·Runbook·Rollback 증거,T-RPL-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-22-06,Portfolio Gate,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-014,S11,W23-24,Cross,Cross-cutting,Model Risk,VALIDATION,REQ-MODEL-RISK,Cross,Cross,Cross,Cross,Cross,CSCV/PBO 고도화,CSCV/PBO·DSR·block bootstrap·시도 원장,"PBO≤20%, DSR≥95%, cost×2 utility 양수 또는 승격 차단",Quant/Risk,Architect/QA,15,AEG-X-012,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-015,S11,W23-24,Cross,Cross-cutting,Shadow,EVAL,REQ-SHADOW-001,Cross,Cross,Cross,Cross,Cross,252거래일 고도화,252거래일·복수 국면 일평가 scorecard,적중률 단독 아닌 calibration/ES/false-exit/reentry/운영무결성 판정,Quant/Ops,Architect/QA,14,VS-18,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-01,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,정책·범위·실패상태 계약 확정,"REQ-MOD-001, VS-20 SLICE_SPEC, ADR/Decision Log",사용자 결과 '모델 승격 증거·승인·롤백·챔피언/챌린저'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-18,VS-19",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-02,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DATA,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,데이터 시점·스키마·정합성 계약,"MIG-MOD-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-20-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-03,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,DOMAIN,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/PromoteModelVersion/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-20-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-04,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,BE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vertical Slice API/Application/SQL 구현,MOD-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-20-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-20-05,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ASYNC,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Event/Job/Inbox·재처리 구현,"J-MOD; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-20-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-06,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,Vue feature·Zod·Query·컴포넌트 구현,UI-MOD-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-20-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-20-07,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,TESTOPS,REQ-MOD-001,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,회귀·관제·Runbook·Rollback 증거,T-MOD-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-20-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-01,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,GOV,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,정책·범위·실패상태 계약 확정,"REQ-RPT-001, VS-24 SLICE_SPEC, ADR/Decision Log",사용자 결과 '고객 리포트·SignalR·Telegram 운영 경보'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-16,VS-18",G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-02,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DATA,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,데이터 시점·스키마·정합성 계약,"MIG-RPT-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-24-01,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-03,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,DOMAIN,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,도메인 불변조건·상태전이 구현,"src/Modules/ReportingNotifications/ReportAndNotify/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-24-02,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-04,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,BE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vertical Slice API/Application/SQL 구현,RPT-01; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-24-03,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-24-05,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,ASYNC,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Event/Job/Inbox·재처리 구현,"J11R; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-24-04,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-06,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,FE,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RPT-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-24-05,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-24-07,S11,W23-24,VS-24,ReportAndNotify,ReportingNotifications,TESTOPS,REQ-RPT-001,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,회귀·관제·Runbook·Rollback 증거,T-RPT-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-24-06,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-016,S12,W25-26,Cross,Cross-cutting,Broker,CAPABILITY,REQ-KIS-OFF,Cross,Cross,Cross,Cross,Cross,KIS 주문 제출 startup/CI/runtime 차단 고도화,KIS 주문 제출 startup/CI/runtime 차단,"외부 주문 호출 0, capability override 감사·kill-switch 통과",Security/Ops,Architect/QA,7,AEG-X-005,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-01,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,GOV,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,정책·범위·실패상태 계약 확정,"REQ-RECON-001, VS-23 SLICE_SPEC, ADR/Decision Log",사용자 결과 '브로커·내부 주문·체결·보유·현금 break와 승인 정정'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-08,VS-16",Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-02,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,데이터 시점·스키마·정합성 계약,"MIG-EXE-001/002, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-23-01,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-03,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DOMAIN,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,도메인 불변조건·상태전이 구현,"src/Modules/ExecutionReconciliation/ReconcilePositionsAndFills/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-23-02,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-04,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,BE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vertical Slice API/Application/SQL 구현,"EXE-01/02,REC-01/02; Endpoint/Validator/Application/Dapper/Outbox",인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-23-03,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-23-05,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,ASYNC,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Event/Job/Inbox·재처리 구현,"J12; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-23-04,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-06,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,FE,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,Vue feature·Zod·Query·컴포넌트 구현,UI-RECON-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-23-05,Pilot-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-23-07,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,TESTOPS,REQ-RECON-001,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,회귀·관제·Runbook·Rollback 증거,T-RECON-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-23-06,Pilot-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-017,S13,W27-28,Cross,Cross-cutting,DR,OPS,REQ-DR-001,Cross,Cross,Cross,Cross,Cross,RPO/RTO 고도화,RPO/RTO·backup/restore·region/host failure rehearsal,"승인 RPO/RTO 내 복구, 원장·outbox·projection 대사 100%",SRE/DBA,Architect/QA,12,AEG-X-006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-01,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,GOV,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,정책·범위·실패상태 계약 확정,"REQ-GOV-001, VS-25 SLICE_SPEC, ADR/Decision Log",사용자 결과 '입력→결정→승인→공개→실행→평가 추적과 단계별 차단'·비목표·권한·예외·Source/Assumption/Unknown이 승인됨,PM/Architect,Compliance/Owner,3,"VS-01,VS-16,VS-20,VS-23",G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-02,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DATA,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,데이터 시점·스키마·정합성 계약,"MIG-GOV-001, DATA_CONTRACT, DQ/lineage 규칙",published_at/revision/valid-time/hash/단위/격리/재처리와 소유자가 정의되고 overwrite 경로가 없음,Data Architect/DBA,Quant/QA,5,AEG-VS-25-01,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-03,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,DOMAIN,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,도메인 불변조건·상태전이 구현,"src/Modules/GovernanceAudit/AuditAndKillSwitch/Domain, 정책 결정표",순수 정책 테스트에서 우선순위·경계값·단조성·금지 전이가 통과하고 Infrastructure 의존이 없음,BE/Quant Lead,Architect/QA,6,AEG-VS-25-02,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-04,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,BE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vertical Slice API/Application/SQL 구현,GOV-01/02; Endpoint/Validator/Application/Dapper/Outbox,인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치,BE Lead,Security/QA,8,AEG-VS-25-03,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-25-05,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,ASYNC,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Event/Job/Inbox·재처리 구현,"J-GOV; integration event, JobRun, watermark, inbox","동일 ScopeKey 재실행 결과가 동일하고 중복 side effect 0, transient/business hold/poison이 분리됨",BE/SRE,Data/Ops,5,AEG-VS-25-04,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-06,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,FE,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,Vue feature·Zod·Query·컴포넌트 구현,UI-GOV-01; route/api/schema/queries/pages/components,loading/empty/partial/stale/warn/error/401/403/409/expired/readonly와 접근성·권한 경계가 검증됨,FE Lead,UX/QA,6,AEG-VS-25-05,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-25-07,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TESTOPS,REQ-GOV-001,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,회귀·관제·Runbook·Rollback 증거,T-GOV-001; xUnit/Vitest/Playwright/Data/Replay; OTel/alert/runbook,Golden·integration·failure·replay·E2E와 metric/alert/Owner/Secondary/rollback rehearsal가 Release Evidence에 연결됨,QA/SRE,Module Owner,7,AEG-VS-25-06,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-018,S14,W29-30,Cross,Cross-cutting,Performance,NFR,REQ-NFR-001,Cross,Cross,Cross,Cross,Cross,API P95 고도화,API P95·batch SLA·portfolio 규모·backfill 부하시험,개장 전 추천 SLA와 고객 API SLO가 동시에 충족,SRE/QA,Architect/QA,10,AEG-X-017,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-X-019,S14,W29-30,Cross,Cross-cutting,Cutover,RELEASE,REQ-CUT-001,Cross,Cross,Cross,Cross,Cross,dry-run/backfill/recon/rollback/release evidence 고도화,dry-run/backfill/recon/rollback/release evidence,"미승인 공개 0, duplicate 0, rollback 리허설과 승인 서명",PM/Ops,Architect/QA,10,AEG-X-018,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-020,S15,W31-32,Cross,Cross-cutting,Hypercare,OPS,REQ-HYP-001,Cross,Cross,Cross,Cross,Cross,P1/P2 triage 고도화,P1/P2 triage·daily reconciliation·debt burn-down,초기 안정화 Exit 기준·Owner·잔여 부채 승인,Ops/PM,Architect/QA,8,AEG-X-019,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-DOC-022,Current-session source coverage and SHA register,Source Coverage Matrix/Source Index,6 current attachments preserved byte-for-byte and hashes match,PM/Architect,QA/Compliance,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG22-X-002,S0,W1-2,Cross,Cross-cutting,Toolchain,DEVEX,REQ-PLAT-TOOL,Cross,Cross,Cross,Cross,T-CI-022,Offline-safe package manager and lockfile decision,packageManager/LOCKFILE_REQUIRED/CI guard,No silent dependency resolution; frozen install blocks until approved lock exists,DevOps,FE Lead,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-003,S0,W1-2,Cross,Cross-cutting,Architecture,ARCH,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-ARCH-022,Module/Vertical Slice template pack,"templates/dotnet,vue,sql,hangfire",New slice can be generated without Generic Repository or controller-service duplication,Architect,BE/FE Leads,6,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-004,S0,W1-2,Cross,Cross-cutting,API,BE,REQ-API-001,API-CONTEXT-01,Cross,Cross,Cross,T-API-022,Correlation/Idempotency/ProblemDetails shared contract,request execution standard,400/401/403/409/422 and trace/idempotency rules consistent,BE Lead,QA/SRE,6,AEG-X-004,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-005,S0,W1-2,Cross,Cross-cutting,Database,DBA,REQ-DB-REHEARSAL,Cross,MIG-REHEARSAL,Cross,Cross,T-DB-022,DbUp fresh/upgrade/re-run/failure rehearsal script,scripts/rehearse_migrations.sh,Approved PostgreSQL runner produces 4 scenario artifacts,DBA,BE/DevOps,8,AEG-X-004,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-006,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-OUTBOX-001,Cross,MIG-0013,JOB-OUTBOX-01,Cross,T-OUTBOX-022,Outbox lease/dead-letter/replay hardening,outbox dispatcher template/runbook,Crash-before/after publish yields no lost message and idempotent downstream,BE/SRE,QA,10,AEG-X-006,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-007,S0,W1-2,Cross,Cross-cutting,Reliability,BE,REQ-INBOX-001,Cross,MIG-0013,JOB-INBOX-01,Cross,T-INBOX-022,Inbox duplicate/result-hash contract,inbox consumer template,Same consumer/message performs side effect once and replay hash is stable,BE/SRE,QA,8,AEG-X-007,G3,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-008,S0,W1-2,Cross,Cross-cutting,Batch,JOB,REQ-JOB-001,Cross,MIG-0000,JOB-RUN-STD,UI-OPS-JOB,T-JOB-022,JobRun/Watermark/heartbeat scope standard,ReliableJob template,Concurrent duplicate is held; retry preserves scope/version/input hash,BE/SRE,QA/Data,8,AEG-X-008,G1,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-001,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,Separate security weight and lot weight,SellDecisionInput/context/migration,Lot ratio changes only lot weight; target security weight is exact,Quant/BE,DBA/QA,10,AEG-VS-10-03,G2-A,SOURCE+INFERENCE,P0,PLANNED +AEG22-VS10-002,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,ALG,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,Persist ordered policy evaluation trace,policy_trace_json/API schema,Applied/blocked/not-applicable reasons reproduce decision priority,BE/Quant,FE/QA,8,AEG22-VS10-001,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS10-003,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,QA,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-GOLDEN-022,Golden/boundary/monotonic/property vectors,unit/golden vectors,"Core clamp, survival bypass, priority and future PIT rejection pass",QA/Quant,BE,8,AEG22-VS10-002,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS10-004,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,FE,REQ-SIG-UI,SIG-RESEARCH-01,Cross,Cross,UI-SIG-01,T-FE-SIG-022,FE runtime contract for weights and policy trace,Zod schema/page/tests,Malformed response and lot>security input fail closed,FE Lead,QA/BE,5,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS09-001,S4,W9-10,VS-09,BuildEvidenceSnapshot,ResearchFactors,DATA,REQ-EVD-001,Cross,MIG-EVD-001,J06,UI-EVD-01,T-EVD-022,Evidence completeness grade and required-field manifest,Evidence contract delta,Missing total-return/delisting/cost source downgrades or quarantines recommendation,Data/Quant,BE/QA,8,AEG-VS-09-02,G2-A,SOURCE,P0,PLANNED +AEG22-VS03-001,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-001,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-PIT-022,Enforce published_at cutoff and timezone,PIT query contract/data test,Lookahead count remains zero across replay and timezone boundaries,Data Architect,DBA/QA,8,AEG-VS-03-03,G1-B,SOURCE,P0,PLANNED +AEG22-VS03-002,S2,W5-6,VS-03,IngestMarketDataPIT,MarketData,DATA,REQ-DAT-LIC,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,Source license/SLA/checksum fail-closed gate,Source catalog contract,Unapproved/checksum-drift source cannot reach canonical/PIT layer,Data Governance,BE/Compliance,7,AEG22-VS03-001,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS08-001,S3,W7-8,VS-08,MaintainPortfolioLedger,PortfolioRisk,DB,REQ-LEDGER-001,POR-01,MIG-POR-001,LedgerEntryApplied,UI-POR-01,T-LEDGER-022,Lot weight derivation and reconciliation invariant,ledger/read-model contract,Lot market values equal security/account totals within tolerance,DBA/BE,Quant/QA,10,AEG-VS-08-03,G1,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS11-001,S5,W11-12,VS-11,ManageReentryWatch,SignalEngine,ALG,ALG-REENTRY-001,SIG-02,MIG-SIG-REENTRY,J09,UI-SIG-02,T-REENTRY-022,Reentry stage uniqueness and cycle reset proof,state transition/golden tests,Each stage once; new CycleId/Lot; old floor/cost/high not reused,Quant/BE,QA/DBA,9,AEG-VS-11-03,G2,SOURCE,P0,PLANNED +AEG22-VS14-001,S7,W15-16,VS-14,GenerateDailyRecommendations,ClientAdvisory,BE,REQ-ADV-001,ADV-01,MIG-ADV-001,J08,UI-ADV-01,T-ADV-RUN-022,Run isolation and partial-failure quarantine,run manifest/error partition,One portfolio failure cannot publish invalid advice to another,BE Lead,SRE/QA,10,AEG-VS-14-04,MVP-B,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS15-001,S7,W15-16,VS-15,ReviewRecommendation,ClientAdvisory,SEC,REQ-REV-001,ADV-02,MIG-ADV-002,RecommendationReviewed,UI-ADV-02,T-REV-022,Maker-checker optimistic concurrency proof,review version/ETag tests,Self-approval and stale update rejected with audit evidence,BE/Security,FE/QA,8,AEG-VS-15-04,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS16-001,S8,W17-18,VS-16,PublishClientAdvice,ClientAdvisory,BE,REQ-PUB-001,ADV-03,MIG-ADV-003,AdvicePublished,UI-CLI-01,T-PUB-022,Publish snapshot hash and staleness gate,publication immutable snapshot,Expired/revised/quarantined evidence blocks publish,BE/Compliance,QA/FE,9,AEG-VS-16-04,G3,SOURCE,P0,PLANNED +AEG22-VS18-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-DEF-022,Version false-exit/gain-capture definitions,metric definition registry,Historical scorecard reproducible by metric version/revision,Quant/Risk,Data/QA,8,AEG-VS-18-03,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG22-VS19-001,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QUANT,REQ-BT-001,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-ENV-022,Environment digest and full experiment registry,frozen manifest,Data/code/config/seed/environment/all variants hashed,Quant/Data,Risk/QA,10,AEG-VS-19-03,G2,SOURCE,P0,PLANNED +AEG22-VS19-002,S5,W11-12,VS-19,RunFrozenBacktest,BacktestingEvaluation,QA,REQ-BT-002,RES-01,MIG-RES-001,BacktestCompleted,UI-RES-01,T-BT-XLANG-022,Python-.NET decision golden cross-check,cross-language vectors,Policy/action/ratio/target/trace match within tolerance,QA/Quant,BE,8,AEG22-VS19-001,G2,DESIGN_PROPOSAL,P0,PLANNED +AEG22-VS23-001,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,OPS,REQ-REC-001,EXE-01,MIG-EXE-001,J12,UI-OPS-REC,T-REC-CORR-022,Approved correction/reversal workflow,break/correction/audit contract,No direct edit; before/after/hash/approver/replay reconcile to zero,Ops/DBA,Compliance/QA,10,AEG-VS-23-04,Pilot-A,SOURCE,P0,PLANNED +AEG22-VS25-001,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-GOV-001,GOV-01,MIG-GOV-001,KillSwitchChanged,UI-GOV-01,T-KILL-022,Automatic-order capability tripwire,capability tests/runbook,Any AutomaticOrder/KIS drift blocks start/release/action,Security/Ops,DevOps/QA,8,AEG-VS-25-04,ALL,SOURCE,P0,PLANNED +AEG22-X-009,S11,W23-24,Cross,Cross-cutting,Frontend,FE,REQ-FE-CONTRACT,Cross,Cross,Cross,Cross,T-FE-OPENAPI-022,OpenAPI artifact diff and generated contract plan,contract generation ADR,DTO drift visible in CI; Zod remains trust boundary,BE/FE,QA/Architect,7,AEG-X-012,G3,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-010,S11,W23-24,Cross,Cross-cutting,Observability,SRE,REQ-OBS-001,Cross,Cross,Cross,UI-OPS-01,T-OBS-022,Metric cardinality/PII/redaction budget,telemetry policy/tests,No high-cardinality account/security tags or PII in telemetry,SRE/Security,BE/QA,7,AEG-X-013,G5,DESIGN_PROPOSAL,P0,PLANNED +AEG22-X-011,S14,W29-30,Cross,Cross-cutting,Performance,SRE,REQ-CAP-001,Cross,Cross,Cross,Cross,T-CAP-022,Capacity assumptions and workload pack,capacity profile,Approved volumes map to API/batch/DB SLO evidence,PM/SRE,DBA/QA,10,AEG-X-025,G6-A,DESIGN_PROPOSAL,P1,PLANNED +AEG22-X-012,S15,W31-32,Cross,Cross-cutting,Release,OPS,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-022,Release evidence and rollback rehearsal,release manifest/checksum/runbook,Source→requirement→code→test→artifact hashes and rollback complete,PM/SRE,QA/Compliance,8,AEG22-X-011,G6,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-031,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,Rebuild seven-file current-session source coverage,Source matrix·SHA index,7개 첨부 원본·크기·SHA-256·역할이 패키지와 1:1 일치,PM/QA,Architect,4,AEG-X-001,G0,SOURCE,P0,PLANNED +AEG-X-032,S0,W1-2,Cross,Cross-cutting,CI/CD,DEVEX,REQ-PLAT-CI,Cross,Cross,Cross,Cross,T-CI-003,Correct stale CI validator and duplicate YAML key,Gitea ci.yml,"validate_v123 실행, 중복 working-directory 0, static/scaffold tests 연결",DevOps,QA,4,AEG-X-002,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-X-033,S0,W1-2,Cross,Cross-cutting,Architecture,SCAFFOLD,REQ-ARCH-SCAFFOLD,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,Implement deterministic fail-closed slice scaffolder,scaffold_slice.py·templates·tests,"dry-run deterministic, 기존 파일 overwrite 0, 미승인 placeholder 명시",Architect,BE/FE,7,AEG-X-003,G0,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-034,S0,W1-2,Cross,Cross-cutting,Contract,CONTRACT,REQ-CONTRACT-001,Cross,Cross,Cross,Cross,T-CONTRACT-001,Create machine-readable policy/event/metric contract registry,contracts/**,"JSON parse, C# 상수 교차검증, 이벤트 schema v2, metric definition version",Architect/Quant,QA/Risk,7,AEG-X-003,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-035,S0,W1-2,Cross,Cross-cutting,Validation,FITNESS,REQ-ARCH-001,Cross,Cross,Cross,Cross,T-STATIC-123,Extend static validator for semantic version and contract drift,validate_v123.py,"WBS 250, 7첨부, 0015, registry, context filter, CI key 검사 통과",QA,Architect,6,AEG-X-034,G0,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-08,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-CONTRACT-001,Centralize approved sell policy constants,SellPolicyContract.cs,정책 ID·우선순위·임계값 중복 제거 및 JSON registry와 일치,Quant/BE,Risk/QA,6,AEG-X-034,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-09,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Algorithm,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-ZERO-RATIO,Fix positive-edge zero-ratio opportunity sell defect,OpportunityCostPolicy.cs·tests,"edge>0·ratio=0에서 HOLD, trace=BLOCKED, 자동 10% 매도 0",BE/Quant,QA/Risk,5,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-10,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Data integrity,REQ-SIG-SELL,SIG-01,MIG-0015,-,-,T-SIG-SEM-001,Version lot/security weight semantics and block legacy contexts,0015 migration·context reader,weight_semantics_version=2만 결정 입력 사용; legacy backfill 추정 사용 0,DBA/BE,Quant/QA,8,AEG-VS-10-08,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-11,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Evidence,REQ-SIG-SELL,SIG-01/02,MIG-0015,EVT-SIG-001,UI-SIG-01,T-SIG-EVT-002,Persist decision and policy-trace contract versions,API·DB·event v2,decision_contract_version과 policy_trace_schema_version이 DB/API/event/hash에 포함,BE,DBA/FE/QA,7,AEG-VS-10-10,G2-A,DESIGN_PROPOSAL,P0,PLANNED +AEG-VS-10-12,S4,W9-10,VS-10,GenerateSellDecision,SignalEngine,Frontend,REQ-SIG-SELL,SIG-02,MIG-0015,-,UI-SIG-TRACE,T-FE-SIG-TRACE,Componentize ordered policy trace display,PolicyTracePanel.vue·Zod,우선순위/Disposition/요청·적용비율/Core clamp를 runtime contract로 표시,FE,UX/QA,5,AEG-VS-10-11,G2-A,DESIGN_PROPOSAL,P1,PLANNED +AEG-VS-18-08,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,Metric governance,REQ-EVAL-001,EVAL-01,MIG-EVAL-001,J10,UI-EVAL-01,T-EVAL-METRIC-001,Version false-exit and reentry metric definitions,outcome-metrics.v1.json,"분모/분자/평가창/집계/정의버전 명시, 연 2% 목표와 직접비교 금지",Quant/Risk,Data/QA,6,AEG-X-034,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-X-036,S1,W3-4,Cross,Cross-cutting,Security,AUTH,REQ-IAM-001,Cross,Cross,Cross,Cross,T-AUTH-ADR,Keep OIDC/JWT provider decision fail-closed,Decision Log,공급자/claims 미결정 시 Development 외 인증 성공 0,Security,PM/BE,3,AEG-X-005,G5,SOURCE,P0,PLANNED +AEG-X-037,S2,W5-6,Cross,Cross-cutting,Data governance,PIT,REQ-DAT-SOURCE,Cross,Cross,Cross,Cross,T-DATA-LICENSE,Reconfirm total-return/delisting/consensus source decisions,Decision Log·source catalog,미승인 source 추천 진입 0; DECISION_REQUIRED 유지,Data Governance,Legal/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-038,S3,W7-8,Cross,Cross-cutting,Cost data,PIT,REQ-COST-001,Cross,Cross,Cross,Cross,T-COST-PIT,Reconfirm Fee/Tax/FX valid-time schedule decisions,Decision Log·data contract,current 단일값 사용 0; 미결정 계좌/venue 추천 보류,Ops/Tax,DBA/Quant,4,AEG-X-009,G1,SOURCE,P0,PLANNED +AEG-X-039,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-013,Resolve survival cooldown bypass rule,Decision record·Golden vectors,승인 전 기존 fail-closed 유지; 승인 후 정책·모델카드·OOS 동시변경,Investment Committee,Quant/Risk/BE,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P0,PLANNED +AEG-X-040,S5,W11-12,Cross,Cross-cutting,Algorithm governance,DECISION,REQ-SIG-SELL,Cross,Cross,Cross,Cross,T-DEC-014,Resolve hard impairment 80-100% severity mapping,Decision record·evidence grading,severity source 미승인 시 100% 보수값 유지; 임의 80% 적용 금지,Investment Committee,Compliance/Quant,4,AEG-VS-10-08,G2,DECISION_REQUIRED,P1,PLANNED +AEG-X-041,S11,W23-24,Cross,Cross-cutting,Supply chain,SECURITY,REQ-SEC-SBOM,Cross,Cross,Cross,Cross,T-SBOM-001,Add SBOM/license/vulnerability release evidence contract,Release Evidence template,실제 scanner 미실행은 PASS 표기 금지; artifact 경로와 allowlist 필수,Security/DevOps,Legal/QA,5,AEG-X-032,G5,DESIGN_PROPOSAL,P1,PLANNED +AEG-X-042,S14,W29-30,Cross,Cross-cutting,Capacity,NFR,REQ-NFR-CAP,Cross,Cross,Cross,Cross,T-CAP-001,Approve load volumes before index or partition optimization,Capacity ADR,고객/계좌/종목/배치량 결정 전 투기적 index·partition 추가 0,PM/SRE,DBA/BE,5,DEC-011,G6-A,DECISION_REQUIRED,P1,PLANNED +AEG-X-043,S15,W31-32,Cross,Cross-cutting,Release,EVIDENCE,REQ-REL-001,Cross,Cross,Cross,Cross,T-REL-123,Assemble v12.3 release evidence and checksum manifest,Validation evidence·manifest·SHA256,실행/미실행을 구분하고 패키지 전 파일 hash·첨부 hash가 일치,QA/Release,PM/Architect,7,AEG-X-035,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-001,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,GOV,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-001,지속 모델 운영 자동화 경계 확정,model-operations.v1·promotion-gate.v1 계약,"EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY 외 모드 0, AUTO_PROMOTE/AUTO_ORDER 0",Risk/Architect,Compliance/Quant,4,DEC-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-002,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10/J11,UI-MO-01,T-MO-002,성과지표 정의 v2 확정,outcome-metrics.v2·Metric Definition Registry,각 지표의 분자·분모·평가창·집계·비용·PIT·revision 정의와 content hash 보존,Quant/Risk,Data/QA,6,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-003,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DATA,REQ-MO-EVAL-001,MO-PLAN-01,MIG-0016,J10,UI-MO-01,T-MO-003,평가 Dataset Manifest와 Model Registry 계약,evaluation.dataset_manifest·governance.model_version_registry,"요청 시점 Dataset/Model/Config/Code/Contract VersionSet 동결, 미승인 context는 BusinessHold",Data Architect/Quant,DBA/Risk,6,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-004,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,DB,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-004,Model Operations 증분 migration 구현,0016_continuous_model_operations.sql,fresh/upgrade/re-run/failure에서 schedule/request/metric/proposal/review/drill schema와 제약 통과,DBA/BE,QA/Data,8,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-005,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-005,15분 Scheduler Dispatcher와 lease 구현,ModelOperationsDispatcherJob·DapperModelScheduleRepository,"FOR UPDATE SKIP LOCKED, 14분 lease, batch 50, dynamic queue, crash/retry 중복 request 0",BE/SRE,DBA/QA,8,AEG-MO-004,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-006,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,ModelOperationRequested,UI-MO-01,T-MO-006,평가 요청·Outbox 동일 트랜잭션 구현,ModelOperationRequestService·Repository·event v1,"동일 idempotency key의 request/outbox side effect 1회, VersionSet 누락 시 저장 0",BE Lead,SRE/QA,8,AEG-MO-005,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-007,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,BE,REQ-MO-SCHED-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-007,명시적 ModelOperationRegistry 구현,ModelOperationDefinition·contract drift test,"Job code/주기/queue/mode/owner/gate 중복 0, JSON/C# drift 0",BE/Architect,Quant/QA,5,AEG-MO-001,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-008,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-001,모델 운영 계획 조회 API·Zod 구현,GET /internal/v1/model-operations/plan·schema.ts,"응답 runtime validation, 자동승격 모드 파싱 거부, RBAC 401/403 검증",BE/FE,Security/QA,6,AEG-MO-007,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-009,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,FE,REQ-MO-FE-001,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01,T-MO-FE-002,모델 운영 대시보드 기본 화면,ModelOperationsPage·BoundaryPanel·OperationTable,일/주/월/분기 작업과 EVALUATION/PROPOSAL/DRILL 경계가 명확하고 로딩/오류/빈상태 접근성 검증,FE/UX,QA/Risk,7,AEG-MO-008,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-010,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-01,MIG-0016,J10,UI-MO-02,T-MO-EVAL-001,1/5/20/63/126/252일 Outcome evaluator 구현,versioned OutcomeObservation·attribution,거래일창·benchmark·FX·delisting·no-fill·partial-fill·revision replay Golden 통과,Quant/BE,Data/QA,12,AEG-MO-002,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-011,S8,W17-18,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-02,MIG-0016,J11,UI-MO-02,T-MO-EVAL-002,Daily Scorecard와 cohort aggregation,DailyScorecard·cohort metric snapshots,운영오류·calibration·매수·매도·재진입·비용후 효용의 sample/lag/version 표시,Quant/BE,Risk/QA,9,AEG-MO-010,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-012,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-DRIFT-001,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,Data/Feature/Prediction/Calibration drift evaluator,DriftObservation·baseline manifest·alert,"baseline version, PSI/KS/calibration drift와 sample minimum이 승인되고 임계 초과 시 HOLD만 생성",Quant/Risk,Data/SRE,10,AEG-MO-011,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-013,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,ALG,REQ-MO-CC-001,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,Champion/Challenger 동일 cohort 비교,paired comparison·model card delta,동일 Dataset/Cost/Cohort/Window에서 효과·위험·false-exit·reentry 차이와 신뢰구간 보존,Quant/Risk,IndependentValidation/QA,12,AEG-MO-012,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-014,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-OOS-001,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,월간 Frozen Walk-forward OOS 실행,manifest/hash/seed/environment·OOS artifacts,"동일 manifest 허용오차 내 동일, lookahead 0, 상폐/CA/TR/cost2x 포함, 실패 artifact 보존",Quant/Data,QA/Risk,14,AEG-MO-003,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-015,S11,W23-24,VS-19,RunFrozenBacktest,BacktestingEvaluation,ALG,REQ-MO-ROBUST-001,BACKTEST-02,MIG-0016,J20,UI-MO-04,T-MO-ROBUST-001,분기 PBO/DSR/Parameter Stability/Block Bootstrap,experiment registry·CSCV/PBO/DSR report,"전체 시도 원장 기준 PBO≤20%, DSR≥95%, 비용2배 양수 여부를 재현하며 기준 미달 시 HOLD",Quant/Risk,IndependentValidation/QA,15,AEG-MO-014,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-016,S11,W23-24,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,ALG,REQ-MO-EVAL-001,EVAL-05,MIG-0016,J11/J21,UI-MO-02,T-MO-ATTR-001,False-exit·Reentry attribution 정의 확정,metric definition v2·decision log,분자/분모/기준가격/benchmark/평가창/중도상폐/결측 처리 승인 전 생산 KPI 사용 차단,Quant/Risk,InvestmentCommittee/Data,7,DEC-032,G4,SOURCE+DECISION_REQUIRED,P0,PLANNED +AEG-MO-017,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-01,MIG-0016,J21,UI-MO-05,T-MO-IMP-001,월간 개선 제안 생성 규칙,ModelImprovementProposal·ranking rubric,데이터·정책·calibration·risk·기술부채 제안을 구분하고 자동 코드/임계값 변경 0,Quant Lead,Risk/Architect,8,AEG-MO-012~016,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-018,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-IMPROVE-001,GOV-MO-02,MIG-0016,J21,UI-MO-05,T-MO-IMP-002,개선 제안 반대증거·만료·중복 통제,proposal schema·content hash·expiry,근거/반대증거/기대효과/위험/필수테스트/Owner/만료가 없으면 REVIEW_REQUIRED 생성 금지,Risk/Architect,Quant/QA,7,AEG-MO-017,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-019,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,GOV,REQ-MO-PROMOTE-001,GOV-MO-03,MIG-0016,J22,UI-MO-06,T-MO-GATE-001,PromotionGateEvaluator와 증거 패킷,promotion-gate.v1·PromotionGateResult,252일/2국면/효용/calibration/false-exit/reentry/PBO/DSR/cost2x/운영오류를 모두 평가하되 human approval=true,Risk/BE,Quant/QA,9,AEG-MO-015~018,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-020,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,SEC,REQ-MO-PROMOTE-001,GOV-MO-04,MIG-0016,J22,UI-MO-06,T-MO-GATE-002,모델 승격 maker-checker·업무분장,model_promotion_review·RBAC,"maker≠checker, 개발자 단독승격 0, 독립검증·준법·보안 evidence 누락 시 승인 불가",Risk/Security,Compliance/QA,8,AEG-MO-019,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-021,S11,W23-24,VS-20,PromoteModelVersion,GovernanceAudit,FE,REQ-MO-FE-001,GOV-MO-05,MIG-0016,J17~J22,UI-MO-03~06,T-MO-FE-003,Drift·비교·OOS·제안·Gate 화면 컴포넌트,DriftPanel·ComparisonPanel·EvidenceGatePanel,version/sample/window/data warning/반대증거/readonly 상태를 표시하고 내부점수 고객 노출 0,FE/UX,Risk/QA,12,AEG-MO-012~020,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-022,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-01,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001,Data revision 영향 인덱스와 재평가 요청,decision↔dataset/revision impact index,정정 source/revision이 영향 decision/window를 결정적으로 산출하고 승인 없는 대량 replay 0,Data/BE,DBA/Quant,10,AEG-MO-003,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-023,S12,W25-26,VS-23,ReconcilePositionsAndFills,ExecutionReconciliation,DATA,REQ-MO-REPLAY-001,REPLAY-02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-002,Revision-aware correction evidence,new observation/snapshot·Supersession link,"과거 evidence overwrite 0, before/after hash·사유·승인자·영향 KPI가 보존",Data/Compliance,Quant/QA,8,AEG-MO-022,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-024,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-ROLLBACK-001,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,분기 Model rollback drill,model_rollback_drill·Runbook evidence,fallback manifest 복원·Capability 차단·RTO 측정·Secondary 수행·실주문 0,SRE/Risk,Module Owner/QA,10,AEG-MO-020,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-025,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OBS,REQ-MO-OPS-001,MO-OPS-01,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-001,Scheduler·평가 관제 표준,OTel metrics·Serilog correlation·alerts,due lag/lease conflict/request duplicate/context hold/runtime/backlog/error가 trace→schedule→request→artifact로 연결,SRE/BE,Security/QA,8,AEG-MO-005~006,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-026,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-02,MIG-0016,Dispatcher/J10~J24,UI-MO-09,T-MO-OPS-002,Error taxonomy·retry·dead-letter·BusinessHold,Runbook·retry matrix·dead-letter procedure,"transient/business/poison 분리, blind retry 0, same scope 중복 side effect 0",SRE/BE,Ops/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-027,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,SEC,REQ-MO-OPS-001,MO-OPS-03,MIG-0016,J10~J24,UI-MO-09,T-MO-SEC-001,모델 evidence·알림 PII/secret 보안,classification/redaction/secret scan,계좌·고객·토큰·원시 payload가 log/trace/Telegram/prompt에 노출 0,Security/SRE,Compliance/QA,7,AEG-MO-025,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-028,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,OPS,REQ-MO-OPS-001,MO-OPS-04,MIG-0016,J10~J24,UI-MO-09,T-MO-CAP-001,평가 Queue 격리·용량·SLA 시험,capacity report·queue quotas,q-research가 고객 batch SLA를 침범하지 않고 backlog/CPU/DB lock/IO 한도와 degradation 정책 승인,SRE/DBA,Quant/QA,10,AEG-MO-025,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-029,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-SCHED-001,MO-TEST-01,MIG-0016,Dispatcher,UI-MO-01,T-MO-CONC-001,Scheduler concurrency·crash·clock 회귀,integration/chaos tests,"다중 worker lease 경쟁, enqueue 전후 crash, clock skew, DST/휴장, 장기 downtime catch-up에서 중복 0",QA/SRE,BE/DBA,12,AEG-MO-005,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-030,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-EVAL-001,MO-TEST-02,MIG-0016,J10~J22,UI-MO-02~06,T-MO-GOLDEN-001,Python/.NET metric Golden 교차검증,Golden vectors·tolerance registry,동일 frozen input에서 Python 연구와 .NET 평가가 승인 허용오차 내 일치하고 차이 artifact 보존,QA/Quant,BE/Data,12,AEG-MO-010~020,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-031,S13,W27-28,VS-25,AuditAndKillSwitch,GovernanceAudit,TEST,REQ-MO-FE-001,MO-TEST-03,MIG-0016,J10~J24,UI-MO-01~09,T-MO-E2E-001,모델 운영 Playwright E2E,role/state/evidence flows,"Quant/Risk/Auditor 권한, loading/empty/stale/warn/hold/review/expired/readonly와 접근성 통과",QA/FE,Security/UX,8,AEG-MO-009~021,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-032,S14,W29-30,Cross,Cross-cutting,Toolchain,CI,REQ-MO-OPS-001,Cross,MIG-0016,Cross,Cross,T-MO-CI-001,Gitea CI에 v12.4 validator·ModelOps tests·contract drift 추가,ci.yml·validate_v124.py,"static/JSON/CSV/WBS/contract/Python tests green, .NET/pnpm/DB evidence 없이는 PASS 주장 금지",DevOps/QA,Architect/Security,8,AEG-MO-001~031,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-033,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-OPS-001,Cross,Cross,Cross,Cross,Cross,모델 운영 Release Evidence 템플릿,MODEL_EVALUATION_EVIDENCE.md·IMPROVEMENT_PROPOSAL.md,"Source/Assumption/Unknown/DecisionRequired, 명령·hash·sample·window·approval·rollback가 누락 없이 연결",PM/Risk,QA/Architect,5,AEG-MO-032,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-MO-034,S14,W29-30,Cross,Cross-cutting,Governance,DOC,REQ-MO-IMPROVE-001,Cross,Cross,Cross,Cross,Cross,바이브코딩 모델 변경 작업 패킷,MODEL_CHANGE + evaluation packet,AI가 임계값·팩터·모델·스케줄을 추정하지 않고 승인 source와 실제 test artifact 없으면 PR 차단,Architect/Quant,Risk/QA,6,AEG-MO-033,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-035,S15,W31-32,Cross,Cross-cutting,Release,CUTOVER,REQ-MO-OPS-001,Cross,MIG-0016,J10~J24,UI-MO-01~09,T-MO-REL-001,20영업일 ModelOps 단계 배포,runbook·feature/capability config·rollback,DISABLED→EVALUATION_ONLY→PROPOSAL_ONLY 순으로 승격하고 자동 model/order mutation은 계속 OFF,Release/SRE,Risk/Compliance,8,AEG-MO-032~034,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-MO-036,MNT,Monthly,VS-18,EvaluateDecisionOutcome,BacktestingEvaluation,MNT,REQ-MO-EVAL-001,EVAL-MNT-01,MIG-0016,J10/J11/J17,UI-MO-02/03,T-MO-MNT-001,월간 성과·drift·false-exit·reentry 리뷰,monthly model health pack,metric version/sample/lag/drift/반대증거/기술부채와 개선 제안이 투자위 회의록에 연결,Quant/Risk,Ops/QA,4,Go-Live,MNT,SOURCE+OPERATING_EVIDENCE,P1,PLANNED +AEG-MO-037,MNT,Quarterly,VS-19/20,RunFrozenBacktest/PromoteModelVersion,BacktestingEvaluation/GovernanceAudit,MNT,REQ-MO-ROBUST-001,GOV-MNT-01,MIG-0016,J18~J23,UI-MO-04~08,T-MO-MNT-002,분기 OOS·PBO/DSR·승격/롤백 검토,quarterly independent validation pack,"복합 Gate 우회 0, 기준 미달 모델은 HOLD/REJECTED, rollback drill evidence 존재",Risk/InvestmentCommittee,IndependentValidation/Compliance,8,AEG-MO-036,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-MO-038,MNT,Release,Cross,Cross-cutting,GovernanceAudit,MNT,REQ-MO-IMPROVE-001,Cross,Cross,ModelChanged,Cross,T-MO-MNT-003,모델/정책/지표 변경 비회귀 릴리스,Model Change·Golden·Frozen OOS·Supersession,"문서/JSON/C#/DB/API/FE/test hash 정렬, 이전 계약 원문 보존, 자동승격/자동주문 OFF",Architect/Risk,Quant/QA/SRE,6,Approved Model Change,MNT,SOURCE+OPERATING_EVIDENCE,P0,PLANNED +AEG-V12-5-001,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-001,기준선 직접/전이 첨부 Coverage와 Supersession 승인,Current source coverage+baseline transitive index,"현재 첨부 3개 SHA 일치, v12.4 내부 누적 첨부 경로 검증",PM/Architect,Compliance/QA,5,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-002,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-002,Build/Runtime/Shadow Evidence 상태모델 승인,Evidence status registry,STATIC/BUILD/DB/SHADOW/PILOT 상태의 허용 전이가 승인됨,PM/QA,Architect/Compliance,4,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-003,S0,W1-2,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-003,Decision Required 만료·aging 운영,Decision aging dashboard,"P0 decision owner/due/expiry 100%, 만료 시 Gate 자동 HOLD",PMO,Owner/QA,5,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-004,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-001,Cross,MIG-0017,Cross,Cross,T-EXA-004,Release Evidence maker-checker 계약,Release evidence contract,"maker≠checker, 필수 artifact 누락 시 APPROVED 불가",QA/Release,Compliance/SRE,6,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-005,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,DEVEX,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-005,.NET 10 승인 runner restore/build/test,TRX+build logs,warning-as-error Release build 및 전체 test artifact,DevOps,BE/QA,10,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-006,S1,W3-4,Cross,ExecutionAssurance,Governance/Platform,DEVEX,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-006,pnpm lockfile 생성·검토·frozen build,pnpm-lock+CI logs,"lock diff 승인, typecheck/test/build/e2e 재현",FE Lead,DevOps/QA,8,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-007,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,FITNESS,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-007,Assembly/namespace/schema/API ownership test,Architecture fitness suite,"금지 의존, 직접 cross-schema write, ID 충돌 0",Architect/QA,BE/DBA,8,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-008,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,CONTRACT,REQ-EXA-002,Cross,Cross,Cross,Cross,T-EXA-008,OpenAPI artifact diff와 FE generated contract,OpenAPI client/Zod artifact,"DTO drift 0, runtime validation 통과",BE/FE,QA/Architect,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-009,S2,W5-6,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-009,Source/License/SLA/Timezone/Unit 계약 승인,Source contract snapshots,승인 없는 source ingestion/recommendation 0,Data Governance,Legal/QA,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-010,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-010,KRX/NYSE/NASDAQ calendar·DST·반일장 구현,Market calendar contract,휴장/반일장/DST Golden과 tradable_session 통과,Data/Quant,QA/Ops,12,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-011,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-011,총수익·상폐수익·기업행사 Golden,Golden dataset,price/quantity/cost/cash/return 대사 100%,Data/DBA,Quant/QA,12,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-012,S3,W7-8,Cross,ExecutionAssurance,Governance/Platform,DATA,REQ-EXA-003,Cross,MIG-0017,J25-J30,Cross,T-EXA-012,Fee/Tax/FX valid-time schedule 확정,Cost schedule,계좌/venue/asset/side/band PIT 적용과 boundary 통과,Ops/Tax,Quant/DBA,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-013,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-013,PIT bitemporal unique/exclusion 제약 설계,DDL+ADR,중복 유효구간과 current overwrite 경로 0,DBA/Data Architect,BE/QA,8,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-014,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-014,Migration fresh/upgrade/re-run/failure rehearsal,Migration evidence,"4시나리오 통과, checksum 변경 차단, rollback/runbook",DBA/BE,QA/SRE,10,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-015,S4,W9-10,Cross,ExecutionAssurance,Governance/Platform,DB,REQ-EXA-004,Cross,MIG-0017,Cross,Cross,T-EXA-015,볼륨·partition·index·retention 결정,Capacity ADR,"실제 규모/쿼리계획으로 승인, 근거 없는 index 0",DBA/SRE,PM/Data,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-016,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,DQ,REQ-EXA-004,Cross,Cross,J25-J30,Cross,T-EXA-016,DQ incident·quarantine·reprocess E2E,DQ E2E evidence,"격리 데이터 추천 0, correction revision 보존",Data/QA,BE/Ops,10,v12.4 baseline,G1,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-017,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-017,false-exit metric definition version 확정,Metric definition,분자/분모/window/benchmark/cost/revision 승인,Quant/Risk,QA/Investment Committee,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-018,S5,W11-12,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-018,reentry capture/delay metric definition 확정,Metric definition,stage/cycle/expiry/no-fill 포함 정의 승인,Quant/Risk,QA/Data,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-019,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-019,Evidence grade와 counter-evidence 계약,Policy contract,DQ/freshness/revision/source coverage에 따른 downgrade 재현,Quant/Data,Risk/QA,8,v12.4 baseline,G2,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-020,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-005,Cross,Cross,J25-J30,Cross,T-EXA-020,승격 threshold machine-readable 단일화,Promotion contract registry,"JSON/C#/문서 drift 0, 승인 version/hash 기록",Quant/BE,Risk/QA,8,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-021,S6,W13-14,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-021,전체 실험 registry·CSCV/PBO/DSR,Experiment registry,"숨은 시도 0, deterministic seed, independent replay",Quant/Risk,Independent Validation,16,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-022,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-022,Champion/Challenger paired comparison,Comparison artifact,"동일 data/cost/cohort/window, sample mismatch HOLD",Quant/QA,Risk/Data,12,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-023,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-023,revision impact replay와 correction link,Revision replay evidence,before/after dataset/hash와 영향 decision 100% 연결,Data/Quant,DBA/QA,12,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-024,S7,W15-16,Cross,ExecutionAssurance,Governance/Platform,ALG,REQ-EXA-006,Cross,Cross,J25-J30,Cross,T-EXA-024,Cost2x·missing·delisting·CA·FX stress,Stress report,모든 승인 candidate에 필수 stress artifact,Quant/QA,Risk/Data,12,v12.4 baseline,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-025,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-025,ModelOperations Dispatcher fail-closed 검증,Capability tests,"기본 OFF, ShadowEvaluation false면 startup 차단",BE/Security,QA/SRE,6,v12.4 baseline,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-026,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-026,Dispatch enqueue/mark gap 제거 설계,Dispatch intent/outbox ADR,crash timing에서 duplicate request/손실 0,BE/SRE,Architect/QA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-027,S8,W17-18,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-027,Model operation 상태전이 서비스,Status transition slice,"허용 transition, optimistic concurrency, append event 100%",BE Lead,QA/DBA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-028,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-007,Cross,MIG-0017,J25-J30,Cross,T-EXA-028,BusinessHold/Quarantine/Poison 분류,Failure taxonomy,"blind retry 0, dead-letter/runbook 연결",BE/SRE,Data/QA,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-029,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-029,J10~J30 executor handler 계약,Operation handler registry,"Scheduler에 수식 없음, handler contract test 100%",BE/Quant,Architect/QA,18,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-030,S9,W19-20,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-030,Operation artifact store·retention,Artifact repository,content hash/retention/source request 추적 100%,BE/DBA,Compliance/SRE,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-031,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-031,Outbox/Inbox crash/replay chaos,Chaos evidence,"crash-before/after-publish, duplicate side effect 0",BE/SRE,QA/DBA,14,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-032,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,BE,REQ-EXA-008,Cross,MIG-0017,J25-J30,Cross,T-EXA-032,Projection rebuild/diff runner,Projection runner,version/watermark/stale/rebuild diff 통과,BE/Data,QA/SRE,12,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-033,S10,W21-22,Cross,ExecutionAssurance,Governance/Platform,UX,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-033,고객 투자제안 정보위계 프로토타입,UX prototype,행동/근거/반대증거/비용/불확실성/다음검토 usability 통과,UX/AX,Advisor/Compliance,10,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-034,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,UX,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-034,운용자 maker-checker 검토함 프로토타입,Ops prototype,"작성자 단독승인 0, expiry/DQ/version 경고 명확",UX/FE,Advisor/QA,10,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-035,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-035,Query key registry·Pinia 경계 lint,FE architecture rules,"server state Pinia 복제 0, invalidation contract 통과",FE Lead,QA/Architect,8,v12.4 baseline,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-036,S11,W23-24,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-009,Cross,Cross,Cross,UI-EXA,T-EXA-036,Zod request/response/error runtime validation,FE contract tests,성공/오류/nullable/version mismatch 전부 차단·표시,FE Lead,BE/QA,10,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-037,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-010,Cross,Cross,Cross,UI-EXA,T-EXA-037,Accessibility keyboard/screen-reader test,A11y evidence,WCAG 핵심 흐름 keyboard/label/focus 통과,FE/UX,QA/Compliance,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-038,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,FE,REQ-EXA-010,Cross,Cross,Cross,UI-EXA,T-EXA-038,Evidence/VersionSet/Readiness 공통 컴포넌트,Shared components,3회 반복+동일 의미/변경축 근거와 component tests,FE Lead,UX/QA,8,v12.4 baseline,G3,SOURCE+DESIGN_PROPOSAL,P2,PLANNED +AEG-V12-5-039,S12,W25-26,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-010,Cross,Cross,Cross,Cross,T-EXA-039,OIDC/JWT provider·claims·rotation ADR,Auth ADR+E2E,"issuer/audience/claims/key rotation, fail-closed 통과",Security/BE,PM/QA,12,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-040,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-010,Cross,Cross,Cross,Cross,T-EXA-040,PII classification/redaction/Telegram test,Security evidence,log/trace/alert/prompt 고객정보 노출 0,Security/SRE,QA/Compliance,10,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-041,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SEC,REQ-EXA-011,Cross,Cross,Cross,Cross,T-EXA-041,SBOM·license·vulnerability gate,Supply-chain evidence,NuGet/npm allowlist와 critical 취약점 0,Security/DevOps,Legal/QA,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V12-5-042,S13,W27-28,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-042,SLO/RPO/RTO·volume 승인,Operations ADR,data/recommendation/publish/reconcile/evaluation SLO 승인,SRE/PM,DBA/Ops,8,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-043,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-043,부하·장애·queue isolation 시험,Capacity/chaos report,research queue가 recommendation SLA 침범 0,SRE/QA,BE/DBA,14,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-044,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,SRE,REQ-EXA-011,Cross,Cross,J25-J30,Cross,T-EXA-044,Backup/restore·rollback drill,DR evidence,"RPO/RTO 실측, champion/fallback 복구 hash 일치",SRE/DBA,QA/Risk,12,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-045,S14,W29-30,Cross,ExecutionAssurance,Governance/Platform,QA,REQ-EXA-012,Cross,Cross,J25-J30,Cross,T-EXA-045,End-to-End Release Evidence 자동조립,Release evidence bundle,source/build/test/migration/security/rollback 누락 0,QA/Release,DevOps/Compliance,10,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-046,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,OPS,REQ-EXA-012,Cross,Cross,Cross,Cross,T-EXA-046,P1/P2 장애·정정·고객공지 Runbook,Runbook pack,Owner/Secondary/escalation/communication rehearsal,Ops/SRE,Compliance/CS,10,v12.4 baseline,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-047,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,PM,REQ-EXA-012,Cross,Cross,Cross,UI-EXA,T-EXA-047,90일 Critical Path·Gate burn-down 운영,Critical path dashboard,P0 dependency/decision/evidence aging 주간 갱신,PM/PL,All Leads,8,v12.4 baseline,ALL,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V12-5-048,S15,W31-32,Cross,ExecutionAssurance,Governance/Platform,GOV,REQ-EXA-012,Cross,MIG-0017,Cross,Cross,T-EXA-048,36개월 모델·데이터·기술부채 review cadence,Operating calendar,월/분기/반기/연 review와 산출물/승인자 고정,PM/Risk,Architect/Ops,6,v12.4 baseline,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-001,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ARCH,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-01,T-FE-ARCH-01,UI Vendor import boundary,ESLint/architecture rule,Feature에서 primevue/ag-grid 직접 import 0,FE Architect,QA,5,AEG-X-003,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-002,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-DS,REQ-FE-TOKEN,Cross,Cross,Cross,UI-FOUND-02,T-FE-TOKEN-01,Design token contract,tokens.css,임의 색상/spacing/금융 formatter 경로 0,UX/FE,QA,5,V13-FE-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-003,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-03,T-FE-ADAPTER-01,UiAdapter Port 정의,adapter/contracts.ts,8개 Port와 version/id 계약 고정,FE Architect,QA,5,V13-FE-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-004,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-ADAPTER,Cross,Cross,Cross,UI-FOUND-04,T-FE-ADAPTER-02,PrimeVue/AG Grid Adapter 구현,adapter/primevue/*,Port contract test와 접근성 기본속성 통과,FE Lead,QA/UX,8,V13-FE-003,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-005,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-COMP,REQ-FE-COMP,Cross,Cross,Cross,UI-FOUND-05,T-FE-COMP-01,Ks* vendor-neutral components,shared/ui/components,Feature vendor import 없이 동작,FE Lead,QA,8,V13-FE-004,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-006,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-LAYOUT,REQ-FE-LAYOUT,Cross,Cross,Cross,UI-FOUND-06,T-FE-LAYOUT-01,AppShell/Page layouts,shared/ui/layouts,landmark/skip-link/responsive/automation boundary,UX/FE,QA/Security,7,V13-FE-005,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-007,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-STATE,REQ-FE-STATE,Cross,Cross,Cross,UI-FOUND-07,T-FE-STATE-01,11-state Matrix component,StandardStatePanel,각 상태의 표현/금지행동 test,UX/FE,QA,6,V13-FE-005,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-008,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-FMT,REQ-FE-FORMAT,Cross,Cross,Cross,UI-FOUND-08,T-FE-FMT-01,금융 formatter 중앙화,financial.ts,통화/비율/수량/as-of 단위 명시,FE Lead,Quant/QA,5,V13-FE-002,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-009,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-CONTRACT,REQ-FE-OPENAPI,Cross,Cross,Cross,UI-FOUND-09,T-FE-CONTRACT-01,OpenAPI-Zod 생성 전략 ADR,ADR-FE-CONTRACT,DTO 중복 source 0 계획 승인,BE/FE Architect,QA,5,AEG-X-002,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-010,S0,W1-2,Cross,Cross-cutting,UIFoundation,FE-BOOT,REQ-FE-BOOT,Cross,Cross,Cross,UI-FOUND-10,T-FE-SMOKE-01,PrimeVue unstyled/bootstrap 연결,main.ts,adapter 미설치 fail-fast와 smoke route,FE Lead,QA,4,V13-FE-004,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-011,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T01,Cross,Cross,Cross,UI-T01,T-FE-T01-01,T01 검색목록 화면 템플릿,screen-types/T01,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-012,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T02,Cross,Cross,Cross,UI-T02,T-FE-T02-01,T02 상세조회 화면 템플릿,screen-types/T02,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-013,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T03,Cross,Cross,Cross,UI-T03,T-FE-T03-01,T03 등록편집 화면 템플릿,screen-types/T03,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-014,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T04,Cross,Cross,Cross,UI-T04,T-FE-T04-01,T04 MasterDetail 화면 템플릿,screen-types/T04,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-015,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T05,Cross,Cross,Cross,UI-T05,T-FE-T05-01,T05 검토승인 화면 템플릿,screen-types/T05,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-016,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T06,Cross,Cross,Cross,UI-T06,T-FE-T06-01,T06 Wizard 화면 템플릿,screen-types/T06,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-017,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T07,Cross,Cross,Cross,UI-T07,T-FE-T07-01,T07 Dashboard 화면 템플릿,screen-types/T07,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-018,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T08,Cross,Cross,Cross,UI-T08,T-FE-T08-01,T08 Batch운영 화면 템플릿,screen-types/T08,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-019,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T09,Cross,Cross,Cross,UI-T09,T-FE-T09-01,T09 대사예외 화면 템플릿,screen-types/T09,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-020,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-SCREEN,REQ-FE-T10,Cross,Cross,Cross,UI-T10,T-FE-T10-01,T10 버전거버넌스 화면 템플릿,screen-types/T10,필수 상태·권한·버전·a11y·Playwright 계약 승인,UX/FE,QA/Domain Owner,6,V13-FE-006,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-021,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-FORM,REQ-FE-FORM,Cross,Cross,Cross,UI-FORM-01,T-FE-FORM-01,vee-validate/Zod standard form,CrudFormPage,"422 field/summary, dirty, duplicate submit, If-Match",FE Lead,BE/QA,8,V13-FE-013,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-022,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-URL,REQ-FE-URL,Cross,Cross,Cross,UI-URL-01,T-FE-URL-01,Filter/page/tab URL state,router/query codec,deep-link roundtrip와 허용 filter whitelist,FE Lead,QA,6,V13-FE-011,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-023,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-GRID,REQ-FE-GRID,Cross,Cross,Cross,UI-GRID-01,T-FE-GRID-01,AG Grid server-side contract,KsDataGrid,pagination/sort/filter/column state/a11y,FE Lead,BE/QA,8,V13-FE-004,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-024,S6,W13-14,Cross,Cross-cutting,UIFoundation,FE-PERM,REQ-FE-AUTHZ,Cross,Cross,Cross,UI-AUTH-01,T-FE-AUTH-01,Permission/Capability Guard integration,AppShell/Route meta,unauthorized 존재정보 과노출 0,FE/Security,QA,7,V13-FE-006,MVP-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-025,S7,W15-16,Cross,Cross-cutting,ClientAdvisory,FE-REVIEW,REQ-ADV-REVIEW,Cross,Cross,Cross,UI-T05-ADV,T-ADV-REVIEW-UI,추천 검토 Workbench 적용,advisor/recommendations,"self-approval 0, warning ack, conflict, expiry",FE/UX,Compliance/QA,10,V13-FE-015,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-026,S8,W17-18,Cross,Cross-cutting,ClientAdvisory,FE-PUBLISH,REQ-ADV-PUBLISH,Cross,Cross,Cross,UI-T02-ADV,T-ADV-PUBLISH-UI,고객 제안 상세 적용,advice detail,승인본 hash/as-of/version만 고객 노출,FE/UX,Compliance/QA,9,V13-FE-012,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-027,S8,W17-18,Cross,Cross-cutting,DataOperations,FE-BATCH,REQ-OPS-BATCH,Cross,Cross,Cross,UI-T08-OPS,T-OPS-BATCH-UI,Data/Job Run Batch 화면 적용,ops/data-runs,JobRun/Watermark/reprocess dry-run/audit,FE/Ops,SRE/QA,9,V13-FE-018,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-028,S8,W17-18,Cross,Cross-cutting,ExecutionReconciliation,FE-RECON,REQ-RECON-UI,Cross,Cross,Cross,UI-T09-RECON,T-RECON-UI,대사·정정 화면 적용,ops/reconciliation,"before/after, maker-checker, blind overwrite 0",FE/Ops,DBA/QA,9,V13-FE-019,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-029,S11,W23-24,Cross,Cross-cutting,ModelOperations,FE-GOV,REQ-MODEL-GOV-UI,Cross,Cross,Cross,UI-T10-MODEL,T-MODEL-GOV-UI,모델 버전 비교 화면 적용,ops/model-governance,"same dataset/cost, gate pack, rollback",FE/Quant,Risk/QA,10,V13-FE-020,G4-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-030,S11,W23-24,Cross,Cross-cutting,Evaluation,FE-DASH,REQ-EVAL-DASH,Cross,Cross,Cross,UI-T07-EVAL,T-EVAL-DASH,일평가 Scorecard 적용,research/evaluations,metric definition/sample/window/table alternative,FE/Quant,QA/UX,9,V13-FE-017,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-031,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-A11Y,REQ-FE-A11Y,Cross,Cross,Cross,UI-ALL,T-FE-A11Y-01,접근성 자동·수동 Matrix,a11y test pack,keyboard/focus/ARIA/contrast/table alternative,QA/UX,FE,8,V13-FE-006,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-032,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-VISUAL,REQ-FE-VISUAL,Cross,Cross,Cross,UI-ALL,T-FE-VISUAL-01,Visual regression baseline,Playwright screenshots,T01~T10 desktop/mobile 의미 diff 0,QA/UX,FE,8,V13-FE-011..020,MVP-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-033,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-ERROR,REQ-FE-ERROR,Cross,Cross,Cross,UI-ALL,T-FE-ERROR-01,ProblemDetails mapping,error mapper,401/403/409/422/429/503 표준행동,FE/BE,QA,7,V13-FE-007,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-034,S7,W15-16,Cross,Cross-cutting,UIFoundation,FE-IDEMP,REQ-FE-IDEMP,Cross,Cross,Cross,UI-ALL,T-FE-IDEMP-01,Idempotency retry contract,command composable,"동일 retry key 재사용, 중복 side effect 0",FE/BE,QA,7,V13-FE-021,MVP-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-035,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-FRESH,REQ-FE-FRESH,Cross,Cross,Cross,UI-ALL,T-FE-FRESH-01,Data freshness/version standard,freshness/version components,as-of/published_at/revision/stale 일관,FE/Data,QA/UX,7,V13-FE-007,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-FE-036,S8,W17-18,Cross,Cross-cutting,UIFoundation,FE-EXPORT,REQ-FE-EXPORT,Cross,Cross,Cross,UI-ALL,T-FE-EXPORT-01,Print/export evidence contract,export footer,approved hash/as-of/version/disclaimer 포함,FE/Compliance,QA,6,V13-FE-026,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-037,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-ADAPTER,REQ-FE-SWAP,Cross,Cross,Cross,UI-FOUND-11,T-FE-SWAP-01,Vendor swap rehearsal,alternate fake adapter,"Feature 변경 0, contract/visual/a11y pass",FE Architect,QA/UX,8,V13-FE-004,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-038,S11,W23-24,Cross,Cross-cutting,UIFoundation,FE-PERF,REQ-FE-PERF,Cross,Cross,Cross,UI-ALL,T-FE-PERF-01,대량 화면 성능 budget,performance report,"10k row virtualized, interaction P95 승인",FE/SRE,QA,8,V13-FE-023,G4-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-039,S14,W29-30,Cross,Cross-cutting,UIFoundation,FE-DEBT,REQ-FE-DEBT,Cross,Cross,Cross,UI-ALL,T-FE-DEBT-01,공통 컴포넌트 승격/폐기 review,component registry,owner/usage/change-axis/deprecation 기록,FE Architect,PM/QA,6,V13-FE-001..038,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-FE-040,S15,W31-32,Cross,Cross-cutting,UIFoundation,FE-EVIDENCE,REQ-FE-REL,Cross,Cross,Cross,UI-ALL,T-FE-REL-01,FE Release Evidence assemble,release evidence,typecheck/test/e2e/a11y/visual/perf hash,QA/Release,FE/SRE,6,V13-FE-031..039,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-001,S8,W17-18,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-FREEZE,Cross,MIG-0018,J31,UI-J31,T-J31,J31 PredictionFreeze 계약·DB,prediction_freeze + registry,결과 공개 전 VersionSet hash append-only,Quant/BE,Data/QA,8,VS-09/18,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-002,S8,W17-18,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-MATURITY,Cross,MIG-0018,J32,UI-J32,T-J32,J32 평가창 성숙 sweep,evaluation_window_maturity,거래세션 1/5/20/63/126/252 정확,Quant/BE,Data/QA,8,V13-MODEL-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-003,S11,W23-24,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-SELL,Cross,Cross,J33,UI-J33,T-J33,J33 매도·재진입 attribution,weekly evidence,false-exit/gain/capture/delay cost 정의 일치,Quant/Risk,Advisor/QA,9,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-004,S11,W23-24,Cross,Cross-cutting,Evaluation,MODEL-FEEDBACK,REQ-EVAL-CAL,Cross,Cross,J34,UI-J34,T-J34,J34 calibration/regime review,calibration evidence,coverage/Brier/logloss/regime/version,Quant/Risk,Data/IV,9,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-005,S11,W23-24,Cross,Cross-cutting,Governance,MODEL-IMPROVE,REQ-MODEL-HYP,Cross,MIG-0018,J35,UI-J35,T-J35,J35 개선가설 생성,model_improvement_hypothesis,문제/증거/변경/효과/반증/비목표/만료,Quant Lead,Risk/Architect,9,V13-MODEL-003..004,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-006,S11,W23-24,Cross,Cross-cutting,Governance,MODEL-IMPROVE,REQ-MODEL-CHAL,Cross,Cross,J36,UI-J36,T-J36,J36 Challenger 계획,experiment plan,승인 없는 train/config/activate 0,Quant Lead,IV/QA,9,V13-MODEL-005,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-007,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-VALIDATE,REQ-MODEL-IV,Cross,Cross,J37,UI-J37,T-J37,J37 독립검증 Pack,validation pack,OOS/PBO/DSR/cost2x/repro/ops 완결,IndependentValidation,Risk/Compliance,10,V13-MODEL-006,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-008,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-DEBT,REQ-MODEL-DEBT,Cross,Cross,J38,UI-J38,T-J38,J38 모델·정책 Debt review,debt decision pack,owner/expiry/remediation/exit test,Risk/Architect,Quant/PM,7,V13-MODEL-005,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-MODEL-009,S8,W17-18,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-V2,Cross,MIG-0018,J31~J38,UI-MOPS,T-SCHED-V2,model-operations.v2 contract,JSON contract,J31~J38 mode/cadence/queue/gate 검증,BE/SRE,Quant/QA,6,V13-MODEL-001..008,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-010,S8,W17-18,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-FAIL,Cross,MIG-0018,J31~J38,UI-MOPS,T-SCHED-FAIL,Schedule fail-closed migration,0018 migration,"8개 schedule enabled=false, dependency 승인 전 HOLD",DBA/BE,SRE/QA,7,V13-MODEL-009,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-011,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-CAL,Cross,Cross,J31~J34,UI-MOPS,T-SCHED-CAL,Evaluation clock/calendar tests,calendar fixtures,휴장/DST/반일장/window maturity Golden,Data/QA,Quant/BE,8,V13-MODEL-002,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-012,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-REV,Cross,Cross,J31~J34,UI-MOPS,T-SCHED-REV,Revision-aware replay tests,replay evidence,"과거 overwrite 0, 새 dataset/result revision",Data/BE,QA/Quant,8,V13-MODEL-001..004,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-013,S11,W23-24,Cross,Cross-cutting,ModelOperations,SCHED,REQ-SCHED-IDEMP,Cross,Cross,J31~J38,UI-MOPS,T-SCHED-IDEMP,Job crash/retry/lease tests,fault evidence,duplicate request/artifact/hypothesis 0,BE/SRE,QA/DBA,8,V13-MODEL-009,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-014,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-SEC,REQ-MODEL-SEG,Cross,MIG-0018,J35~J37,UI-J35~J37,T-MODEL-SEG,maker-checker/segregation E2E,approval evidence,"maker != checker, expired proposal block",Risk/BE,Compliance/QA,8,V13-MODEL-005..007,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-015,S13,W27-28,Cross,Cross-cutting,Governance,MODEL-BOUNDARY,REQ-MODEL-AUTO,Cross,Cross,J31~J38,UI-MOPS,T-MODEL-AUTO,금지 side effect architecture test,boundary tests,auto promote/config/publication/order 0,Architect/QA,Risk/Security,7,V13-MODEL-009,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-MODEL-016,S14,W29-30,Cross,Cross-cutting,Governance,MODEL-OPS,REQ-MODEL-RUNBOOK,Cross,Cross,J31~J38,UI-MOPS,T-MODEL-OPS,지속 모델운영 Runbook/rollback,runbook,owner/secondary/hold/replay/rollback drill,SRE/Risk,Quant/QA,8,V13-MODEL-001..015,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-001,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-01,Cross,Cross,Cross,UI-DEV-01,T-SCAFFOLD-01,BE/FE Vertical Slice scaffolder,tools/scaffold_vertical_slice.py,dry-run/overwrite refusal/unresolved token 0,Architect/DevEx,BE/FE Lead,8,V13-FE-003,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-002,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-02,Cross,Cross,Cross,UI-DEV-02,T-SCAFFOLD-02,FastEndpoints/Dapper template,templates/vertical-slice/backend,Endpoint/Request/Response/Validator/Handler/Sql packet,BE Lead,Architect/QA,7,V13-TOOL-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-003,S0,W1-2,Cross,Cross-cutting,DeveloperExperience,SCAFFOLD,REQ-SCAFFOLD-03,Cross,Cross,Cross,UI-DEV-03,T-SCAFFOLD-03,Vue/Zod/Query template,templates/vertical-slice/frontend,api/schema/query/page/test packet,FE Lead,Architect/QA,7,V13-TOOL-001,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-004,S0,W1-2,Cross,Cross-cutting,Governance,SOURCE,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-13,현재 첨부 5개 원본 보존,attachments/current_request_20260802_v13,SHA-256/size/filename byte-for-byte,PM/Architect,QA,6,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-005,S0,W1-2,Cross,Cross-cutting,Governance,TRACE,REQ-TRACE-13,Cross,Cross,Cross,Cross,T-TRACE-13,v13 Source/WBS/Trace update,docs/v13_0 CSV,"WBS 400, ID duplicate 0, J31~J38 trace",PM/QA,Architect,7,V13-TOOL-004,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-006,S14,W29-30,Cross,Cross-cutting,Quality,STATIC,REQ-STATIC-13,Cross,Cross,Cross,UI-ALL,T-STATIC-13,v13 static validator,STATIC_VALIDATION_V13_0.txt,"0 FAIL, WARN은 runtime 미실행만",QA/DevEx,Architect,8,"V13-FE-040,V13-MODEL-016",G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +V13-TOOL-007,S14,W29-30,Cross,Cross-cutting,Documentation,DOCX,REQ-DOCX-13,Cross,Cross,Cross,Cross,T-DOCX-13,v13 통합 제안서 DOCX,K-ArtSell_Aegis_v13_0*.docx,render 모든 페이지 육안 QA,PM/Consultant,QA/Architect,8,V13-TOOL-005,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +V13-TOOL-008,S15,W31-32,Cross,Cross-cutting,Release,PACKAGE,REQ-PACK-13,Cross,Cross,Cross,Cross,T-PACK-13,단일 ZIP·manifest·SHA,final package,"zip -T, manifest count/hash, 첨부 누락 0",Release/QA,PM/SRE,8,V13-TOOL-006..007,G6,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V14-001,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-001,Cross,Cross,Cross,Cross,Cross,UI Adapter v2 계약 동결,contracts/ui/ui-adapter.v2.json,"10개 capability와 contractVersion 2.0, fail-fast 검증",FE Architect,QA/UX,5,AEG-X-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-002,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-002,Cross,Cross,Cross,Cross,Cross,Provider resolver와 환경 선택 구현,resolveUiProvider.ts·env contract,"primevue/native 외 값은 startup 실패, Feature 수정 0",FE Lead,Architect/QA,5,AEG-V14-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-003,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-003,Cross,Cross,Cross,Cross,Cross,PrimeVue+AG Grid provider v2 이관,primevue adapter v2,10 capability contract test 통과,FE Lead,QA,6,AEG-V14-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-004,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-004,Cross,Cross,Cross,Cross,Cross,Native reference provider 구현,native-accessible adapter,"공급자 교체 증명, productionEligible=false",FE Lead,UX/QA,7,AEG-V14-001,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-005,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-001,Cross,Cross,Cross,Cross,Cross,DateField 표준 래퍼 구현,KsDateField + 2 provider adapter,label/error/help/min/max 계약과 keyboard test,FE,UX/QA,4,AEG-V14-003,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-006,S0,W1-2,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-002,Cross,Cross,Cross,Cross,Cross,NumberField 표준 래퍼 구현,KsNumberField + 2 provider adapter,decimal/범위/빈값 계약과 form test,FE,Quant/QA,4,AEG-V14-003,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-007,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,FITNESS,REQ-UI-FIT-001,Cross,Cross,Cross,Cross,Cross,Vendor import architecture fitness 강화,validate_v14.py import scan,adapter 경계 외 primevue/ag-grid import 0,Architect/QA,FE Lead,5,AEG-V14-002,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-008,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-005,Cross,Cross,Cross,Cross,Cross,Adapter capability contract test,uiAdapter.contract.spec.ts,두 provider 동일 capability와 component 누락 0,QA/FE,Architect,4,"AEG-V14-003,AEG-V14-004",G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-009,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-ADAPTER,REQ-UI-ADAPTER-006,Cross,Cross,Cross,Cross,Cross,공급자 교체 승인 Gate 정의,UI_PROVIDER_REPLACEMENT_GATE.md,a11y/visual/perf/state/security 증거 없이는 교체 금지,UX/Architect,QA/Security,3,AEG-V14-008,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-010,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-003,Cross,Cross,Cross,Cross,Cross,컴포넌트 버전/폐기 정책,FE_COMPONENT_CATALOGUE.csv,Stable/Experimental/Deprecated 상태와 대체일 정의,FE Lead,PM/UX,3,AEG-V14-001,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-011,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-004,Cross,Cross,Cross,Cross,Cross,표준 UI public barrel 정리,shared/ui/index.ts,"Feature import 경로 3개 이하, vendor symbol 노출 0",FE Lead,Architect,3,AEG-V14-007,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-012,S1,W3-4,Cross,Cross-cutting,FrontendPlatform,UI-COMP,REQ-UI-COMP-005,Cross,Cross,Cross,Cross,Cross,Native adapter 비생산 경고/관제,adapter descriptor + startup log,운영 환경 native 선택 시 배포 Gate HOLD,FE/SRE,QA,4,AEG-V14-004,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-013,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T01,Cross,Cross,Cross,T01,T-UI-T01,T01 검색·목록 CRUD 표준 화면 구현,SearchListCrudPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-014,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T02,Cross,Cross,Cross,T02,T-UI-T02,T02 상세·증거 조회 표준 화면 구현,DetailReadPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-015,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T03,Cross,Cross,Cross,T03,T-UI-T03,T03 등록·편집 Form 표준 화면 구현,EditFormPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-016,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T04,Cross,Cross,Cross,T04,T-UI-T04,T04 Master-Detail 표준 화면 구현,MasterDetailCrudPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-017,S2,W5-6,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T05,Cross,Cross,Cross,T05,T-UI-T05,T05 maker-checker 검토 표준 화면 구현,ApprovalWorkbenchPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-018,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T06,Cross,Cross,Cross,T06,T-UI-T06,T06 단계 Wizard 표준 화면 구현,StepWizardPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-019,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T07,Cross,Cross,Cross,T07,T-UI-T07,T07 Dashboard/Scorecard 표준 화면 구현,ScorecardDashboardPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-020,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T08,Cross,Cross,Cross,T08,T-UI-T08,T08 Batch/Data Ops 표준 화면 구현,BatchOperationsPageV2.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-021,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T09,Cross,Cross,Cross,T09,T-UI-T09,T09 대사·예외 표준 화면 구현,ReconciliationExceptionPage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-022,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-T10,Cross,Cross,Cross,T10,T-UI-T10,T10 버전·거버넌스 표준 화면 구현,VersionGovernancePage.vue + screen contract,필수 상태·증거·slot·responsive 계약과 catalogue test,FE/UX,QA/Domain Owner,5,AEG-V14-011,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-023,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-STATE-001,Cross,Cross,Cross,Cross,Cross,표준 화면 상태 union 계약,screenContract.ts,READY/LOADING/EMPTY/WARN/ERROR/권한/충돌/만료/처리 상태 명시,FE Architect,UX/QA,4,AEG-V14-013,MVP-B,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-024,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-SCREEN,REQ-UI-STATE-002,Cross,Cross,Cross,Cross,Cross,StandardScreenBoundary 상태 통합,StandardScreenBoundary.vue,모든 v2 화면이 동일 상태 경계 사용,FE,QA/UX,4,AEG-V14-023,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-025,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-001,Cross,Cross,Cross,Cross,Cross,목록 화면 scaffold 템플릿,CrudListPage.vue.template,"vendor import 0, v2 화면 계약 사용",FE,QA,3,AEG-V14-013,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-026,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-002,Cross,Cross,Cross,Cross,Cross,Form 화면 scaffold 템플릿,CrudFormPage.vue.template,Zod/If-Match/Idempotency TODO marker 명시,FE,QA,3,AEG-V14-015,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-027,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-003,Cross,Cross,Cross,Cross,Cross,상세 화면 scaffold 템플릿,CrudDetailPage.vue.template,"EvidenceVersionSet 필수, mutable evidence 금지",FE,Compliance/QA,3,AEG-V14-014,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-028,S3,W7-8,Cross,Cross-cutting,FrontendPlatform,UI-TEMPLATE,REQ-UI-SCAFFOLD-004,Cross,Cross,Cross,Cross,Cross,검토 화면 scaffold 템플릿,CrudReviewPage.vue.template,maker-checker 3영역과 경고 확인 slot,FE,Compliance/QA,3,AEG-V14-017,MVP-B,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-029,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,DEVEX,REQ-UI-SCAFFOLD-005,Cross,Cross,Cross,Cross,Cross,UI 화면 scaffolder 구현,tools/scaffold_ui_screen.py,"kind 4종 생성, overwrite 보호, vendor import 0",FE/DevEx,QA,5,AEG-V14-025..028,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-030,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-DEEPLINK-001,Cross,Cross,Cross,Cross,Cross,목록/선택/탭 URL 재현 계약,route state guideline + tests,새로고침/공유 링크에서 동일 화면 상태,FE/UX,QA,5,AEG-V14-013,MVP-B,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-031,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-CONFLICT-001,Cross,Cross,Cross,Cross,Cross,Form 충돌/dirty guard 표준화,If-Match conflict flow,"409/412에서 silent overwrite 0, 최신 재조회",FE,BE/QA,6,AEG-V14-015,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-032,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-EXPORT-001,Cross,Cross,Cross,Cross,Cross,목록 Export 권한/감사 표준,export command template,서버 권한·범위·감사 없이 client export 0,FE/BE,Security/QA,5,AEG-V14-013,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-033,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,A11Y,REQ-UI-A11Y-001,Cross,Cross,Cross,Cross,Cross,10개 화면 키보드/landmark 검증,Playwright accessibility scenarios,"키보드 trap 0, heading/landmark 순서 PASS",QA/UX,FE,8,AEG-V14-013..022,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-034,S4,W9-10,Cross,Cross-cutting,FrontendPlatform,VISUAL,REQ-UI-VIS-001,Cross,Cross,Cross,Cross,Cross,공급자별 visual regression 기준,baseline screenshots,prime/native 주요 상태 diff 승인,QA/UX,FE,7,AEG-V14-008,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-035,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,PERF,REQ-UI-PERF-001,Cross,Cross,Cross,Cross,Cross,AG Grid server-side volume 기준,grid performance evidence,"10k/100k 행은 server-side, UI long task 기준 충족",FE/SRE,QA,7,AEG-V14-003,G6-A,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-036,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-ERROR-001,Cross,Cross,Cross,Cross,Cross,ProblemDetails 사용자 메시지 매핑,problem code catalogue,"원문 stack/secret 노출 0, 재시도 가능성 구분",FE/Security,BE/QA,5,AEG-V14-024,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-037,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-EVIDENCE-001,Cross,Cross,Cross,Cross,Cross,EvidenceVersionSet 표준 노출,evidence panel contract,추천/모델/평가 화면에서 dataset/model/config/code/contract 표시,FE/Compliance,QA,5,"AEG-V14-014,AEG-V14-022",G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-038,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,UX,REQ-UI-STALENESS-001,Cross,Cross,Cross,Cross,Cross,Read Model stale 표시/재빌드 UX,freshness badge + rebuild status,"stale 숨김 0, watermark/projection version 조회",FE/Data,SRE/QA,5,"AEG-V14-016,AEG-V14-020",G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-039,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,TEST,REQ-UI-CONTRACT-001,Cross,Cross,Cross,Cross,Cross,화면 catalogue 정적 계약 테스트,catalogue.spec.ts,"ID/컴포넌트 중복 0, evidence/anti-pattern 비어있음 0",QA/FE,Architect,3,AEG-V14-013..022,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-040,S5,W11-12,Cross,Cross-cutting,FrontendPlatform,DOC,REQ-UI-DOC-001,Cross,Cross,Cross,Cross,Cross,UI 사용·금지 패턴 현장 가이드,02_FRONTEND_ADAPTER_STANDARD.md,신규 Feature PR 체크리스트와 예제 4종,FE Lead/UX,Architect/QA,4,AEG-V14-029,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-041,S6,W13-14,VS-20,PromoteModelVersion,ModelOperations,DOMAIN,REQ-MODEL-CYCLE-001,Cross,Cross,J31-J39,Cross,T-MODEL-CYCLE-001,ModelFeedbackCycle 상태기계,ModelFeedbackCycle.cs,"금지 전이 예외, revision/transition 이력",BE/Quant,Risk/QA,7,AEG-X-001,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-042,S6,W13-14,VS-20,PromoteModelVersion,ModelOperations,DOMAIN,REQ-MODEL-CYCLE-002,Cross,Cross,J31-J39,Cross,Cross,Feedback plan 9단계 계약,ModelFeedbackPlan.cs,"ACTIVATE=MANUAL_ONLY, 자동승격/주문 금지",Quant/Risk,BE/Compliance,5,AEG-V14-041,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-043,S6,W13-14,VS-20,PromoteModelVersion,ModelOperations,DOMAIN,REQ-MODEL-HYP-001,Cross,Cross,J35/J36,Cross,Cross,개선 가설·반증 계약,ModelImprovementHypothesis.cs,support/counter/falsification/unknown/decision required 검증,Quant/BE,IndependentValidation/QA,6,AEG-V14-042,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-044,S6,W13-14,Cross,Cross-cutting,ModelOperations,DB,REQ-MODEL-CYCLE-003,Cross,MIG-0019,J39,Cross,Cross,Feedback cycle 물리모델,MIG-0019 model_feedback_cycle,상태/revision/closed 불변조건,DBA/BE,Quant/QA,6,AEG-V14-041,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-045,S6,W13-14,Cross,Cross-cutting,ModelOperations,DB,REQ-MODEL-CYCLE-004,Cross,MIG-0019,J39,Cross,Cross,Feedback transition append-only 원장,model_feedback_transition + trigger,"update/delete 차단, sequence/content hash unique",DBA/Compliance,BE/QA,5,AEG-V14-044,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-046,S6,W13-14,Cross,Cross-cutting,ModelOperations,DB,REQ-MODEL-HYP-002,Cross,MIG-0019,J35,Cross,Cross,가설 supporting/counter evidence 정규화,model_hypothesis_evidence,side/classification/reference/hash 보존,DBA/Quant,Risk/QA,5,AEG-V14-043,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-047,S7,W15-16,Cross,Cross-cutting,ModelOperations,GOV,REQ-MODEL-ACT-001,Cross,MIG-0019,MANUAL_ONLY,Cross,Cross,Human-only activation decision,model_activation_decision,"actor_type HUMAN_CHANGE_APPROVAL, maker!=checker",Risk/Compliance,DBA/BE,6,AEG-V14-045,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-048,S7,W15-16,Cross,Cross-cutting,ModelOperations,API,REQ-MODEL-CYCLE-005,MOD-LOOP-01,Cross,J31-J39,Cross,Cross,Feedback loop 조회 Endpoint,GET /model-operations/feedback-loop,"권한 5역할, 자동화 경계 응답",BE,Security/QA,4,AEG-V14-042,G4,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-049,S7,W15-16,Cross,Cross-cutting,ModelOperations,JOB,REQ-MODEL-CYCLE-006,Cross,MIG-0019,J39,Cross,Cross,J39 FeedbackCycleIntegrityAudit 등록,registry+schedule contract,"disabled by default, q-control, G4",BE/SRE,Compliance/QA,4,AEG-V14-044,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-050,S7,W15-16,Cross,Cross-cutting,ModelOperations,JOB,REQ-MODEL-CYCLE-007,Cross,Cross,J39,Cross,Cross,Stuck cycle aging 정책,aging policy contract,"stage별 SLA 초과는 alert/HOLD, 자동 전이 0",Risk/SRE,Quant/QA,5,AEG-V14-049,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-051,S7,W15-16,Cross,Cross-cutting,ModelOperations,TEST,REQ-MODEL-CYCLE-008,Cross,Cross,Cross,Cross,T-MODEL-CYCLE-001,Feedback cycle 상태전이 unit test,ModelFeedbackCycleTests,정상경로/skip validation/manual activation boundary PASS,QA/BE,Quant/Risk,5,AEG-V14-041..043,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-052,S8,W17-18,Cross,Cross-cutting,ModelOperations,TEST,REQ-MODEL-HYP-003,Cross,Cross,Cross,Cross,T-MODEL-HYP-001,가설 분류·만료 unit test,ModelImprovementHypothesisTests,UNKNOWN/DECISION_REQUIRED/반대증거 누락 차단,QA/Quant,BE,4,AEG-V14-043,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-053,S8,W17-18,Cross,Cross-cutting,ModelOperations,REPO,REQ-MODEL-CYCLE-009,Cross,MIG-0019,J39,Cross,Cross,Feedback cycle repository/optimistic update,Dapper repository,"expected revision 불일치 409, transition same transaction",BE/DBA,QA,8,AEG-V14-044..045,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-054,S8,W17-18,Cross,Cross-cutting,ModelOperations,OUTBOX,REQ-MODEL-CYCLE-010,Cross,Cross,J39,Cross,Cross,Cycle transition Outbox 연결,ModelFeedbackTransitioned event,"aggregate update+transition+outbox 원자성, 중복 0",BE/SRE,QA/DBA,7,AEG-V14-053,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-055,S8,W17-18,Cross,Cross-cutting,ModelOperations,METRIC,REQ-MODEL-METRIC-001,Cross,Cross,J10/J11/J33/J34,Cross,Cross,Metric definition version Gate,metric definition registry validation,정의/분모/창/cohort 버전 없으면 평가 HOLD,Quant/Data,Risk/QA,6,AEG-V14-042,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-056,S8,W17-18,Cross,Cross-cutting,ModelOperations,OOS,REQ-MODEL-OOS-001,Cross,Cross,J18/J19/J20,Cross,Cross,동일 dataset/cost/cohort 비교 강제,comparison context validator,champion/challenger 비교 context mismatch 0,Quant/BE,IndependentValidation/QA,7,AEG-V14-055,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-057,S9,W19-20,Cross,Cross-cutting,ModelOperations,GOV,REQ-MODEL-GATE-001,Cross,Cross,J22/J37,Cross,Cross,Promotion Gate evidence completeness,promotion gate pack validator,252일/2국면/false-exit/reentry/PBO/DSR/double-cost/ops 증거,Risk/Quant,Compliance/QA,8,AEG-V14-055..056,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-058,S9,W19-20,Cross,Cross-cutting,ModelOperations,RUNBOOK,REQ-MODEL-ROLLBACK-001,Cross,Cross,J23,Cross,Cross,모델 rollback drill 증거 표준,runbook+drill evidence,"분기 drill, RTO, current/fallback hash, 주문 영향 0",SRE/Risk,QA/BE,6,AEG-V14-047,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-059,S9,W19-20,Cross,Cross-cutting,ModelOperations,UI,REQ-MODEL-UI-001,Cross,Cross,J31-J39,T10,Cross,모델 피드백 거버넌스 화면,T10 VersionGovernancePage feature,cycle/stage/evidence/hypothesis/validation/approval/rollback 표시,FE/Risk,BE/QA,8,AEG-V14-048,G4,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-060,S9,W19-20,Cross,Cross-cutting,ModelOperations,OBS,REQ-MODEL-OBS-001,Cross,Cross,J39,Cross,Cross,피드백 루프 metric/alert,cycle_age/hold/evidence_gap/illegal_transition,"Owner/Secondary, alert severity, runbook 링크",SRE/Quant,Compliance/QA,6,AEG-V14-049..050,G4,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-061,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,API,REQ-API-PROBLEM-001,Cross,Cross,Cross,Cross,Cross,ProblemDetails 오류코드 registry,contracts/api/problem-codes.v1.json,401/403/409/412/422/429/503 의미와 retryable 고정,BE Architect,FE/Security/QA,5,AEG-X-003,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-062,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,API,REQ-API-CONC-001,Cross,Cross,Cross,Cross,Cross,If-Match/ETag concurrency building block,VersionToken contract,mutable aggregate silent overwrite 0,BE,FE/QA,6,AEG-V14-061,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-063,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,CMD,REQ-CMD-IDEMP-001,Cross,Cross,Cross,Cross,Cross,Idempotency receipt 표준화,command receipt table/handler,"같은 key 같은 result hash, 다른 payload 409",BE/DBA,QA/SRE,8,AEG-X-006,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-064,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,DATA,REQ-DATA-PIT-001,Cross,Cross,Cross,Cross,Cross,PIT context reader 공통 계약,IApprovedPitContextReader,published_at/tradable_session/version set 누락 시 HOLD,Data/BE,Quant/QA,7,AEG-X-009,G1,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-065,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,READMODEL,REQ-RM-001,Cross,Cross,Cross,Cross,Cross,Projection metadata 표준,ProjectionVersion/Watermark/Stale/Rebuild,모든 Read Model Owner/version/watermark 보유,BE/Data,SRE/QA,7,AEG-V14-038,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-066,S10,W21-22,Cross,Cross-cutting,BuildingBlocks,OUTBOX,REQ-OUTBOX-001,Cross,Cross,Cross,Cross,Cross,Outbox/Inbox chaos matrix,crash-before/after publish/replay tests,"side effect 누락/중복 0, dead-letter/runbook",BE/SRE,QA/DBA,10,AEG-X-006,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-067,S11,W23-24,Cross,Cross-cutting,DataPlatform,DQ,REQ-DQ-001,Cross,Cross,Cross,Cross,Cross,Golden corporate action/상폐/총수익 dataset,golden data pack,분할/배당/합병/상폐/통화/거래일 케이스 재현,Data/Quant,DBA/QA,10,AEG-X-009,G1,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-068,S11,W23-24,Cross,Cross-cutting,DataPlatform,SOURCE,REQ-SOURCE-001,Cross,Cross,J25,Cross,Cross,Source contract drift fail-closed,J25 evidence and hold,license/schema/SLA/timezone/unit 변경 시 추천 HOLD,Data Governance,Adapter/QA,7,AEG-X-009,G1,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-069,S11,W23-24,Cross,Cross-cutting,BackendPlatform,CONTRACT,REQ-OPENAPI-001,Cross,Cross,Cross,Cross,Cross,OpenAPI artifact→FE schema Gate,generated client/schema diff,DTO drift와 수동 중복 타입 0,BE/FE,QA,8,AEG-V14-061,G3,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-070,S11,W23-24,Cross,Cross-cutting,BackendPlatform,ARCH,REQ-VS-TEMPLATE-001,Cross,Cross,Cross,Cross,Cross,Command/Query Vertical Slice 템플릿 분리,templates/dotnet v14,정책/I-O/transaction/query read model 책임 분리,Architect/BE,QA,6,AEG-X-003,G0,SOURCE+V14_DELTA,P1,PLANNED +AEG-V14-071,S12,W25-26,Cross,Cross-cutting,Quality,CI,REQ-CI-V14-001,Cross,Cross,Cross,Cross,Cross,v14 정적 validator CI 적용,tools/validate_v14.py,JSON/CSV/adapter/screen/model/migration/attachment PASS,QA/DevOps,Architect,6,AEG-V14-007,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-072,S12,W25-26,Cross,Cross-cutting,Quality,FE-CI,REQ-CI-FE-001,Cross,Cross,Cross,Cross,Cross,pnpm lock 생성·검토·frozen CI,pnpm-lock.yaml,승인 네트워크에서 typecheck/test/build 재현,FE/DevOps,Security/QA,5,AEG-V14-071,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-073,S12,W25-26,Cross,Cross-cutting,Quality,BE-CI,REQ-CI-BE-001,Cross,Cross,Cross,Cross,Cross,.NET 10 restore/build/test 실증,CI TRX/artifacts,warning policy 포함 Release build/test PASS,DevOps/BE,QA,5,AEG-V14-071,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-074,S12,W25-26,Cross,Cross-cutting,Quality,DB-CI,REQ-CI-DB-001,Cross,Cross,Cross,Cross,Cross,DbUp fresh/upgrade/rerun/failure rehearsal,migration evidence,0019 포함 4시나리오/checksum mutation 차단,DBA/DevOps,BE/QA,7,AEG-V14-073,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-075,S13,W27-28,Cross,Cross-cutting,Quality,E2E,REQ-E2E-UI-001,Cross,Cross,Cross,Cross,Cross,10개 화면 타입 Playwright smoke,screen contract E2E,prime provider에서 route/state/keyboard evidence,QA/FE,UX,10,AEG-V14-033,G3,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-076,S13,W27-28,Cross,Cross-cutting,Security,SUPPLY,REQ-SBOM-001,Cross,Cross,Cross,Cross,Cross,NuGet/npm SBOM·license/vulnerability Gate,SBOM artifacts,허용목록/critical 취약점/AG Grid license 검증,Security/DevOps,Architect/QA,7,AEG-V14-072..073,G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-077,S13,W27-28,Cross,Cross-cutting,Operations,SLO,REQ-SLO-001,Cross,Cross,Cross,Cross,Cross,UI/API/Batch SLO·RPO·RTO 승인,SLO ADR + load/DR evidence,volume 가정과 alert/runbook/owner 승인,SRE/PM,DBA/QA,8,"AEG-V14-035,AEG-V14-060",G5,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-078,S14,W29-30,Cross,Cross-cutting,Quality,RELEASE,REQ-REL-EVID-001,Cross,Cross,Cross,Cross,Cross,v14 Release Evidence 조립,release evidence bundle,source/build/test/migration/security/rollback hash 연결,QA/Release,Compliance/SRE,6,AEG-V14-071..077,G6,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-079,S14,W29-30,Cross,Cross-cutting,Governance,PACKAGE,REQ-PKG-001,Cross,Cross,Cross,Cross,Cross,재귀 ZIP 방지 패키징,package builder/manifest,"output zip·historical generated zip 자동 제외, source archive는 Full만",DevOps/PM,QA,5,AEG-X-001,G0,SOURCE+V14_DELTA,P0,PLANNED +AEG-V14-080,S15,W31-32,Cross,Cross-cutting,Governance,SIGNOFF,REQ-GO-001,Cross,Cross,Cross,Cross,Cross,운영·준법·투자위 통합 Go/No-Go,signed gate matrix,자동주문 OFF·research status·미검증 항목 명시,Steering Committee,All Leads,8,AEG-V14-078..079,G6,SOURCE+V14_DELTA,P0,PLANNED +AEG-V15-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-01,Cross,Cross,Cross,Cross,T-V15-GOV-01,기준선·첨부 Coverage Matrix 재승인,v15 Version Coverage/Supersession Registry,"v10·v12.1·v14·v15 상태와 SHA 100%, 중복/누락 0",PM/Architect,Compliance/QA,3,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-002,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-02,Cross,Cross,Cross,Cross,T-V15-GOV-02,DECISION_REQUIRED 만료·Owner 통제,Decision expiry report,기한 경과 미결정이 Gate에서 자동 차단,PM/Architect,Compliance/QA,5,AEG-V15-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-003,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-03,Cross,Cross,Cross,Cross,T-V15-GOV-03,UI/모델 운영 계약 ID Registry,Contract ID registry,UI/Job/Policy/Metric/DB ID 충돌 0,PM/Architect,Compliance/QA,5,AEG-V15-002,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-004,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-04,Cross,Cross,Cross,Cross,T-V15-GOV-04,Source/Assumption/Unknown PR 증거 표준,AI change evidence schema,PR마다 근거 분류와 실제 실행명령 존재,PM/Architect,Compliance/QA,6,AEG-V15-003,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-005,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-05,Cross,Cross,Cross,Cross,T-V15-GOV-05,자동주문·KIS·자동승격 금지 설정검사,Capability fail-closed policy,모든 환경에서 금지 capability true 구성 0,PM/Architect,Compliance/QA,5,AEG-V15-004,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-006,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-06,Cross,Cross,Cross,Cross,T-V15-GOV-06,요구사항 삭제·대체 영향분석,Supersession impact report,삭제 전 Traceability와 승인자 기록,PM/Architect,Compliance/QA,6,AEG-V15-005,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-007,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-07,Cross,Cross,Cross,Cross,T-V15-GOV-07,WBS/부채/Decision 월간 정합성 검사,Governance consistency report,Owner/Gate/Exit evidence 공란 0,PM/Architect,Compliance/QA,4,AEG-V15-006,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-008,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V15-GOV-08,Cross,Cross,Cross,Cross,T-V15-GOV-08,Steering Go/No-Go evidence pack,Steering pack,"근거 없는 완료 주장 0, 승인/보류 사유 기록",PM/Architect,Compliance/QA,4,AEG-V15-007,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-009,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-01,Cross,MIG-0020,Cross,UI-V15-FEA-01,T-V15-FEA-01,UI Adapter contract 3.0 확정,ui-adapter.v3.json,14 capability·정규화 prop/event·fail-fast 승인,FE Lead,UX/QA,3,AEG-X-001,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-010,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-02,Cross,MIG-0020,Cross,UI-V15-FEA-02,T-V15-FEA-02,PrimeVue/AG Grid provider v3 구현,Prime provider,"Feature vendor import 0, contract test 통과",FE Lead,UX/QA,5,AEG-V15-009,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-011,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-03,Cross,MIG-0020,Cross,UI-V15-FEA-03,T-V15-FEA-03,Native reference provider v3 구현,Native provider,동일 contract·keyboard baseline 재현,FE Lead,UX/QA,5,AEG-V15-010,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-012,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-04,Cross,MIG-0020,Cross,UI-V15-FEA-04,T-V15-FEA-04,MultiSelect/InlineMessage/Paginator/Tabs 래퍼,Ks component set,업무 화면이 vendor prop을 알지 않음,FE Lead,UX/QA,6,AEG-V15-011,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-013,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-05,Cross,MIG-0020,Cross,UI-V15-FEA-05,T-V15-FEA-05,Grid server query contract,UiGridQuery contract,page/sort/filter/search 재현·PII column mask,FE Lead,UX/QA,5,AEG-V15-012,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-014,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-06,Cross,MIG-0020,Cross,UI-V15-FEA-06,T-V15-FEA-06,Provider compatibility harness,Adapter conformance tests,두 provider에 동일 상태·event matrix,FE Lead,UX/QA,6,AEG-V15-013,G0,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-015,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-07,Cross,MIG-0020,Cross,UI-V15-FEA-07,T-V15-FEA-07,UI contract release evidence 원장,governance.ui_contract_release,승인 provider/version/hash 이력 불변,FE Lead,UX/QA,4,AEG-V15-014,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-016,S0,W1-2,VS-00,PlatformBootstrap,Frontend Architecture,FEA,REQ-V15-FEA-08,Cross,MIG-0020,Cross,UI-V15-FEA-08,T-V15-FEA-08,Adapter migration runbook,ui-provider-switch.md,rollback·visual/a11y/perf Gate 명시,FE Lead,UX/QA,4,AEG-V15-015,G0,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-017,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-01,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-01,T-V15-CRUD-01,CRUD resource contract 표준화,CrudResourceContract,Query/Form/Permission/Response parser 책임 분리,FE Lead,UX/BE,3,AEG-X-001,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-018,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-02,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-02,T-V15-CRUD-02,URL query codec 구현,queryCodec.ts,deep-link round-trip·invalid input fail-closed,FE Lead,UX/BE,5,AEG-V15-017,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-019,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-03,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-03,T-V15-CRUD-03,CRUD list state composable,useCrudListState.ts,Pinia 서버캐시 금지·paging reset 일관,FE Lead,UX/BE,5,AEG-V15-018,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-020,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-04,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-04,T-V15-CRUD-04,표준 CRUD 목록 화면,StandardCrudListPage.vue,state/paging/evidence/aside slot 계약,FE Lead,UX/BE,6,AEG-V15-019,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-021,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-05,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-05,T-V15-CRUD-05,표준 CRUD Form 화면,StandardCrudFormPage.vue,Zod·dirty·readonly·submit 경계,FE Lead,UX/BE,5,AEG-V15-020,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-022,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-06,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-06,T-V15-CRUD-06,Optimistic concurrency UX,409/412 conflict flow,"silent overwrite 0, reload/compare/reapply 제공",FE Lead,UX/BE,6,AEG-V15-021,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-023,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-07,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-07,T-V15-CRUD-07,Idempotency UX,command submission guard,"중복 클릭 side effect 0, correlation 표시",FE Lead,UX/BE,4,AEG-V15-022,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-024,S6,W13-14,VS-07,ClientAdvisory,Frontend CRUD,CRUD,REQ-V15-CRUD-08,V15-CRUD-API,Cross,Cross,UI-V15-CRUD-08,T-V15-CRUD-08,CRUD scaffold v3,scaffold_ui_screen.py delta,생성 결과 contract/lint/test baseline 충족,FE Lead,UX/BE,4,AEG-V15-023,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-025,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-01,Cross,Cross,Cross,UI-V15-LAY-01,T-V15-LAY-01,CrudWorkspaceLayout 구현,CrudWorkspaceLayout.vue,toolbar/main/aside/action 순서·responsive,UX Lead,FE/QA,3,AEG-X-001,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-026,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-02,Cross,Cross,Cross,UI-V15-LAY-02,T-V15-LAY-02,OperationsConsoleLayout 구현,OperationsConsoleLayout.vue,JobRun/watermark/owner/재처리 표면화,UX Lead,FE/QA,5,AEG-V15-025,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-027,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-03,Cross,Cross,Cross,UI-V15-LAY-03,T-V15-LAY-03,Page evidence header 고도화,Evidence header,asOf/version/projection/watermark/stale 표시,UX Lead,FE/QA,5,AEG-V15-026,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-028,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-04,Cross,Cross,Cross,UI-V15-LAY-04,T-V15-LAY-04,화면 상태 Matrix 회귀,T01~T10 state matrix,13 상태 누락 0,UX Lead,FE/QA,6,AEG-V15-027,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-029,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-05,Cross,Cross,Cross,UI-V15-LAY-05,T-V15-LAY-05,접근성 keyboard/focus 계약,a11y acceptance,skip/focus/dialog/grid/tab 순서 검증,UX Lead,FE/QA,5,AEG-V15-028,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-030,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-06,Cross,Cross,Cross,UI-V15-LAY-06,T-V15-LAY-06,민감정보 column 표시정책,PII grid policy,마스킹·export 권한·audit,UX Lead,FE/QA,6,AEG-V15-029,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-031,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-07,Cross,Cross,Cross,UI-V15-LAY-07,T-V15-LAY-07,반응형 운영화면 기준,responsive evidence,1024/1440/1920/모바일 업무순서 유지,UX Lead,FE/QA,4,AEG-V15-030,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-032,S6,W13-14,Cross,Cross-cutting,UX/Layout,LAY,REQ-V15-LAY-08,Cross,Cross,Cross,UI-V15-LAY-08,T-V15-LAY-08,디자인 token 변경 Gate,semantic token contract,기능 CSS 직접 색상/간격 drift 0,UX Lead,FE/QA,4,AEG-V15-031,MVP-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-033,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-01,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-01,Schedule anchor 계산기,ScheduleOccurrencePlanner,dispatch 지연이 cadence drift를 만들지 않음,BE Lead,SRE/QA,3,AEG-X-001,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-034,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-02,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-02,Catch-up policy 구현,LATEST/SKIP/ALL_LIMIT,장애 복구 후 job storm 0,BE Lead,SRE/QA,5,AEG-V15-033,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-035,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-03,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-03,Due operation 계약 확장,DueModelOperation v15,scheduledFor/catchUp/maxCatchUp 추적,BE Lead,SRE/QA,5,AEG-V15-034,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-036,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-04,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-04,Dispatcher nextDue CAS,schedule repository,lease 상실·중복 advance 0,BE Lead,SRE/QA,6,AEG-V15-035,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-037,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-05,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-05,BusinessHold와 기술실패 분리,execution state machine,"blind retry 0, reason/holdUntil 기록",BE Lead,SRE/QA,5,AEG-V15-036,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-038,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-06,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-06,Schedule heartbeat/aging,execution heartbeat,stuck request 탐지와 Owner alert,BE Lead,SRE/QA,6,AEG-V15-037,G3,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-039,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-07,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-07,시장 timezone/calendar 계약,calendar/timezone contract,UTC 저장·시장세션 계산·DST 테스트,BE Lead,SRE/QA,4,AEG-V15-038,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-040,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V15-SCH-08,V15-SCH-API,MIG-0020,J31~J40,Cross,T-V15-SCH-08,Scheduler chaos rehearsal,dispatcher chaos tests,enqueue/mark 실패·재시작 중복 side effect 0,BE Lead,SRE/QA,4,AEG-V15-039,G3,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-041,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-01,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-01,1/5/20/63/126/252 window planner,EvaluationWindowPlanner,calendar day가 아닌 거래세션 사용,Quant Lead,Data/QA,3,AEG-X-001,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-042,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-02,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-02,Prediction window 불변원장,prediction_evaluation_window,중복 window 0·revision overwrite 0,Quant Lead,Data/QA,5,AEG-V15-041,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-043,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-03,V15-EVA-API,MIG-0020,J40,Cross,T-V15-EVA-03,J40 Window integrity audit,J40,missing/duplicate/late/calendar drift 보고,Quant Lead,Data/QA,5,AEG-V15-042,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-044,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-04,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-04,Metric definition version 계약,MetricDefinitionVersion,분자/분모/창/집계/threshold hash 고정,Quant Lead,Data/QA,6,AEG-V15-043,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-045,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-05,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-05,Cohort definition 원장,metric_cohort_definition,표본 선택 변경 이력·최소표본 계약,Quant Lead,Data/QA,5,AEG-V15-044,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-046,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-06,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-06,Outcome maturity SLA,window backlog SLO,지연·결측·상폐/총수익 hold 구분,Quant Lead,Data/QA,6,AEG-V15-045,G4,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-047,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-07,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-07,Revision re-evaluation 영향분석,affected evidence index,원천 revision 영향 결정 추적,Quant Lead,Data/QA,4,AEG-V15-046,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-048,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation Windows,EVA,REQ-V15-EVA-08,V15-EVA-API,MIG-0020,J31~J40,Cross,T-V15-EVA-08,Scorecard reproducibility pack,metric evidence bundle,동일 VersionSet·definition 결과 동일,Quant Lead,Data/QA,4,AEG-V15-047,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-049,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-01,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-01,Feedback transition 시간 단조성,ModelFeedbackCycle,과거시각 전이 거부·ClosedAt 보존,Risk/Quant,IndependentValidation/Compliance,3,AEG-X-001,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-050,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-02,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-02,Operation execution 상태기계,ModelOperationExecution,허용전이·terminal 상태 테스트,Risk/Quant,IndependentValidation/Compliance,5,AEG-V15-049,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-051,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-03,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-03,Hypothesis counter-evidence 필수화,hypothesis contract,반대증거/반증기준 공란 승인 0,Risk/Quant,IndependentValidation/Compliance,5,AEG-V15-050,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-052,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-04,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-04,Challenger experiment registry,experiment manifest,시도 전체·seed·비용·stop 기준 기록,Risk/Quant,IndependentValidation/Compliance,6,AEG-V15-051,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-053,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-05,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-05,Promotion threshold VersionSet,promotion gate contract,임계값 문서/YAML/C# drift 0,Risk/Quant,IndependentValidation/Compliance,5,AEG-V15-052,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-054,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-06,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-06,독립검증 업무분장 검사,segregation test,개발자=최종승인자 0,Risk/Quant,IndependentValidation/Compliance,6,AEG-V15-053,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-055,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-07,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-07,Human activation evidence,model activation decision,maker≠checker·change ticket·rollback,Risk/Quant,IndependentValidation/Compliance,4,AEG-V15-054,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-056,S11,W23-24,VS-20,GovernanceAudit,Model Feedback,MOD,REQ-V15-MOD-08,V15-MOD-API,Cross,J31~J40,Cross,T-V15-MOD-08,자동 모델 변경 금지 테스트,automation boundary tests,scheduler의 lifecycle/config mutation 0,Risk/Quant,IndependentValidation/Compliance,4,AEG-V15-055,G4,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-057,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-01,Cross,MIG-0020,Cross,Cross,T-V15-DAT-01,PIT 필드·단위 contract lint,PIT schema lint,published/revision/tradable/unit 누락 0,Data Architect,DBA/Quant,3,AEG-X-001,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-058,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-02,Cross,MIG-0020,Cross,Cross,T-V15-DAT-02,Raw→Canonical→DQ→Dataset lineage,lineage graph,추천 Evidence까지 hash chain 100%,Data Architect,DBA/Quant,5,AEG-V15-057,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-059,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-03,Cross,MIG-0020,Cross,Cross,T-V15-DAT-03,기업행사·상폐·총수익 Golden 확장,Golden dataset,가격/수량/원가/배당 대사,Data Architect,DBA/Quant,5,AEG-V15-058,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-060,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-04,Cross,MIG-0020,Cross,Cross,T-V15-DAT-04,valid-time overlap 방지,DB constraints,Fee/Tax/FX/Policy 유효구간 중첩 0,Data Architect,DBA/Quant,6,AEG-V15-059,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-061,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-05,Cross,MIG-0020,Cross,Cross,T-V15-DAT-05,Read Model projection contract,ProjectionVersion/Watermark,stale 표시·rebuild/diff,Data Architect,DBA/Quant,5,AEG-V15-060,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-062,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-06,Cross,MIG-0020,Cross,Cross,T-V15-DAT-06,불변원장 correction replay,correction E2E,update/delete 없이 reversal/correction,Data Architect,DBA/Quant,6,AEG-V15-061,G1-B,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-063,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-07,Cross,MIG-0020,Cross,Cross,T-V15-DAT-07,대량 ingestion 성능·격리,load/DQ test,"SLA 내 적재, 결함 row 격리",Data Architect,DBA/Quant,4,AEG-V15-062,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-064,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V15-DAT-08,Cross,MIG-0020,Cross,Cross,T-V15-DAT-08,DB migration 0020 4시나리오,DbUp rehearsal,fresh/upgrade/rerun/failure 복구,Data Architect,DBA/Quant,4,AEG-V15-063,G1-B,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-065,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-01,Cross,Cross,Cross,Cross,T-V15-ALG-01,매도 우선순위 회귀,SellPolicyChain Golden,impairment/survival 하위점수 상쇄 0,Quant Lead,BE/QA,3,AEG-X-001,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-066,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-02,Cross,Cross,Cross,Cross,T-V15-ALG-02,Lot 비율·Portfolio weight 단위 테스트,semantic unit tests,비율/절대비중 혼용 0,Quant Lead,BE/QA,5,AEG-V15-065,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-067,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-03,Cross,Cross,Cross,Cross,T-V15-ALG-03,Dynamic floor 단조성 검증,monotonic property,가격 상승 시 승인된 floor 역행 0,Quant Lead,BE/QA,5,AEG-V15-066,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-068,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-04,Cross,Cross,Cross,Cross,T-V15-ALG-04,재진입 window/calendar 통합,Reentry calendar tests,10세션/126세션·중복 stage 0,Quant Lead,BE/QA,6,AEG-V15-067,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-069,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-05,Cross,Cross,Cross,Cross,T-V15-ALG-05,비용후 기회우위 하단 계약,Opportunity edge tests,Fee/Tax/FX/slippage PIT·lower bound>0,Quant Lead,BE/QA,5,AEG-V15-068,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-070,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-06,Cross,Cross,Cross,Cross,T-V15-ALG-06,모델 calibration/regime 진단,evaluation report,P10/P50/P90·Brier/log loss·regime,Quant Lead,BE/QA,6,AEG-V15-069,G2-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-071,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-07,Cross,Cross,Cross,Cross,T-V15-ALG-07,false-exit/gain-capture 정의 고정,metric definition,연 2% 기준의 분모·창 명확,Quant Lead,BE/QA,4,AEG-V15-070,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-072,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V15-ALG-08,Cross,Cross,Cross,Cross,T-V15-ALG-08,PBO/DSR 전체 실험 원장,experiment registry,선택된 승자만 기록하는 편향 0,Quant Lead,BE/QA,4,AEG-V15-071,G2-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-073,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-01,Cross,Cross,Cross,Cross,T-V15-QA-01,Architecture fitness v15,architecture tests,vendor import/direct DB/DateTime.Now/ID drift 0,QA Lead,FE/BE/Data,3,AEG-X-001,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-074,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-02,Cross,Cross,Cross,Cross,T-V15-QA-02,UI adapter contract tests,Vitest contract suite,14 capability·event semantics,QA Lead,FE/BE/Data,5,AEG-V15-073,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-075,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-03,Cross,Cross,Cross,Cross,T-V15-QA-03,CRUD URL/state tests,Vitest,deep-link·paging·conflict·idempotency,QA Lead,FE/BE/Data,5,AEG-V15-074,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-076,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-04,Cross,Cross,Cross,Cross,T-V15-QA-04,Playwright T01/T05/T08/T10,E2E suite,고객/승인/배치/거버넌스 핵심 경로,QA Lead,FE/BE/Data,6,AEG-V15-075,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-077,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-05,Cross,Cross,Cross,Cross,T-V15-QA-05,Accessibility automated+manual,a11y evidence,WCAG target·keyboard/focus/label,QA Lead,FE/BE/Data,5,AEG-V15-076,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-078,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-06,Cross,Cross,Cross,Cross,T-V15-QA-06,Scheduler unit/integration/chaos,xUnit/Postgres,anchor/catchup/lease/hold/restart,QA Lead,FE/BE/Data,6,AEG-V15-077,G6-A,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-079,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-07,Cross,Cross,Cross,Cross,T-V15-QA-07,Migration invariant tests,DataTests,append-only/unique/window/overlap,QA Lead,FE/BE/Data,4,AEG-V15-078,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-080,S14,W29-30,Cross,Cross-cutting,QA/Testing,QA,REQ-V15-QA-08,Cross,Cross,Cross,Cross,T-V15-QA-08,Release regression matrix,Release Evidence,실행 명령·artifact hash·owner,QA Lead,FE/BE/Data,4,AEG-V15-079,G6-A,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-081,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-01,Cross,Cross,Cross,UI-V15-OPS-01,T-V15-OPS-01,OTel model operation spans,trace contract,schedule/request/window/evidence correlation,SRE Lead,Security/DBA,3,AEG-X-001,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-082,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-02,Cross,Cross,Cross,UI-V15-OPS-02,T-V15-OPS-02,Scheduler/feedback metrics,metric catalogue,lag/hold/stuck/duplicate/hash mismatch,SRE Lead,Security/DBA,5,AEG-V15-081,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-083,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-03,Cross,Cross,Cross,UI-V15-OPS-03,T-V15-OPS-03,Telegram PII redaction,notification tests,고객/토큰/내부점수 노출 0,SRE Lead,Security/DBA,5,AEG-V15-082,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-084,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-04,Cross,Cross,Cross,UI-V15-OPS-04,T-V15-OPS-04,Kill-switch drill,runbook evidence,evaluation/recommendation/publish 단계별 차단,SRE Lead,Security/DBA,6,AEG-V15-083,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-085,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-05,Cross,Cross,Cross,UI-V15-OPS-05,T-V15-OPS-05,Backup/restore/reconcile drill,DR evidence,RPO/RTO·원장/Projection 대사,SRE Lead,Security/DBA,5,AEG-V15-084,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-086,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-06,Cross,Cross,Cross,UI-V15-OPS-06,T-V15-OPS-06,SBOM/license/vulnerability Gate,supply-chain report,NuGet/npm allowlist·critical 0,SRE Lead,Security/DBA,6,AEG-V15-085,G5,SOURCE+DESIGN_PROPOSAL,P0,PLANNED +AEG-V15-087,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-07,Cross,Cross,Cross,UI-V15-OPS-07,T-V15-OPS-07,Capacity assumptions/soak,capacity report,portfolio/security/client/job volume 승인,SRE Lead,Security/DBA,4,AEG-V15-086,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-088,S13,W27-28,VS-25,GovernanceAudit,Operations/Security,OPS,REQ-V15-OPS-08,Cross,Cross,Cross,UI-V15-OPS-08,T-V15-OPS-08,Production auth ADR,OIDC/JWT E2E,fail-closed·key rotation·claim/RBAC,SRE Lead,Security/DBA,4,AEG-V15-087,G5,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-089,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-01,Cross,Cross,Cross,Cross,T-V15-PKG-01,v15 통합 제안서,v15 DOCX,render·a11y·내용/표 검토,Release Manager,PM/QA,3,AEG-X-001,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-090,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-02,Cross,Cross,Cross,Cross,T-V15-PKG-02,상세 WBS 576건,WBS master,공란/중복 0·Gate 연결,Release Manager,PM/QA,5,AEG-V15-089,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-091,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-03,Cross,Cross,Cross,Cross,T-V15-PKG-03,기술부채 124건,Debt register,P0 owner/exit/gate 100%,Release Manager,PM/QA,5,AEG-V15-090,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-092,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-04,Cross,Cross,Cross,Cross,T-V15-PKG-04,Traceability 101행,Traceability matrix,REQ→Test→WBS→Gate 연결,Release Manager,PM/QA,6,AEG-V15-091,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-093,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-05,Cross,Cross,Cross,Cross,T-V15-PKG-05,Core_NoLegacy 패키지,Core ZIP,과거 ZIP 제외·ZIP test PASS,Release Manager,PM/QA,5,AEG-V15-092,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-094,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-06,Cross,Cross,Cross,Cross,T-V15-PKG-06,Full_With_Attachments 패키지,Full ZIP,현재 원본 4개 SHA 보존,Release Manager,PM/QA,6,AEG-V15-093,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-095,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-07,Cross,Cross,Cross,Cross,T-V15-PKG-07,Manifest/SHA 생성,manifest/checksum,모든 파일 hash·자기참조 제외,Release Manager,PM/QA,4,AEG-V15-094,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V15-096,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V15-PKG-08,Cross,Cross,Cross,Cross,T-V15-PKG-08,배포 README/검증 진실성,distribution guide,미실행 검증을 PASS로 표현 0,Release Manager,PM/QA,4,AEG-V15-095,G6,SOURCE+DESIGN_PROPOSAL,P1,PLANNED +AEG-V16-001,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V16-GOV-01,Cross,Cross,Cross,Cross,T-V16-GOV-01,v16 Baseline/Coverage 승인,Version Coverage Matrix,v10/v12.1/v15/v16 SHA·상태 100%,PM/Architect,Compliance/QA,4,AEG-V15-096,G0,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-002,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V16-GOV-02,Cross,Cross,Cross,Cross,T-V16-GOV-02,패키징 Supersession 승인,Package supersession record,v14 archive 제거 사유·영향·승인,PM/Architect,Compliance/QA,5,AEG-V16-001,G0,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-003,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V16-GOV-03,Cross,Cross,Cross,Cross,T-V16-GOV-03,계약 ID Registry v16,ID registry,UI/Data/Schedule/Job/DB ID 충돌 0,PM/Architect,Compliance/QA,6,AEG-V16-002,G0,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-004,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V16-GOV-04,Cross,Cross,Cross,Cross,T-V16-GOV-04,Decision expiry Gate,decision expiry report,기한경과 미결정 코딩 차단,PM/Architect,Compliance/QA,7,AEG-V16-003,G0,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-005,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V16-GOV-05,Cross,Cross,Cross,Cross,T-V16-GOV-05,Capability OFF config scan,CI capability report,자동주문/KIS/자동활성 true 0,PM/Architect,Compliance/QA,3,AEG-V16-004,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-006,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V16-GOV-06,Cross,Cross,Cross,Cross,T-V16-GOV-06,Source/Assumption/Unknown PR,AI evidence schema,PR 근거분류·검증명령 공란 0,PM/Architect,Compliance/QA,4,AEG-V16-005,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-007,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V16-GOV-07,Cross,Cross,Cross,Cross,T-V16-GOV-07,Traceability drift 검사,traceability diff,REQ→TEST/WBS 누락 0,PM/Architect,Compliance/QA,5,AEG-V16-006,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-008,S0,W1-2,Cross,Cross-cutting,Governance,GOV,REQ-V16-GOV-08,Cross,Cross,Cross,Cross,T-V16-GOV-08,Steering evidence pack,Go/No-Go pack,미실행 PASS 표현 0,PM/Architect,Compliance/QA,6,AEG-V16-007,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-009,S0,W1-2,VS-00,PlatformBootstrap,Frontend Adapter,UI4,REQ-V16-UI4-01,Cross,0021,Cross,UI-V16-UI4-01,T-V16-UI4-01,UI Adapter v4 계약,ui-adapter.v4.json,14 capability·8 evidence·fail-fast,FE Lead,UX/QA,4,AEG-V16-008,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-010,S0,W1-2,VS-00,PlatformBootstrap,Frontend Adapter,UI4,REQ-V16-UI4-02,Cross,0021,Cross,UI-V16-UI4-02,T-V16-UI4-02,호환성 평가기 구현,compatibility.ts,누락 capability/component 검출,FE Lead,UX/QA,5,AEG-V16-009,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-011,S0,W1-2,VS-00,PlatformBootstrap,Frontend Adapter,UI4,REQ-V16-UI4-03,Cross,0021,Cross,UI-V16-UI4-03,T-V16-UI4-03,Prime provider v4 정렬,prime adapter descriptor,contractVersion 4.0,FE Lead,UX/QA,6,AEG-V16-010,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-012,S0,W1-2,VS-00,PlatformBootstrap,Frontend Adapter,UI4,REQ-V16-UI4-04,Cross,0021,Cross,UI-V16-UI4-04,T-V16-UI4-04,Native reference v4 정렬,native adapter descriptor,동일 normalized semantics,FE Lead,UX/QA,7,AEG-V16-011,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-013,S0,W1-2,VS-00,PlatformBootstrap,Frontend Adapter,UI4,REQ-V16-UI4-05,Cross,0021,Cross,UI-V16-UI4-05,T-V16-UI4-05,Provider switch smoke,adapter compatibility test,두 provider startup 선택,FE Lead,UX/QA,3,AEG-V16-012,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-014,S0,W1-2,VS-00,PlatformBootstrap,Frontend Adapter,UI4,REQ-V16-UI4-06,Cross,0021,Cross,UI-V16-UI4-06,T-V16-UI4-06,UI compatibility evidence DB,0021 table,승인 evidence append-only,FE Lead,UX/QA,4,AEG-V16-013,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-015,S0,W1-2,VS-00,PlatformBootstrap,Frontend Adapter,UI4,REQ-V16-UI4-07,Cross,0021,Cross,UI-V16-UI4-07,T-V16-UI4-07,Adapter rollback runbook,runbook,visual/a11y/perf rollback,FE Lead,UX/QA,5,AEG-V16-014,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-016,S0,W1-2,VS-00,PlatformBootstrap,Frontend Adapter,UI4,REQ-V16-UI4-08,Cross,0021,Cross,UI-V16-UI4-08,T-V16-UI4-08,Vendor boundary fitness,validate_v16.py,Feature direct import 0,FE Lead,UX/QA,6,AEG-V16-015,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-017,S6,W13-14,Cross,Cross-cutting,Frontend Components,FEC,REQ-V16-FEC-01,Cross,Cross,Cross,UI-V16-FEC-01,T-V16-FEC-01,FieldShell 표준,FieldShell.vue,label/error/help/aria 단일화,FE Lead,UX/QA,4,AEG-V16-016,MVP-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-018,S6,W13-14,Cross,Cross-cutting,Frontend Components,FEC,REQ-V16-FEC-02,Cross,Cross,Cross,UI-V16-FEC-02,T-V16-FEC-02,DataContextHeader,KsDataContextHeader.vue,as-of/VersionSet/Projection/Watermark,FE Lead,UX/QA,5,AEG-V16-017,MVP-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-019,S6,W13-14,Cross,Cross-cutting,Frontend Components,FEC,REQ-V16-FEC-03,Cross,Cross,Cross,UI-V16-FEC-03,T-V16-FEC-03,CommandBar,KsCommandBar.vue,행동 순서·disabled/busy,FE Lead,UX/QA,6,AEG-V16-018,MVP-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-020,S6,W13-14,Cross,Cross-cutting,Frontend Components,FEC,REQ-V16-FEC-04,Cross,Cross,Cross,UI-V16-FEC-04,T-V16-FEC-04,CRUD Resource v2,crud-resource.v2.json,Zod/permission/concurrency/idempotency,FE Lead,UX/QA,7,AEG-V16-019,MVP-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-021,S6,W13-14,Cross,Cross-cutting,Frontend Components,FEC,REQ-V16-FEC-05,Cross,Cross,Cross,UI-V16-FEC-05,T-V16-FEC-05,CRUD definition type,resourceDefinition.ts,sensitive field consistency,FE Lead,UX/QA,3,AEG-V16-020,MVP-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-022,S6,W13-14,Cross,Cross-cutting,Frontend Components,FEC,REQ-V16-FEC-06,Cross,Cross,Cross,UI-V16-FEC-06,T-V16-FEC-06,Optimistic command hook,useOptimisticCommand.ts,double submit 0·409/412 표면화,FE Lead,UX/QA,4,AEG-V16-021,MVP-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-023,S6,W13-14,Cross,Cross-cutting,Frontend Components,FEC,REQ-V16-FEC-07,Cross,Cross,Cross,UI-V16-FEC-07,T-V16-FEC-07,T01~T10 계약 회귀,screen catalogue tests,13 상태 누락 0,FE Lead,UX/QA,5,AEG-V16-022,MVP-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-024,S6,W13-14,Cross,Cross-cutting,Frontend Components,FEC,REQ-V16-FEC-08,Cross,Cross,Cross,UI-V16-FEC-08,T-V16-FEC-08,FE accessibility Gate,a11y evidence,keyboard/focus/name/alert,FE Lead,UX/QA,6,AEG-V16-023,MVP-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-025,S0,W1-2,VS-00,PlatformBootstrap,Backend Execution,BEX,REQ-V16-BEX-01,Cross,Cross,Cross,Cross,T-V16-BEX-01,ExecutionEnvelope 구현,ExecutionEnvelope.cs,PIT cutoff/VersionSet 검증,BE Lead,Architect/QA,4,AEG-V16-024,G0,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-026,S0,W1-2,VS-00,PlatformBootstrap,Backend Execution,BEX,REQ-V16-BEX-02,Cross,Cross,Cross,Cross,T-V16-BEX-02,서버 Evidence context 적용,command context plan,client evidence 신뢰 0,BE Lead,Architect/QA,5,AEG-V16-025,G0,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-027,S0,W1-2,VS-00,PlatformBootstrap,Backend Execution,BEX,REQ-V16-BEX-03,Cross,Cross,Cross,Cross,T-V16-BEX-03,ProblemDetails stable code,API contract,correlation/retryability,BE Lead,Architect/QA,6,AEG-V16-026,G0,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-028,S0,W1-2,VS-00,PlatformBootstrap,Backend Execution,BEX,REQ-V16-BEX-04,Cross,Cross,Cross,Cross,T-V16-BEX-04,Idempotency+transaction+outbox,command pattern,동일 key side effect 0,BE Lead,Architect/QA,7,AEG-V16-027,G0,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-029,S0,W1-2,VS-00,PlatformBootstrap,Backend Execution,BEX,REQ-V16-BEX-05,Cross,Cross,Cross,Cross,T-V16-BEX-05,If-Match optimistic concurrency,update pattern,silent overwrite 0,BE Lead,Architect/QA,3,AEG-V16-028,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-030,S0,W1-2,VS-00,PlatformBootstrap,Backend Execution,BEX,REQ-V16-BEX-06,Cross,Cross,Cross,Cross,T-V16-BEX-06,Architecture fitness 확장,architecture tests,Domain 기술의존 0,BE Lead,Architect/QA,4,AEG-V16-029,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-031,S0,W1-2,VS-00,PlatformBootstrap,Backend Execution,BEX,REQ-V16-BEX-07,Cross,Cross,Cross,Cross,T-V16-BEX-07,OpenAPI→FE diff Gate,contract artifact,DTO drift 0,BE Lead,Architect/QA,5,AEG-V16-030,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-032,S0,W1-2,VS-00,PlatformBootstrap,Backend Execution,BEX,REQ-V16-BEX-08,Cross,Cross,Cross,Cross,T-V16-BEX-08,Release Evidence 연결,release evidence,API/DB/Test/metric/rollback hash,BE Lead,Architect/QA,6,AEG-V16-031,G0,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-033,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V16-DAT-01,Cross,0021,Cross,Cross,T-V16-DAT-01,PIT envelope contract,pit-envelope.v1.json,필수 9필드 누락 0,Data Architect,DBA/Quant,4,AEG-V16-032,G1-B,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-034,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V16-DAT-02,Cross,0021,Cross,Cross,T-V16-DAT-02,Projection contract,projection-contract.v1.json,version/watermark/stale/rebuild,Data Architect,DBA/Quant,5,AEG-V16-033,G1-B,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-035,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V16-DAT-03,Cross,0021,Cross,Cross,T-V16-DAT-03,Projection rebuild table,0021 projection request,before/after hash,Data Architect,DBA/Quant,6,AEG-V16-034,G1-B,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-036,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V16-DAT-04,Cross,0021,Cross,Cross,T-V16-DAT-04,Evaluation reconciliation table,0021 reconciliation,append-only repair evidence,Data Architect,DBA/Quant,7,AEG-V16-035,G1-B,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-037,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V16-DAT-05,Cross,0021,Cross,Cross,T-V16-DAT-05,Source revision impact index,impact design,affected prediction/decision 추적,Data Architect,DBA/Quant,3,AEG-V16-036,G1-B,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-038,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V16-DAT-06,Cross,0021,Cross,Cross,T-V16-DAT-06,valid-time overlap tests,DB tests,Fee/Tax/FX overlap 0,Data Architect,DBA/Quant,4,AEG-V16-037,G1-B,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-039,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V16-DAT-07,Cross,0021,Cross,Cross,T-V16-DAT-07,CA/상폐/총수익 Golden,Golden dataset,가격/수량/현금 대사,Data Architect,DBA/Quant,5,AEG-V16-038,G1-B,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-040,S2,W5-6,VS-03,MarketData,Data/DB,DAT,REQ-V16-DAT-08,Cross,0021,Cross,Cross,T-V16-DAT-08,0021 migration 4시나리오,DbUp rehearsal,fresh/upgrade/rerun/failure,Data Architect,DBA/Quant,6,AEG-V16-039,G1-B,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-041,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V16-SCH-01,Cross,0021,J41/J42,Cross,T-V16-SCH-01,Lease fencing domain,ModelOperationLease.cs,stale token 거부,BE/SRE,DBA/QA,4,AEG-V16-040,G3,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-042,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V16-SCH-02,Cross,0021,J41/J42,Cross,T-V16-SCH-02,Schedule lease table,0021 model_operation_lease,operation/scope 단일 lease,BE/SRE,DBA/QA,5,AEG-V16-041,G3,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-043,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V16-SCH-03,Cross,0021,J41/J42,Cross,T-V16-SCH-03,Heartbeat/expiry policy,lease contract,stuck/expired 구분,BE/SRE,DBA/QA,6,AEG-V16-042,G3,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-044,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V16-SCH-04,Cross,0021,J41/J42,Cross,T-V16-SCH-04,J41 registry,ModelOperationRegistry,EvaluationOnly,BE/SRE,DBA/QA,7,AEG-V16-043,G3,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-045,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V16-SCH-05,Cross,0021,J41/J42,Cross,T-V16-SCH-05,J41 disabled schedule,0021 schedule,기본 false,BE/SRE,DBA/QA,3,AEG-V16-044,G3,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-046,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V16-SCH-06,Cross,0021,J41/J42,Cross,T-V16-SCH-06,Dispatcher CAS/fencing 적용,dispatcher backlog,stale worker advance 0,BE/SRE,DBA/QA,4,AEG-V16-045,G3,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-047,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V16-SCH-07,Cross,0021,J41/J42,Cross,T-V16-SCH-07,Lease chaos tests,xUnit/Postgres plan,crash/transfer/duplicate,BE/SRE,DBA/QA,5,AEG-V16-046,G3,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-048,S8,W17-18,VS-18,BacktestingEvaluation,Scheduler,SCH,REQ-V16-SCH-08,Cross,0021,J41/J42,Cross,T-V16-SCH-08,Lease OTel/alert/runbook,operations evidence,lag/overlap/stale token,BE/SRE,DBA/QA,6,AEG-V16-047,G3,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-049,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation,EVA,REQ-V16-EVA-01,Cross,0021,J41/J42,Cross,T-V16-EVA-01,J42 reconciliation planner,EvaluationReconciliationPlanner.cs,6개 window 완전성,Quant Lead,Data/QA,4,AEG-V16-048,G4,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-050,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation,EVA,REQ-V16-EVA-02,Cross,0021,J41/J42,Cross,T-V16-EVA-02,J42 registry,ModelOperationRegistry,EvaluationOnly,Quant Lead,Data/QA,5,AEG-V16-049,G4,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-051,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation,EVA,REQ-V16-EVA-03,Cross,0021,J41/J42,Cross,T-V16-EVA-03,J42 disabled schedule,0021 schedule,기본 false,Quant Lead,Data/QA,6,AEG-V16-050,G4,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-052,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation,EVA,REQ-V16-EVA-04,Cross,0021,J41/J42,Cross,T-V16-EVA-04,Missing window 계획,reconciliation action,PLAN_MISSING,Quant Lead,Data/QA,7,AEG-V16-051,G4,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-053,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation,EVA,REQ-V16-EVA-05,Cross,0021,J41/J42,Cross,T-V16-EVA-05,Duplicate quarantine,reconciliation action,QUARANTINE_DUPLICATE,Quant Lead,Data/QA,3,AEG-V16-052,G4,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-054,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation,EVA,REQ-V16-EVA-06,Cross,0021,J41/J42,Cross,T-V16-EVA-06,Late maturity hold,reconciliation action,BUSINESS_HOLD_LATE,Quant Lead,Data/QA,4,AEG-V16-053,G4,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-055,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation,EVA,REQ-V16-EVA-07,Cross,0021,J41/J42,Cross,T-V16-EVA-07,Source revision recalculation,reconciliation action,RECALCULATE_REVISION,Quant Lead,Data/QA,5,AEG-V16-054,G4,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-056,S8,W17-18,VS-18,BacktestingEvaluation,Evaluation,EVA,REQ-V16-EVA-08,Cross,0021,J41/J42,Cross,T-V16-EVA-08,Metric/Cohort version evidence,evaluation pack,동일 정의 결과 재현,Quant Lead,Data/QA,6,AEG-V16-055,G4,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-057,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V16-ALG-01,Cross,Cross,Cross,Cross,T-V16-ALG-01,Sell Evidence Guard,SellDecisionEvidenceGuard.cs,Evidence/VersionSet 누락 차단,Quant Lead,BE/QA,4,AEG-V16-056,G2-A,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-058,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V16-ALG-02,Cross,Cross,Cross,Cross,T-V16-ALG-02,Look-ahead guard,guard tests,PublishedAtCutoff>AsOf 차단,Quant Lead,BE/QA,5,AEG-V16-057,G2-A,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-059,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V16-ALG-03,Cross,Cross,Cross,Cross,T-V16-ALG-03,Lot ratio unit guard,guard tests,0..1 단위 혼용 0,Quant Lead,BE/QA,6,AEG-V16-058,G2-A,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-060,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V16-ALG-04,Cross,Cross,Cross,Cross,T-V16-ALG-04,Portfolio weight guard,guard tests,0..1 단위 혼용 0,Quant Lead,BE/QA,7,AEG-V16-059,G2-A,SOURCE+V16_DELTA,P0,PLANNED +AEG-V16-061,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V16-ALG-05,Cross,Cross,Cross,Cross,T-V16-ALG-05,Target weight monotonic guard,guard tests,sell이 비중 증가 0,Quant Lead,BE/QA,3,AEG-V16-060,G2-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-062,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V16-ALG-06,Cross,Cross,Cross,Cross,T-V16-ALG-06,Policy priority Golden,SellPolicyChain tests,impairment/survival 상쇄 0,Quant Lead,BE/QA,4,AEG-V16-061,G2-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-063,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V16-ALG-07,Cross,Cross,Cross,Cross,T-V16-ALG-07,Reentry session Golden,Reentry tests,10/126 session·stage 중복 0,Quant Lead,BE/QA,5,AEG-V16-062,G2-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-064,S4,W9-10,VS-10,SignalEngine,Algorithm,ALG,REQ-V16-ALG-08,Cross,Cross,Cross,Cross,T-V16-ALG-08,Cost2x/PBO/DSR evidence,model pack,선택편향/과최적화 통제,Quant Lead,BE/QA,6,AEG-V16-063,G2-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-065,S14,W29-30,Cross,Cross-cutting,QA,QAS,REQ-V16-QAS-01,Cross,Cross,Cross,Cross,T-V16-QAS-01,validate_v16 정적검증,tools/validate_v16.py,JSON/CSV/source/contract PASS,QA Lead,FE/BE/Data,4,AEG-V16-064,G6-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-066,S14,W29-30,Cross,Cross-cutting,QA,QAS,REQ-V16-QAS-02,Cross,Cross,Cross,Cross,T-V16-QAS-02,Adapter v4 Vitest,adapterCompatibility.spec.ts,complete/missing capability,QA Lead,FE/BE/Data,5,AEG-V16-065,G6-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-067,S14,W29-30,Cross,Cross-cutting,QA,QAS,REQ-V16-QAS-03,Cross,Cross,Cross,Cross,T-V16-QAS-03,CRUD conflict/idempotency test,Vitest plan,409/412·double submit,QA Lead,FE/BE/Data,6,AEG-V16-066,G6-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-068,S14,W29-30,Cross,Cross-cutting,QA,QAS,REQ-V16-QAS-04,Cross,Cross,Cross,Cross,T-V16-QAS-04,Lease unit tests,ModelOperationLeaseTests,stale token/transfer,QA Lead,FE/BE/Data,7,AEG-V16-067,G6-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-069,S14,W29-30,Cross,Cross-cutting,QA,QAS,REQ-V16-QAS-05,Cross,Cross,Cross,Cross,T-V16-QAS-05,Evaluation reconciliation tests,PlannerTests,missing/duplicate/revision,QA Lead,FE/BE/Data,3,AEG-V16-068,G6-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-070,S14,W29-30,Cross,Cross-cutting,QA,QAS,REQ-V16-QAS-06,Cross,Cross,Cross,Cross,T-V16-QAS-06,Sell Evidence Guard tests,GuardTests,lookahead/unit,QA Lead,FE/BE/Data,4,AEG-V16-069,G6-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-071,S14,W29-30,Cross,Cross-cutting,QA,QAS,REQ-V16-QAS-07,Cross,Cross,Cross,Cross,T-V16-QAS-07,Playwright T01/T05/T08/T10,E2E plan,고객/승인/배치/거버넌스,QA Lead,FE/BE/Data,5,AEG-V16-070,G6-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-072,S14,W29-30,Cross,Cross-cutting,QA,QAS,REQ-V16-QAS-08,Cross,Cross,Cross,Cross,T-V16-QAS-08,Release regression matrix,Release Evidence,실행명령·artifact hash,QA Lead,FE/BE/Data,6,AEG-V16-071,G6-A,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-073,S13,W27-28,VS-25,GovernanceAudit,Ops/Security,OPS,REQ-V16-OPS-01,Cross,Cross,J41/J42,Cross,T-V16-OPS-01,J41/J42 OTel spans,trace contract,scheduledFor/token/window correlation,SRE Lead,Security/DBA,4,AEG-V16-072,G5,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-074,S13,W27-28,VS-25,GovernanceAudit,Ops/Security,OPS,REQ-V16-OPS-02,Cross,Cross,J41/J42,Cross,T-V16-OPS-02,Lease/evaluation metrics,metric catalogue,overlap/stale/missing/late,SRE Lead,Security/DBA,5,AEG-V16-073,G5,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-075,S13,W27-28,VS-25,GovernanceAudit,Ops/Security,OPS,REQ-V16-OPS-03,Cross,Cross,J41/J42,Cross,T-V16-OPS-03,Telegram PII redaction,security tests,PII/secret/internal score 0,SRE Lead,Security/DBA,6,AEG-V16-074,G5,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-076,S13,W27-28,VS-25,GovernanceAudit,Ops/Security,OPS,REQ-V16-OPS-04,Cross,Cross,J41/J42,Cross,T-V16-OPS-04,Kill-switch drill,runbook evidence,evaluation/recommendation/publish 차단,SRE Lead,Security/DBA,7,AEG-V16-075,G5,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-077,S13,W27-28,VS-25,GovernanceAudit,Ops/Security,OPS,REQ-V16-OPS-05,Cross,Cross,J41/J42,Cross,T-V16-OPS-05,Backup/restore/projection rebuild,DR evidence,RPO/RTO·before/after hash,SRE Lead,Security/DBA,3,AEG-V16-076,G5,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-078,S13,W27-28,VS-25,GovernanceAudit,Ops/Security,OPS,REQ-V16-OPS-06,Cross,Cross,J41/J42,Cross,T-V16-OPS-06,SBOM/license/vuln Gate,supply chain report,critical 0/allowlist,SRE Lead,Security/DBA,4,AEG-V16-077,G5,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-079,S13,W27-28,VS-25,GovernanceAudit,Ops/Security,OPS,REQ-V16-OPS-07,Cross,Cross,J41/J42,Cross,T-V16-OPS-07,Capacity/soak assumptions,capacity report,portfolio/security/job volume,SRE Lead,Security/DBA,5,AEG-V16-078,G5,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-080,S13,W27-28,VS-25,GovernanceAudit,Ops/Security,OPS,REQ-V16-OPS-08,Cross,Cross,J41/J42,Cross,T-V16-OPS-08,Incident→debt→WBS closure,operations rhythm,재발방지 owner/exit evidence,SRE Lead,Security/DBA,6,AEG-V16-079,G5,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-081,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V16-PKG-01,Cross,Cross,Cross,Cross,T-V16-PKG-01,v16 제안서,DOCX,render/a11y pass,Release Manager,PM/QA,4,AEG-V16-080,G6,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-082,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V16-PKG-02,Cross,Cross,Cross,Cross,T-V16-PKG-02,v16 docs/CSV,docs/v16_0,counts/schema valid,Release Manager,PM/QA,5,AEG-V16-081,G6,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-083,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V16-PKG-03,Cross,Cross,Cross,Cross,T-V16-PKG-03,Source Coverage/Index,coverage files,원본 SHA match,Release Manager,PM/QA,6,AEG-V16-082,G6,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-084,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V16-PKG-04,Cross,Cross,Cross,Cross,T-V16-PKG-04,Core package,Core_NoLegacy.zip,nested ZIP 0,Release Manager,PM/QA,7,AEG-V16-083,G6,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-085,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V16-PKG-05,Cross,Cross,Cross,Cross,T-V16-PKG-05,Full package,Full_With_Attachments.zip,v15 Core ZIP 1회,Release Manager,PM/QA,3,AEG-V16-084,G6,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-086,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V16-PKG-06,Cross,Cross,Cross,Cross,T-V16-PKG-06,Manifest/SHA256,PACKAGE_MANIFEST/SHA256SUMS,전 파일 hash,Release Manager,PM/QA,4,AEG-V16-085,G6,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-087,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V16-PKG-07,Cross,Cross,Cross,Cross,T-V16-PKG-07,ZIP CRC/recursive scan,PACKAGE_QA,testzip null·self include 0,Release Manager,PM/QA,5,AEG-V16-086,G6,SOURCE+V16_DELTA,P1,PLANNED +AEG-V16-088,S15,W31-32,Cross,Cross-cutting,Packaging/Docs,PKG,REQ-V16-PKG-08,Cross,Cross,Cross,Cross,T-V16-PKG-08,Distribution README,DISTRIBUTION_README,검증 진실성·실행 순서,Release Manager,PM/QA,6,AEG-V16-087,G6,SOURCE+V16_DELTA,P1,PLANNED diff --git a/docs/v16_0/DECISION_LOG.csv b/docs/v16_0/DECISION_LOG.csv new file mode 100644 index 00000000..e2a9e467 --- /dev/null +++ b/docs/v16_0/DECISION_LOG.csv @@ -0,0 +1,97 @@ +Decision_ID,Status,Decision_or_Question,Basis,Owner,Gate,Approved_or_Due +DEC-001,APPROVED,투자자문형→Shadow→Pilot; 자동주문 OFF,v10.0·v12.2,운영사/준법,ALL,2026-08-01 +DEC-002,APPROVED,알고리즘 상태 RESEARCH_CANDIDATE_NOT_PRODUCTION,v10.0·v12.2,투자위/리스크,G4,2026-08-01 +DEC-003,APPROVED,Modular Monolith+Vertical Slice; 조기 microservice 금지,v10.0,Architect,G0,2026-08-01 +DEC-004,APPROVED,PIT/revision/hash/lineage와 immutable Evidence 우선,v10.0·v12.2,Data/Quant,G1,2026-08-01 +DEC-005,APPROVED,매도 우선순위: impairment→survival→floor→concentration→opportunity→reentry,v12.2,투자위/Quant,G2,2026-08-01 +DEC-006,APPROVED,SellRatioOfLot와 portfolio weight/core floor 단위 분리,v12.0 Delta,Quant/Architect,G2-A,2026-08-02 +DEC-007,DECISION_REQUIRED,생산 OIDC/JWT 공급자와 claims mapping,자료 미지원,Security/PM,G5,미정 +DEC-008,DECISION_REQUIRED,PIT 총수익·상폐·컨센서스 공급원/라이선스,자료 미지원,Data Governance/Legal,G1,미정 +DEC-009,DECISION_REQUIRED,계좌·시장·venue별 Fee/Tax/FX schedule,자료 미지원,Ops/Tax/Quant,G1,미정 +DEC-010,DECISION_REQUIRED,SLO/RPO/RTO와 운영 용량 기준,자료 미지원,SRE/PM,G5,미정 +DEC-011,DECISION_REQUIRED,고객/계좌/상품 규모와 성능 테스트 볼륨,자료 미지원,PM/SRE,G6-A,미정 +DEC-012,DECISION_REQUIRED,한국 최신 PIT 데이터 확보 범위와 재검증 일정,자료 미지원,Quant/Data,G4,미정 +DEC-013,APPROVED,Lot-relative sell ratio uses CurrentLotPortfolioWeight; target security weight subtracts LotWeight×Ratio,v10/v12.1 unit-separation intent and data-consistency correction,Quant/Architect,G2-A,2026-08-02 +DEC-014,APPROVED,Ordered policy trace is immutable internal decision evidence; customer view receives curated explanation,Explainability and audit delta,Quant/Compliance/Architect,G2-A/G3,2026-08-02 +DEC-015,APPROVED,v12.2 preserves all six current-session attachments byte-for-byte and treats v12.1 as baseline,Non-regression source control,PM/Architect,G0,2026-08-02 +DEC-016,DECISION_REQUIRED,Select production OpenAPI client generation tool and ownership,Toolchain/network approval required,BE/FE/DevOps,G3,Before S11 +DEC-017,DECISION_REQUIRED,Approve .NET/PostgreSQL/pnpm runner image digests,Real build and migration evidence prerequisite,DevOps/Security,G0,Before coding start +DEC-063,DECISION_REQUIRED,자본바닥/생존 매도가 same-direction cooldown을 우회하는가,v10 우선순위는 명확하나 cooldown 예외는 첨부 근거에 명시되지 않음,투자위/리스크/Quant,G2,Before VS-10 production path +DEC-064,DECISION_REQUIRED,Hard impairment 80~100%를 어떤 증거등급/심각도로 매핑하는가,v10 범위는 80~100%; 현재 구현은 보수적으로 100%,투자위/준법/Quant,G2,Before policy parameter change +DEC-065,APPROVED,v12.2 이전 ambiguous weight context는 추정 사용하지 않고 semantics v2로 재구축한다,PIT·재현성·DECISION_REQUIRED fail-closed 원칙,Data Architect/Quant/Architect,G2-A,2026-08-02 +DEC-066,APPROVED,정책·이벤트·성과지표 계약은 버전과 hash를 가진 machine-readable artifact로 관리한다,"DOC-NR-05/06, v12.1 TD-021/032",Architect/Quant/Risk,G2/G3,2026-08-02 +DEC-022,APPROVED,스케줄러 자동화는 EVALUATION_ONLY/PROPOSAL_ONLY/DRILL_ONLY로 제한,v10 자동주문 OFF·v12.1 연구후보 경계,Risk/Architect,ALL,2026-08-02 +DEC-023,APPROVED,모델·정책·임계값 자동 승격/변경/롤백 금지; human maker-checker 필수,모델 거버넌스와 독립검증 Gate,InvestmentCommittee/Compliance,G4/G5,2026-08-02 +DEC-024,APPROVED,15분 Dispatcher + DB schedule/lease + dynamic queue 패턴,시장별 job 난립과 DST hard-code 방지,Architect/SRE,G3,2026-08-02 +DEC-025,APPROVED,모델 평가 요청 시 승인 Dataset/Model/Config/Code/Contract VersionSet 동결,재현성·이력성·PIT 원칙,Data/Quant,G3,2026-08-02 +DEC-026,APPROVED,성과지표는 분자/분모/평가창/집계/비용을 버전 계약으로 관리,63일 연구 통계와 연간 목표 혼용 방지,Quant/Risk,G4,2026-08-02 +DEC-027,APPROVED,일/주/월/분기 평가와 revision-trigger replay를 분리,운영 부하와 증거 적시성 균형,Quant/SRE,G3/G4,2026-08-02 +DEC-028,APPROVED,J21은 개선 제안만 생성하며 코드·모델·설정 파일을 수정하지 않음,바이브코딩·홀루시네이션·과최적화 통제,Architect/Quant,G4,2026-08-02 +DEC-029,APPROVED,"J10/J11/J17 일, J18/J24 주, J19/J21/J22 월, J20/J23 분기 기본 cadence",v10 J10/J11 및 유지보수 운영리듬 계승,Risk/Ops,G3/G5,2026-08-02 +DEC-030,DECISION_REQUIRED,평가 evidence retention/partition/archive/legal hold 기간,첨부 근거에 구체 보존기간 없음,Compliance/DBA,G5/G6-A,G5 전 +DEC-031,DECISION_REQUIRED,Data/Feature/Prediction/Calibration drift metric·sample·threshold,첨부 근거는 drift 필요성만 제시하고 수치 계약 미제공,Quant/Risk,G4,J17 구현 전 +DEC-032,DECISION_REQUIRED,False-exit adverse-regret의 정확한 가격·benchmark·window 정의,첨부의 연 2% 목표와 연구 CSV를 직접 동일시할 수 없음,InvestmentCommittee/Quant,G4,J10 생산화 전 +DEC-033,APPROVED,"ModelOperations Dispatcher 기본 OFF, ShadowEvaluation과 별도 승인 필요",v10 안전경계+v12.5,Architect/Security,G0,2026-08-02 +DEC-034,APPROVED,"J10~J30은 평가·제안·훈련만 허용, 모델/주문 자동변경 금지",v12.4+v12.5,Risk/Compliance,ALL,2026-08-02 +DEC-035,APPROVED,v12.4 원본 ZIP을 immutable baseline으로 보존하고 current attachment를 직접 보존,비회귀,PM/QA,G0,2026-08-02 +DEC-036,DECISION_REQUIRED,생산 OIDC/JWT provider와 claims/key rotation,첨부 미결,Security/PM,G5,D+10 +DEC-037,DECISION_REQUIRED,총수익·상폐·컨센서스 source/license/SLA,첨부 미결,Data Governance/Legal,G1,D+10 +DEC-038,DECISION_REQUIRED,KRX/NYSE/NASDAQ market calendar source와 운영 owner,v12.4 TD-042,Data/Ops,G1,D+10 +DEC-039,DECISION_REQUIRED,Fee/Tax/FX account/venue/asset schedule,첨부 미결,Ops/Tax/Quant,G1,D+10 +DEC-040,DECISION_REQUIRED,false-exit/reentry metric denominator/window,metric governance,Risk/Quant,G4,D+30 +DEC-041,DECISION_REQUIRED,SLO/RPO/RTO와 volume assumptions,운영 미결,SRE/PM,G5,D+20 +DEC-042,APPROVED,288 baseline WBS 보존+48 execution assurance Delta,v12.5,PM/Architect,G0,2026-08-02 +DEC-043,APPROVED,직접 runtime evidence 없는 상태를 IMPLEMENTATION_TEMPLATE로 표시,신뢰성,QA/Compliance,ALL,2026-08-02 +DEC-044,DECISION_REQUIRED,투자일임형 검토 개시 시점과 독립승인 체계,252일 Shadow 이후,운영사/법무/준법,G6,Shadow+252 +DEC-045,APPROVED,Feature는 UI vendor를 직접 import하지 않고 adapter port만 사용,v10 Ch42 + v13 design,Architect/FE,G0,2026-08-02 +DEC-046,APPROVED,T01~T10을 표준 CRUD/업무화면 타입으로 사용,v10 Ch41 + v13 delta,UX/FE/QA,MVP-A,2026-08-02 +DEC-047,APPROVED,J31~J38은 evidence/proposal only이며 기본 OFF,v10/v12.5 automation boundary,Risk/Ops,ALL,2026-08-02 +DEC-048,APPROVED,모델 개선은 가설→Challenger 계획→독립검증→maker-checker 순서,model governance,Investment Committee/Risk,G4,2026-08-02 +DEC-049,DECISION_REQUIRED,승인된 PrimeVue theme와 디자인 토큰 시각 기준,runtime visual evidence missing,UX/Brand/FE,G0,D6 +DEC-050,DECISION_REQUIRED,OpenAPI→TypeScript/Zod 생성 도구와 버전 정책,tool not selected,BE/FE Architect,G3,S2 +DEC-051,DECISION_REQUIRED,Visual regression 승인 브라우저·viewport·허용차,runtime environment missing,QA/UX,MVP-B,S6 +DEC-052,DECISION_REQUIRED,모델 개선가설 보존기간·법무/준법 열람 범위,retention policy missing,Compliance/Risk,G4,S10 +DEC-053,APPROVED,UI Adapter contractVersion 2.0과 10 capability를 표준으로 사용,v14 Delta,FE Architect,G0,2026-08-02 +DEC-054,APPROVED,"PrimeVue+AG Grid는 생산 후보, Native는 교체 검증용 reference만",과유불급·교체가능성,FE/UX,G3,2026-08-02 +DEC-055,APPROVED,Feature의 PrimeVue/AG Grid 직접 import 금지,DIP·기술부채 통제,Architect,G0,2026-08-02 +DEC-056,APPROVED,T01~T10 화면 ID와 v2 컴포넌트를 안정 계약으로 관리,표준화·재현성,UX/FE,MVP-B,2026-08-02 +DEC-057,APPROVED,지속 모델 루프는 평가·제안까지만 자동화하고 activation은 수동 change approval,고객보호·모델리스크,Risk/Compliance,G4,2026-08-02 +DEC-058,APPROVED,J39 FeedbackCycleIntegrityAudit는 기본 disabled,fail-closed,SRE/Risk,G4,2026-08-02 +DEC-059,APPROVED,Feedback transition·activation decision은 append-only evidence로 보존,감사·이력성,DBA/Compliance,G4,2026-08-02 +DEC-060,APPROVED,과거 생성 ZIP은 Core에 포함하지 않고 Full 패키지의 원본 첨부에만 포함,재귀 ZIP 방지,PM/DevOps,G0,2026-08-02 +DEC-061,DECISION_REQUIRED,UI 접근성 자동화 도구와 visual regression 저장소 선택,v14 잔여 위험,UX/QA,G3,D10 +DEC-062,APPROVED,실행하지 않은 .NET/pnpm/PostgreSQL 검증은 PASS로 표기하지 않음,홀루시네이션 통제,QA/Architect,ALL,2026-08-02 +DEC-067,APPROVED,UI Adapter contract 3.0은 14개 정규화 capability를 사용하고 Feature vendor import를 금지,v10 화면계약+v14 delta,Architect/FE,G0,2026-08-02 +DEC-068,APPROVED,Native provider는 계약 검증용 reference이며 생산 적격으로 간주하지 않음,과유불급,Architect/QA,G0,2026-08-02 +DEC-069,APPROVED,"Server state=TanStack Query, form=vee-validate/Zod, URL=vue-router, Pinia는 session/UI preference만",v12.1 FE 기준,FE Lead,MVP-A,2026-08-02 +DEC-070,APPROVED,CRUD 화면은 Idempotency-Key·If-Match·ProblemDetails·asOf/projection metadata를 표준 계약으로 사용,v10 화면/API 기준,BE/FE,G3,2026-08-02 +DEC-071,APPROVED,Schedule 다음 시각은 dispatch 시각이 아니라 scheduledFor anchor에서 계산,재현성·drift 방지,BE/SRE,G3,2026-08-02 +DEC-072,APPROVED,"장애 catch-up 기본은 LATEST_ONLY, 무제한 replay 금지",운영 안정성,SRE/Quant,G3,2026-08-02 +DEC-073,APPROVED,평가창은 1/5/20/63/126/252 거래세션이며 calendar day 사용 금지,v10 일평가,Quant/Data,G4,2026-08-02 +DEC-074,APPROVED,Metric과 Cohort 정의를 version/hash로 동결,KPI drift 방지,Risk/Quant,G4,2026-08-02 +DEC-075,APPROVED,J40은 EvaluationWindowIntegrityAudit이며 기본 disabled,자동화 경계,Compliance/QA,G4,2026-08-02 +DEC-076,APPROVED,BusinessHold는 기술 실패와 분리하고 blind retry하지 않음,v10 배치 기준,Ops/SRE,G3,2026-08-02 +DEC-077,APPROVED,ModelFeedback transition은 시간 단조성과 immutable transition evidence를 보존,재현성·감사,Risk/BE,G4,2026-08-02 +DEC-078,APPROVED,UI provider 교체는 contract/a11y/visual/perf/release evidence 승인 후 수행,교체 안정성,UX/QA,G3,2026-08-02 +DEC-079,DECISION_REQUIRED,생산 시장 Calendar/Timezone source와 휴장 정정 SLA,Source 미확정,Data Governance,G1,D10 +DEC-080,DECISION_REQUIRED,Metric/Cohort 최초 승인 정의와 최소표본,정량 기준 미확정,Quant/Risk,G4,S8 +DEC-081,DECISION_REQUIRED,CRUD 삭제를 soft delete/reversal 중 무엇으로 적용할지 도메인별 결정,업무 규칙 미확정,Product/DBA,MVP-A,S6 +DEC-082,DECISION_REQUIRED,PrimeVue/AG Grid Community 사용범위·라이선스 승인,법무 검토 필요,Legal/FE,G5,S10 +DEC-083,DECISION_REQUIRED,Scheduler enqueue/mark 원자성 구현을 dispatch outbox로 승격할지,구현 선택,Architect/SRE,G3,S3 +DEC-084,DECISION_REQUIRED,성능시험 고객/계좌/상품/Job 볼륨,용량 가정 미확정,PM/SRE,G6-A,S12 +DEC-085,APPROVED,v16은 v15 기준선을 리셋하지 않고 Delta만 추가,v10 비회귀,PM/Architect,ALL,2026-08-02 +DEC-086,APPROVED,UI Adapter contract v4와 startup provider 선택,교체가능성/안정성,FE Lead/Architect,G0,2026-08-02 +DEC-087,APPROVED,"Vendor prop 전체 래핑 금지, 최소 업무의미 계약",과유불급,FE Lead/UX,G0,2026-08-02 +DEC-088,APPROVED,ExecutionEnvelope의 PIT cutoff와 server VersionSet 강제,룩어헤드/홀루시네이션 방지,BE/Data,G1,2026-08-02 +DEC-089,APPROVED,Scheduler lease fencing token 도입,중복/유령 worker 방지,SRE/BE,G3,2026-08-02 +DEC-090,APPROVED,J41/J42 기본 disabled·EvaluationOnly,자동변경 금지,Risk/Compliance,ALL,2026-08-02 +DEC-091,APPROVED,J42는 repair plan만 만들고 model/config를 변경하지 않음,업무분장,Risk/Quant,G4,2026-08-02 +DEC-092,APPROVED,"Core에는 과거 ZIP 0, Full에는 직전 v15 Core ZIP 1개",재귀 ZIP 방지,Release Manager,G6,2026-08-02 +DEC-093,DECISION_REQUIRED,Lease 획득/갱신 SQL과 DB clock tolerance,runtime 미실증,SRE/DBA,G3,S3 +DEC-094,DECISION_REQUIRED,J41 alert threshold와 자동 abandon 여부,운영정책 미확정,SRE/Compliance,G3,S8 +DEC-095,DECISION_REQUIRED,J42 late window SLA와 escalation,평가 운영정책,Quant/Ops,G4,S8 +DEC-096,DECISION_REQUIRED,Metric/Cohort 승인 Owner와 version cadence,KPI 정의 거버넌스,Risk/Quant,G4,S8 +DEC-097,DECISION_REQUIRED,Projection별 staleAfter/SLO/Rebuild quota,용량 미확정,BE/Data/SRE,G3,S9 +DEC-098,DECISION_REQUIRED,UI visual regression 기준 해상도/허용차,QA 기준 미확정,UX/QA,G3,S6 +DEC-099,DECISION_REQUIRED,OIDC provider/claims mapping,생산 인증 미확정,Security/PM,G5,S10 +DEC-100,DECISION_REQUIRED,252세션 최신 한국 PIT 데이터 확보 일정,검증 공백,Quant/Data,G4,S11 diff --git a/docs/v16_0/DOCX_A11Y_V16_0.json b/docs/v16_0/DOCX_A11Y_V16_0.json new file mode 100644 index 00000000..38ff0245 --- /dev/null +++ b/docs/v16_0/DOCX_A11Y_V16_0.json @@ -0,0 +1,9 @@ +{ + "file": "/mnt/data/K-ArtSell_Aegis_v16_0_통합고도화_제안서.docx", + "counts": { + "high": 0, + "medium": 0, + "low": 0 + }, + "findings": [] +} diff --git a/docs/v16_0/FE_COMPONENT_CATALOGUE.csv b/docs/v16_0/FE_COMPONENT_CATALOGUE.csv new file mode 100644 index 00000000..cce678aa --- /dev/null +++ b/docs/v16_0/FE_COMPONENT_CATALOGUE.csv @@ -0,0 +1,59 @@ +ID,Component,Layer,Props_or_Type,Events_or_Slots,Accessibility,Required_Tests,Vendor_Boundary +C-001,AppShellLayout,Layout,product/environment/automation boundary,navigation/header/footer,skip-link/landmarks,route/auth E2E,Adapter-neutral +C-002,PageLayout,Layout,title/status/asOf/version,actions/summary/filters/aside/footer,h1/meta landmarks,responsive/state,Adapter-neutral +C-003,ReviewWorkbenchLayout,Layout,queue/detail/decision,slots,named regions/keyboard order,maker-checker E2E,Adapter-neutral +C-004,FormPageLayout,Layout,form/preview,submit,label/focus order,dirty/validation,Adapter-neutral +C-005,DashboardLayout,Layout,kpi/primary/secondary/alerts,slots,table alternative required,no-data/partial,Adapter-neutral +C-010,KsButton,Standard,label/severity/type/loading,click,button semantics,disabled/loading,Button port +C-011,KsTextField,Standard,label/error/help/model,update/blur,label/describedby/invalid,422/a11y,TextField port +C-012,KsSelect,Standard,label/options/error/model,update/blur,label/options/invalid,boundary/a11y,Select port +C-013,KsDataGrid,Standard,rows/columns/loading/selection,rowSelected,grid keyboard contract,large rows/filter,DataGrid port +C-014,KsDialog,Standard,visible/title/modal,update visible,focus trap/vendor contract,escape/modal,Dialog port +C-015,KsStatusTag,Standard,value/severity/iconLabel,-,text+icon not color only,severity matrix,StatusTag port +C-020,StandardStatePanel,Standard,11-state/title/message/trace,retry,aria-busy/status,state matrix,Adapter-neutral +T-01,CrudListPage,ScreenType,T01,slots,list semantics,filter URL/empty/auth,Layout composition +T-02,CrudDetailPage,ScreenType,T02,slots,version/as-of landmarks,published/expired/auth,Layout composition +T-03,CrudFormPage,ScreenType,T03,submit/slots,form error focus,dirty/conflict/idempotency,Layout composition +T-05,CrudReviewPage,ScreenType,T05,queue/detail/decision,keyboard review order,segregation/expiry/conflict,Layout composition +T-08,BatchOperationsPage,ScreenType,T08,timeline/records/reprocess/runbook,progress/status,retry/replay/duplicate,Layout composition +V14-C-001,KsDateField,Standard Component,modelValue/label/min/max/error,update/blur,label-describedby/date keyboard,adapter parity/form,Provider port +V14-C-002,KsNumberField,Standard Component,modelValue/min/max/fraction/error,update/blur,label/error/value semantics,decimal/boundary/form,Provider port +V14-C-003,NativeUiAdapter,Reference Provider,10 capabilities,provider install,HTML native keyboard baseline,contract/browser/a11y,Adapter implementation only +V14-C-004,UiProviderResolver,Bootstrap,VITE_UI_ADAPTER,install,fail-fast unsupported provider,configuration/contract,Composition root only +V14-C-005,SearchListCrudPage,Screen Type,T01,named slots,검색·목록 CRUD landmarks/state,T01 state/E2E,Adapter-neutral +V14-C-006,DetailReadPage,Screen Type,T02,named slots,상세·증거 조회 landmarks/state,T02 state/E2E,Adapter-neutral +V14-C-007,EditFormPage,Screen Type,T03,named slots,등록·편집 Form landmarks/state,T03 state/E2E,Adapter-neutral +V14-C-008,MasterDetailCrudPage,Screen Type,T04,named slots,Master-Detail landmarks/state,T04 state/E2E,Adapter-neutral +V14-C-009,ApprovalWorkbenchPage,Screen Type,T05,named slots,maker-checker 검토 landmarks/state,T05 state/E2E,Adapter-neutral +V14-C-010,StepWizardPage,Screen Type,T06,named slots,단계 Wizard landmarks/state,T06 state/E2E,Adapter-neutral +V14-C-011,ScorecardDashboardPage,Screen Type,T07,named slots,Dashboard/Scorecard landmarks/state,T07 state/E2E,Adapter-neutral +V14-C-012,BatchOperationsPageV2,Screen Type,T08,named slots,Batch/Data Ops landmarks/state,T08 state/E2E,Adapter-neutral +V14-C-013,ReconciliationExceptionPage,Screen Type,T09,named slots,대사·예외 landmarks/state,T09 state/E2E,Adapter-neutral +V14-C-014,VersionGovernancePage,Screen Type,T10,named slots,버전·거버넌스 landmarks/state,T10 state/E2E,Adapter-neutral +C-032,KsMultiSelect,Adapter facade,modelValue/options/label/disabled,update:modelValue,label/multiple selection,contract/a11y,Provider v3 +C-033,KsInlineMessage,Adapter facade,severity/title/message/dismissible,dismiss,alert/status semantics,contract/a11y,Provider v3 +C-034,KsPaginator,Adapter facade,page/pageSize/total/pageSizes,pageChange,nav label/buttons,paging tests,Provider v3 +C-035,KsTabs,Adapter facade,modelValue/items/ariaLabel,update:modelValue/default slot,tablist/tab/tabpanel,keyboard/a11y,Provider v3 +C-036,CrudWorkspaceLayout,Layout,asideWidth/dense,toolbar/aside/actions,task order/landmarks,responsive,Adapter-neutral +C-037,OperationsConsoleLayout,Layout,title/runStatus/watermark/owner,runs/actions/footer,operations context,responsive/E2E,Adapter-neutral +C-038,StandardCrudListPage,Screen facade,rows/columns/page/evidence/state,rowSelected/pageChange/retry,state/grid/pager,Vitest/Playwright,Adapter-neutral +C-039,StandardCrudFormPage,Screen facade,state/dirty/readonly/version,submit/cancel/retry,form/status,Vitest/Playwright,Adapter-neutral +C-040,CrudResourceContract,Contract,query/form/parser/permissions,-,N/A,type/contract,Adapter-neutral +C-041,useCrudListState,Composable,query/selected/dirty,replace/page/search/reset,N/A,unit,Adapter-neutral +C-042,QueryStateBoundary v3,Boundary,13 states/correlation,retry,alert/status/focus,state matrix,Ks facade +C-043,UiAdapterContract v3,Contract,14 capabilities/provider metadata,fail-fast,WCAG target,conformance,Provider boundary +C-044,FieldShell,Standard Component,label/inputId/required/error/help,scoped input slot,label/describedby/alert,Vitest+a11y,No vendor +C-045,KsDataContextHeader,Standard Component,asOf/VersionSet/projection/watermark,header slots,landmark/stale text,Vitest+Playwright,No vendor +C-046,KsCommandBar,Standard Component,actions/ariaLabel,execute,nav/disabled,Vitest+a11y,KsButton only +C-047,UiAdapterCompatibility,Contract,adapter/capabilities/production,report/assert,fail-fast,Vitest,Provider boundary +C-048,CrudResourceDefinition,CRUD Contract,Zod/columns/sensitive/permissions,assert,schema semantics,Vitest,No vendor +C-049,useOptimisticCommand,CRUD Composable,payload/etag,run/conflict,status exposed,Vitest,Axios boundary +C-050,ProjectionHealthBadge,Proposed Component,health/watermark/builtAt,-,text+icon,Vitest,No vendor +C-051,LeaseStatusPanel,Proposed Screen Part,owner/token/heartbeat/expiry,recovery slot,table semantics,Playwright,No vendor +C-052,EvaluationReconciliationPanel,Proposed Screen Part,window/action/reason/version,review slot,status text,Playwright,No vendor +C-053,AdapterDiagnosticsPage,Proposed Page,provider/report/evidence,rerun/export,heading/table,Playwright,Adapter only +C-054,T01 CrudList v2,Screen Contract,CrudResourceDefinition,select/open,keyboard/grid,E2E,Ks components +C-055,T05 Review v2,Screen Contract,maker/checker/evidence,approve/hold/reject,focus/warning,E2E,Ks components +C-056,T08 BatchOps v2,Screen Contract,JobRun/lease/watermark,reprocess/hold,table/alert,E2E,Ks components +C-057,T10 Governance v2,Screen Contract,version/evidence/decision,review/retire,table/dialog,E2E,Ks components +C-058,UiAdapterContract v4,Contract,14 capabilities/8 evidence,fail-fast/report,WCAG target,conformance,Provider boundary diff --git a/docs/v16_0/JOB_CATALOGUE.csv b/docs/v16_0/JOB_CATALOGUE.csv new file mode 100644 index 00000000..872297a4 --- /dev/null +++ b/docs/v16_0/JOB_CATALOGUE.csv @@ -0,0 +1,29 @@ +Job_ID,Name,Cadence,Trigger_or_Precondition,Queue,Automation_Mode,Frozen_Context,Output,Primary_Owner,Secondary,Gate,Failure_Mode,Status +J10,OutcomeEvaluationRun,DAILY,market session closed and total-return data complete,q-evaluation,EVALUATION_ONLY,Dataset/Model/Config/Code/Contract,1/5/20/63/126/252 OutcomeObservation,Quant/Ops,Data/QA,G3,BUSINESS_HOLD on missing PIT/TR,TEMPLATE +J11,DailyScorecardBuild,DAILY,J10 due windows complete,q-evaluation,EVALUATION_ONLY,Metric definition/cohort versions,daily scorecard and alerts,Quant/Ops,Risk/SRE,G3,HOLD on sample/lag/definition mismatch,TEMPLATE +J17,DriftDetectionRun,DAILY,approved baseline and minimum sample available,q-evaluation,EVALUATION_ONLY,baseline manifest/version,data/feature/prediction/calibration drift,Quant/Risk,Data/SRE,G4,HOLD only; no automatic model change,TEMPLATE +J18,ChampionChallengerEvaluation,WEEKLY,same frozen dataset/cost/cohort available,q-evaluation,EVALUATION_ONLY,paired model VersionSets,paired comparison with confidence intervals,Quant/Risk,IndependentValidation/QA,G4,QUARANTINE on cohort mismatch,TEMPLATE +J19,FrozenOosBacktest,MONTHLY,dataset rights/hash/seed/environment manifest approved,q-research,EVALUATION_ONLY,frozen research manifest,walk-forward OOS artifacts,Quant/Data,QA/Risk,G4,FAIL artifact retained,TEMPLATE +J20,RobustnessPboDsrRun,QUARTERLY,complete experiment registry and OOS outputs,q-research,EVALUATION_ONLY,experiment registry/version,PBO/DSR/stability/cost2x report,Quant/Risk,IndependentValidation,G4,HOLD on incomplete attempt ledger,TEMPLATE +J21,ModelImprovementProposalBuild,MONTHLY,scorecard/drift/attribution/debt evidence complete,q-research,PROPOSAL_ONLY,all cited evidence hashes,review-required improvement proposals,Quant Lead,Risk/Architect,G4,no code/config/model mutation,TEMPLATE +J22,PromotionEvidenceReviewBuild,MONTHLY,candidate requests review and all gates calculated,q-control,PROPOSAL_ONLY,promotion-gate v1 evidence bundle,maker-checker review packet,Risk/InvestmentCommittee,Compliance/QA,G4,PENDING/HOLD; no activation,TEMPLATE +J23,ModelRollbackDrill,QUARTERLY,approved champion/fallback manifests and runbook,q-control,DRILL_ONLY,champion/fallback VersionSets,RTO/RPO and restore evidence,SRE/Risk,Module Owner/QA,G5,no real order submission,TEMPLATE +J24,DataRevisionRevalidation,WEEKLY+EVENT,approved revision lineage and impact index,q-backfill,EVALUATION_ONLY,before/after dataset versions,replay impact and correction proposal,Data/Quant,DBA/QA,G3,no overwrite; correction evidence only,TEMPLATE +J25,SourceContractDriftCheck,DAILY,approved source schema/license/SLA snapshot,q-evaluation,EVALUATION_ONLY,Source contract hash/version,schema/license/SLA drift evidence,Data Governance,Adapter Owner/QA,G1,BUSINESS_HOLD on unapproved change,TEMPLATE_DISABLED +J26,MarketCalendarCompletenessCheck,DAILY,approved market calendar and EOD completeness,q-market-data,EVALUATION_ONLY,Calendar/source/version,tradable-session readiness,Data/Ops,Quant/QA,G1,HOLD on holiday/DST/source mismatch,TEMPLATE_DISABLED +J27,EvidenceChainAudit,DAILY,decision/outcome/audit hash chain available,q-control,EVALUATION_ONLY,Evidence VersionSet,missing-link/mutation evidence,Compliance/QA,Data/BE,G3,QUARANTINE on hash mismatch,TEMPLATE_DISABLED +J28,ProjectionFreshnessCheck,DAILY,projection contract and watermark,q-evaluation,EVALUATION_ONLY,Projection version/watermark,staleness/rebuild diff,BE/Data,SRE/QA,G3,HOLD on stale projection,TEMPLATE_DISABLED +J29,CapacitySlaTrend,WEEKLY,approved SLO and volume assumptions,q-control,EVALUATION_ONLY,SLO/capacity version,capacity trend decision packet,SRE/PM,DBA/Module Owner,G5,WARN/HOLD on saturation,TEMPLATE_DISABLED +J30,ReleaseEvidenceAssemble,EVENT_DRIVEN,release candidate artifacts complete,q-control,PROPOSAL_ONLY,Source/build/test/migration/security/rollback hash,review-required release bundle,QA/Release Manager,Compliance/SRE,G6,HOLD on any missing artifact,TEMPLATE_DISABLED +J31,PredictionFreezeRun,DAILY,approved market cutoff before outcomes,q-evaluation,EVALUATION_ONLY,Dataset/Model/Config/Code/Contract,immutable prediction freeze,Quant/Data,QA/Risk,G3,HOLD on PIT/model context,TEMPLATE_DISABLED +J32,OutcomeMaturitySweep,DAILY,market session close and total-return/calendar complete,q-evaluation,EVALUATION_ONLY,Calendar/Dataset/Metric contract,matured 1/5/20/63/126/252 requests,Quant/Ops,Data/QA,G3,HOLD on TR/calendar gap,TEMPLATE_DISABLED +J33,SellReentryAttributionReview,WEEKLY,matured sell/reentry windows,q-evaluation,EVALUATION_ONLY,Metric/cohort/benchmark/cost versions,false-exit/gain/capture/delay evidence,Quant/Risk,Advisor/QA,G4,HOLD on metric definition mismatch,TEMPLATE_DISABLED +J34,CalibrationRegimeReview,WEEKLY,versioned prediction/cohort/regime evidence,q-evaluation,EVALUATION_ONLY,Prediction/Cohort/Regime versions,calibration/coverage/drift/regime report,Quant/Risk,Data/IV,G4,HOLD on insufficient sample,TEMPLATE_DISABLED +J35,ImprovementHypothesisBuild,MONTHLY,scorecard/attribution/drift/debt current,q-research,PROPOSAL_ONLY,Evidence and debt versions,review-required falsifiable hypothesis,Quant Lead,Risk/Architect,G4,NO OUTPUT on incomplete evidence,TEMPLATE_DISABLED +J36,ChallengerExperimentPlan,MONTHLY,approved improvement hypothesis,q-research,PROPOSAL_ONLY,Hypothesis/Experiment registry,review-required challenger plan,Quant Lead,IV/QA,G4,REJECT on unapproved change,TEMPLATE_DISABLED +J37,IndependentValidationPack,QUARTERLY,OOS/PBO/DSR/cost/repro evidence complete,q-control,PROPOSAL_ONLY,All promotion evidence versions,independent validation packet,IndependentValidation,Risk/Compliance,G4,NO-GO on missing evidence,TEMPLATE_DISABLED +J38,ModelPolicyDebtReview,MONTHLY,debt/incident/model register current,q-control,PROPOSAL_ONLY,Debt/Incident/Model versions,prioritized debt decision packet,Risk/Architect,Quant/PM,G5,HOLD on stale register,TEMPLATE_DISABLED +J39,FeedbackCycleIntegrityAudit,DAILY,approved feedback-cycle/aging contracts,q-control,EVALUATION_ONLY,Cycle/transition/evidence hashes,stuck/illegal/evidence-gap report,Compliance/QA,Quant/SRE,G4,HOLD and alert only; no automatic transition,TEMPLATE_DISABLED +J40,EvaluationWindowIntegrityAudit,DAILY,"approved calendar, metric/cohort definitions and prediction windows",q-control,EVALUATION_ONLY,Prediction/Calendar/Metric/Cohort VersionSet,missing/duplicate/late/calendar-drift report,Quant/QA,Data/SRE,G4,BUSINESS_HOLD only; no model mutation,DISABLED_TEMPLATE +J41,SchedulerLeaseIntegrityAudit,DAILY,"approved lease contract, heartbeat and alert runbook",q-control,EVALUATION_ONLY,Schedule/Lease/Dispatch revision,expired/overlap/stale-token report,SRE/QA,BE/DBA,G3,HOLD and alert only; no schedule mutation without approved recovery,DISABLED_TEMPLATE +J42,ModelEvaluationReconciliation,DAILY,"approved calendar, metric/cohort and source revision index",q-evaluation,EVALUATION_ONLY,Prediction/Outcome/Calendar/Metric/Cohort/Revision VersionSet,missing/duplicate/late/recalculation plan,Quant/QA,Data/Risk,G4,BUSINESS_HOLD/QUARANTINE plan only; no model mutation,DISABLED_TEMPLATE diff --git a/docs/v16_0/K-ArtSell_Aegis_v16_0_실행참조구현_표준UI_지속모델평가_통합고도화_제안서.docx b/docs/v16_0/K-ArtSell_Aegis_v16_0_실행참조구현_표준UI_지속모델평가_통합고도화_제안서.docx new file mode 100644 index 00000000..5a050488 Binary files /dev/null and b/docs/v16_0/K-ArtSell_Aegis_v16_0_실행참조구현_표준UI_지속모델평가_통합고도화_제안서.docx differ diff --git a/docs/v16_0/PACKAGE_CONTENTS.csv b/docs/v16_0/PACKAGE_CONTENTS.csv new file mode 100644 index 00000000..8e7d66bb --- /dev/null +++ b/docs/v16_0/PACKAGE_CONTENTS.csv @@ -0,0 +1,5 @@ +Path,Role,Core,Full +"src/,tests/,db/,frontend/,contracts/,tools/",Reference implementation,YES,YES +docs/v16_0/,v16 proposal/WBS/debt/traceability,YES,YES +attachments/current_session/*.docx,current source documents,YES,YES +attachments/source_archives/KArtSell_Aegis_v15_0_Core_NoLegacy(1).zip,prior source archive,NO,YES diff --git a/docs/v16_0/SOURCE_COVERAGE_MATRIX.csv b/docs/v16_0/SOURCE_COVERAGE_MATRIX.csv new file mode 100644 index 00000000..4d3803af --- /dev/null +++ b/docs/v16_0/SOURCE_COVERAGE_MATRIX.csv @@ -0,0 +1,5 @@ +File,Relative_Path,Size,SHA256,Role,Package,Treatment +K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,attachments/current_session/K-ArtSell_퀀트투자자문_SI_본프로그램착수_누적고도화_통합실행기준서_v10.0(1).docx,402134,d86795186ec5f578741d64618eb53278a1c3a55795e73307e5bee245980a83a6,최상위 누적 실행기준서,CORE_AND_FULL,RETAINED_UNMODIFIED +K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx,attachments/current_session/K-ArtSell_Aegis_v12_1_실행준비_통합고도화_제안서(1).docx,64063,eab0c2866b6c3d5d1f2fd8b9fbb33443e010e1adc2cfe612f27a98f97845e8b3,실행준비 통합 제안서,CORE_AND_FULL,RETAINED_UNMODIFIED +K-ArtSell_Aegis_v15_0_통합고도화_제안서.docx,attachments/current_session/K-ArtSell_Aegis_v15_0_통합고도화_제안서.docx,52933,ef7e5746f129ecf14d1bc7d7bd5705fe44ca72251b050769506beb343e28c0a0,직전 통합 고도화 제안서,CORE_AND_FULL,RETAINED_UNMODIFIED +KArtSell_Aegis_v15_0_Core_NoLegacy(1).zip,attachments/source_archives/KArtSell_Aegis_v15_0_Core_NoLegacy(1).zip,4390109,6c88d2442c831fa11d42726951592929caf2b5bd5847e6b42f9ad9ef28ee1b95,직전 Core 구현 기준선,FULL_ONLY,RETAINED_UNMODIFIED diff --git a/docs/v16_0/TECH_DEBT_REGISTER.csv b/docs/v16_0/TECH_DEBT_REGISTER.csv new file mode 100644 index 00000000..7b01f4a3 --- /dev/null +++ b/docs/v16_0/TECH_DEBT_REGISTER.csv @@ -0,0 +1,149 @@ +ID,Priority,Debt,Impact,Remediation,Gate,Owner,Status +TD-001,P0,도구체인 실빌드 미검증,C# 컴파일/패키지 호환 결함 가능,승인 .NET 10 runner에서 restore/build/test,G0,DevOps,OPEN +TD-002,P0,pnpm-lock.yaml 부재,FE 공급망·재현성 미확보,승인 네트워크에서 pnpm install 후 lock review/commit,G0,FE Lead,OPEN +TD-003,P0,PostgreSQL migration rehearsal 미실행,fresh/upgrade/re-run/복구 실패 가능,PostgreSQL 승인 버전 4시나리오 자동화,G0,DBA,OPEN +TD-004,P0,원시 연구 데이터 권리·checksum·환경 lock 미완전,제3자 clean-room 재현 불가,Source catalog/license/raw checksum/container digest 확보,G1,Data Governance,OPEN +TD-005,P0,KR 검증 종료 2021-04-16,최근 시장국면 검증 공백,2026 현재까지 PIT 총수익·상폐·기업행사 보충 후 frozen OOS,G4,Quant/Data,OPEN +TD-006,P0,실제 OIDC/JWT 공급자 미결정,외부 Pilot 접근통제 불가,"Auth ADR, key rotation, claims/RBAC E2E",G5,Security,OPEN +TD-007,P0,총수익·상폐수익·컨센서스 공급계약 미확정,생존편향·성과왜곡,공식/상용 source 계약·SLA·재배포 권리 승인,G1,Data Governance,OPEN +TD-008,P0,Fee/Tax/FX PIT 표 미확정,비용후 기대효용 왜곡,valid_from/to 계좌·venue·상품·side·band schedule,G1,DBA/Quant,OPEN +TD-009,P0,Outbox/Inbox crash/replay 실증 미완료,side effect 누락·중복,lease/dead-letter/replay chaos test,G3,BE/SRE,IN_PROGRESS +TD-010,P1,JobRun·Watermark 표준의 일부 구현만 존재,배치 재처리·감사 불완전,공통 JobRun scope/version/hash/heartbeat 정책 적용,G1,BE/SRE,IN_PROGRESS +TD-011,P1,Architecture test가 정적 문자열 규칙 중심,금지 의존 누락 가능,assembly/namespace/schema/API fitness function 확대,G0,Architect,IN_PROGRESS +TD-012,P1,OpenAPI→FE contract 자동생성 미도입,DTO drift·홀루시네이션 위험,OpenAPI artifact diff + generated client/schema gate,G3,BE/FE,OPEN +TD-013,P1,PII redaction·Telegram 보안 테스트 미완성,고객정보 노출 가능,classification/redaction test와 secret scan,G5,Security/SRE,OPEN +TD-014,P1,Model promotion workflow 미완성,무단 모델 활성화 위험,model card/maker-checker/effective_at/rollback 구현,G4,Risk/BE,OPEN +TD-015,P1,Read Model rebuild runner 미완성,stale projection 복구 불가,projection version/watermark/rebuild/diff 도구,G3,BE/Data,IN_PROGRESS +TD-016,P1,SLO/RPO/RTO 미승인,운영 Go 판단 불가,부하시험·백업복구·DR ADR 승인,G5,SRE/DBA,OPEN +TD-017,P2,공통 UI 컴포넌트 승격 기준 미운영,중복 또는 과도한 추상화,3회 반복+동일 의미/변경축 확인 후 승격,S10,FE Lead,OPEN +TD-018,P1,PBO/DSR 전체 탐색·시도 원장 미완성,과최적화 위험,전체 실험 registry+CSCV/PBO/DSR/block bootstrap,G4,Quant/Risk,OPEN +TD-019,P1,자산유형별 재진입 확인팩터 공급원 미완성,재진입 품질 저하,asset policy contract+PIT source+missing evidence downgrade,G2,Quant/Data,OPEN +TD-020,P0,자동주문/KIS 제출은 금지 상태,오활성화 사고 위험,Options ValidateOnStart+CI config scan+runtime kill switch 유지,ALL,Security/Ops,MITIGATED +TD-021,P1,정책 임계값이 문서·YAML·C#에 중복될 가능성,계약 drift,승인 config registry+schema+hash+generated constants,G2,Quant/BE,OPEN +TD-022,P1,DB immutable trigger와 correction event 운영절차 미실증,정정/감사 장애 가능,maker-checker correction replay와 audit trace E2E,G3,DBA/Compliance,OPEN +TD-023,P2,프런트 서버상태/Pinia 책임 경계의 팀 규율 미검증,중복 캐시·stale UI,lint/review checklist+query key registry,MVP-B,FE Lead,OPEN +TD-024,P1,Dependency vulnerability/license 자동검사 미구성,공급망 리스크,NuGet/npm SBOM·license allowlist·vulnerability gate,G5,Security/DevOps,OPEN +TD-025,P1,성능 규모 가정 미확정,배치 SLA/DB index 과·소설계,portfolio/security/client volume 결정·capacity test,G6-A,PM/SRE,OPEN +TD-026,P0,Security/Lot weight field ambiguity in v12.1,Partial-lot sell could miscalculate target security weight,MIG-0014 + domain/API/FE golden vectors,G2-A,Quant/BE,IN_PROGRESS +TD-027,P1,Only final sell policy reason was persisted,Blocked/not-applicable priority path was not auditable,Persist ordered policy_trace_json and internal trace contract,G2-A,BE/Quant,IN_PROGRESS +TD-028,P0,Current-session attachment set differs from prior package manifest,Source coverage claim can become stale,Rebuild source index from six current attachments and verify SHA,G0,PM/QA,MITIGATED +TD-029,P1,Request execution contract remains endpoint-local,Error/idempotency/correlation behavior can drift,Adopt reviewed request execution template after characterization tests,G0,BE Lead,OPEN +TD-030,P0,Outbox dispatcher runtime implementation is incomplete,Stored events may not publish or may duplicate,Lease/dead-letter/replay implementation and crash tests,G3,BE/SRE,OPEN +TD-031,P0,Inbox result-hash/replay proof is incomplete,Duplicate downstream side effects remain possible,Consumer-specific transaction and crash/replay tests,G3,BE/SRE,OPEN +TD-032,P1,Outcome metric definitions are not fully versioned,Historical false-exit/gain-capture can drift,outcome-metrics.v1 registry added; Quant/Risk approval and DB scorecard binding remain,G3,Quant/Risk,IN_PROGRESS +TD-033,P1,Module and feature scaffolding depended on manual copying,Pattern drift and vibe-coding hallucination,deterministic scaffold_slice.py + reviewed templates + tests,G0,Architect,MITIGATED +TD-034,P0,v12.2 legacy weight backfill could be treated as explicit lot semantics,Historic context may create incorrect partial-lot target weight,MIG-0015 semantics version; reader accepts version 2 only; rebuild required,G2-A,DBA/BE/Quant,MITIGATED +TD-035,P0,Opportunity edge with zero requested ratio was clamped to 10% sell,Missing quantity decision could become unintended sell,Fail closed with OPPORTUNITY_RATIO_NOT_POSITIVE and Golden test,G2-A,BE/Quant,IN_PROGRESS +TD-036,P1,CI referenced v12.1 validator and contained duplicate working-directory key,Latest controls could be skipped and YAML behavior ambiguous,"Use validate_v123, single working-directory, scaffold tests",G0,DevOps/QA,MITIGATED +TD-037,P1,Policy values duplicated between documents and C# magic numbers,Threshold and priority drift,SellPolicyContract + machine-readable registry + static cross-check,G2,Quant/BE,IN_PROGRESS +TD-038,P1,Previous package did not include v12.2 itself as a new source attachment,Cumulative source chain incomplete for next delta,Seven-file source coverage and SHA index,G0,PM/QA,MITIGATED +TD-039,P0,pnpm lockfile still cannot be generated in isolated environment,Frontend dependency resolution is not reproducible,Generate and review pnpm-lock.yaml on approved connected runner; frozen CI only,G0,FE Lead/DevOps,OPEN +TD-040,P0,v12.3 C# and PostgreSQL changes are statically validated only,"Compile, package compatibility and migration runtime defects may remain",Run .NET 10 build/test and PostgreSQL fresh/upgrade/re-run/failure rehearsal,G0,DevOps/DBA/QA,OPEN +TD-041,P0,v12.4 ModelOperations .NET 실빌드 미검증,scheduler/API/DI/SQL compile 또는 runtime 결함 가능,승인 .NET 10 runner에서 restore/build/test와 PostgreSQL integration 실행,G0/G3,DevOps/BE,OPEN +TD-042,P0,시장별 거래일·휴장·DST 기반 due 계산 미구현,평가 시점 지연 또는 잘못된 세션 평가,MarketCalendar 기반 next_due resolver와 KRX/NYSE/NASDAQ Golden calendar,G3,Data/BE,OPEN +TD-043,P0,false-exit 정확한 adverse-regret 정의 미승인,연 2% 목표의 재현성과 비교 가능성 훼손,분자/분모/가격/benchmark/window/결측 정의를 투자위 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-044,P0,승인 Dataset Manifest와 Model Registry 초기 데이터 부재,모든 scheduled request가 BusinessHold,source/license/hash/model card 승인 후 seed를 별도 승인 migration으로 추가,G3,Data Governance/Risk,OPEN +TD-045,P0,J10~J24 실제 계산 consumer는 작업요청 template 수준,스케줄은 요청을 만들지만 성과·drift·OOS artifact 미생성,VS-18/19/20별 evaluator와 Golden/integration 구현,G4,Quant/BE,OPEN +TD-046,P1,drift baseline·metric·threshold 미승인,과민 또는 지연 경보,feature/data/prediction/calibration drift별 sample minimum과 threshold 승인,G4,Quant/Risk,DECISION_REQUIRED +TD-047,P1,Champion/Challenger cohort 할당·동일성 계약 미완료,비교 편향과 승자 선택 오류,동일 PIT dataset/cost/window/cohort matching 및 holdout 정책 승인,G4,Quant/IndependentValidation,OPEN +TD-048,P1,개선 제안 우선순위와 중복 병합 운영 미실증,제안 폭증·기술부채 누락·과유불급,impact/risk/evidence/cost rubric와 월간 triage WIP limit 운영,G4,Quant Lead/Architect,OPEN +TD-049,P0,모델 승격 maker-checker workflow와 실제 IdP claims 미연결,무단 또는 자기승인 가능,OIDC claims/RBAC/SoD E2E와 감사 원장 연결,G5,Security/Risk,OPEN +TD-050,P1,scheduler lease·enqueue crash chaos 미실증,중복/누락 request 또는 stale lease,다중 worker·DB restart·enqueue 전후 crash·clock skew chaos test,G5,SRE/BE,OPEN +TD-051,P1,모델 rollback drill 실증 없음,모델 이상 시 복구시간 불명,"분기 fallback manifest restore와 Capability hold, RTO/RPO 측정",G5,SRE/Risk,OPEN +TD-052,P1,평가 evidence 보존기간·partition·archive 정책 미결정,DB 팽창 또는 감사자료 조기 삭제,"규제/계약 기준 retention, monthly partition, legal hold, archive restore ADR",G5/G6-A,DBA/Compliance,DECISION_REQUIRED +TD-053,P0,ModelOperations dispatcher가 이전 버전에서 무조건 등록,미승인 평가 자동실행,v12.5 기본 OFF+Capability startup guard+등록 제거 test,G0,BE/Security,MITIGATED +TD-054,P0,기존 J10~J24 schedule enabled seed,Dispatcher 활성 시 재승인 없이 실행 가능,"0017에서 모두 disabled, 운영 변경승인으로 개별 enable",G3,Ops/Risk,MITIGATED +TD-055,P0,실제 evaluator handler 미구현,요청만 생성되고 평가 결과 없음,J10~J30 handler contract·integration·artifact 구현,G3,BE/Quant,OPEN +TD-056,P0,Hangfire enqueue와 schedule mark 사이 원자성 공백,중복 background job 또는 lost dispatch,dispatch-intent outbox 또는 reconciliation 설계와 chaos test,G3,BE/SRE,OPEN +TD-057,P0,승인 시장캘린더/DST 미구현,잘못된 session·lookahead·SLA,J26와 MarketCalendar contract/Golden,G1,Data/Quant,OPEN +TD-058,P1,Promotion thresholds C# hardcode,문서/JSON/C# drift,machine-readable registry+generated constants+drift test,G4,Quant/BE,OPEN +TD-059,P1,Metric Definition 승인 workflow 미완성,false-exit/reentry 수치 조작 가능,definition maker-checker/effective/version/hash,G4,Risk/BE,OPEN +TD-060,P1,Operation artifact retention/archive 미정,증거 유실 또는 DB 비대,artifact class별 retention/legal hold/archive policy,G5,Compliance/DBA,OPEN +TD-061,P1,Release Evidence 자동조립 미구현,수동 누락과 허위 Go,J30 bundle과 required artifact gate,G6,QA/Release,OPEN +TD-062,P1,Projection rebuild diff 미구현,stale/read model 오류 복구 불가,J28+rebuild runner+source watermark diff,G3,BE/Data,OPEN +TD-063,P0,총수익·상폐수익·기업행사 Golden 미완성,성과·Lot·원가 왜곡,공식 source와 golden reconciliation,G1,Data/DBA,OPEN +TD-064,P1,PIT 유효구간 충돌 제약 미완성,중복 current/effective record,bitemporal unique/exclusion constraints,G1,DBA/Data,OPEN +TD-065,P1,고객 UX 불확실성·반대증거 검증 미실행,오해·민원·부적합성,사용성/접근성/준법 테스트,G3,UX/Compliance,OPEN +TD-066,P0,OIDC/JWT·PII·Telegram 운영보안 미실증,무단접근·정보유출,Auth E2E+redaction+secret scan,G5,Security/SRE,OPEN +TD-067,P0,SLO/Volume/Queue isolation 미승인,배치 SLA와 DB 과소/과설계,capacity ADR+load/chaos test,G5,SRE/PM,OPEN +TD-068,P1,현재 패키지 직접 첨부와 이전 누적 첨부가 혼재,Source coverage 오해,direct/transitive coverage와 immutable baseline archive 구분,G0,PM/QA,MITIGATED +TD-069,P0,Feature의 UI Vendor 직접 import 가능,교체성·테스트·접근성 계약 붕괴,import boundary architecture rule,G0,FE Architect,IN_PROGRESS +TD-070,P0,표준 화면 상태 Matrix의 화면별 편차,경고·만료·충돌 오표현,StandardStatePanel+T01~T10 tests,MVP-B,UX/QA,IN_PROGRESS +TD-071,P1,PrimeVue/AG Grid 실제 build 미검증,API/type drift 가능,pnpm lock+typecheck+vitest+build,G0,FE Lead,OPEN +TD-072,P1,Visual regression baseline 부재,adapter 교체 시 의미 회귀,Playwright screenshots and approval,MVP-B,QA/UX,OPEN +TD-073,P1,OpenAPI→Zod 자동생성 미완료,DTO drift·홀루시네이션,versioned generated contract gate,G3,BE/FE,OPEN +TD-074,P0,Prediction freeze runtime 미구현,사후정보 혼입·평가 재현성 상실,J31+append-only freeze integration,G3,Quant/BE,OPEN +TD-075,P0,평가창 성숙 calendar 미실증,1/5/20/63/126/252 window 오류,J32 market-calendar Golden,G3,Data/QA,OPEN +TD-076,P1,개선가설 maker-checker UI/API 미구현,자의적 모델 변경 위험,J35 hypothesis workflow E2E,G4,Risk/BE/FE,OPEN +TD-077,P1,Challenger 실험 registry 미완료,선택적 보고·PBO 왜곡,experiment registry and all-attempt ledger,G4,Quant/Risk,OPEN +TD-078,P1,Scaffolder 생성물 실빌드 미검증,템플릿 부패 가능,generated sample in CI restore/build/test,G0,DevEx,OPEN +TD-079,P2,표준 컴포넌트 사용량/Owner registry 부재,죽은 abstraction 축적,component registry/deprecation review,G6-A,FE Architect,OPEN +TD-080,P1,전체 v13 ZIP 대용량,다운로드/무결성 실패 가능,single zip test+SHA+optional documented split procedure,G6,Release,OPEN +TD-081,P0,UI adapter v2 실 typecheck 미검증,Vue/PrimeVue prop/event 호환 결함 가능,pnpm frozen typecheck/test/build,G0,FE Lead,OPEN +TD-082,P1,Native adapter는 reference 수준,생산 접근성/성능/브라우저 호환 미보장,productionEligible=false 유지 및 교체 Gate 검증,G3,FE/UX,MITIGATED +TD-083,P1,Date/Number provider parity 미실증,빈값/시간대/소수 정밀도 drift,provider contract+form E2E,G3,FE/QA,OPEN +TD-084,P1,UI visual regression 부재,공급자 교체 시 레이아웃 회귀,상태별 screenshot baseline,G3,QA/UX,OPEN +TD-085,P1,10개 화면 상태 matrix E2E 미완성,오류·권한·만료 화면 누락,Playwright 상태 조합 smoke,G3,QA,OPEN +TD-086,P1,표준 화면 wrapper slot 계약 컴파일 미검증,Vue slot typing 오류 가능,pnpm typecheck 및 component tests,G0,FE,OPEN +TD-087,P1,UI scaffolder 생성 결과 실빌드 미검증,템플릿 코드 결함 가능,temp feature 생성 후 typecheck,G0,DevEx/FE,OPEN +TD-088,P0,Feedback cycle repository 미구현,DB 상태와 domain state 불일치,optimistic repository+transaction+outbox,G4,BE/DBA,OPEN +TD-089,P1,J39 audit handler 미구현,stuck/illegal cycle 탐지 불가,integrity query+artifact+alert,G4,BE/SRE,OPEN +TD-090,P0,Human activation decision application service 미구현,수동 절차가 DB 직접 작업으로 퇴행 가능,maker-checker command/API/runbook,G4,Risk/BE,OPEN +TD-091,P1,가설 evidence 분류 저장 흐름 미구현,UNKNOWN/DECISION_REQUIRED 우회 가능,validation+DB+review E2E,G4,Quant/BE,OPEN +TD-092,P0,0019 migration rehearsal 미실행,배포 실패/trigger/constraint 결함 가능,fresh/upgrade/rerun/failure DB test,G0,DBA,OPEN +TD-093,P0,pnpm-lock.yaml 부재 지속,FE 재현성과 공급망 Gate 차단,승인 네트워크에서 lock 생성·검토,G0,FE/DevOps,OPEN +TD-094,P1,OpenAPI→FE 생성 계약 미구현,DTO/Zod drift,artifact diff+generated schema,G3,BE/FE,OPEN +TD-095,P1,접근성 자동화 라이브러리 미결정,a11y 회귀 탐지 부족,axe 또는 승인 대안 ADR,G3,UX/QA,DECISION_REQUIRED +TD-096,P1,AG Grid 사용량/라이선스 검토 미완료,상용기능 오사용 또는 비용 위험,Community/Enterprise 기능 inventory,G5,Legal/FE,OPEN +TD-097,P1,화면/배치 용량 가정 미승인,과·소설계와 SLA 왜곡,고객/계좌/종목/행/동시성 기준 승인,G6-A,PM/SRE,OPEN +TD-098,P0,모델 metric definition 원장 미완전,평가 KPI 분모·창 drift,approved versioned metric definitions,G4,Quant/Risk,OPEN +TD-099,P0,시장 캘린더·시간대 공급계약 미확정,평가창/재진입/배치 오류,시장별 calendar source와 DST golden,G1,Data/Quant,OPEN +TD-100,P1,과거 ZIP 중첩에 의한 크기 증가 위험,배포·다운로드 비효율,Core/Full 분리 및 output exclusion manifest,G0,DevOps/PM,MITIGATED +TD-101,P0,UI Adapter v3 runtime typecheck 미검증,vendor/event typing 오류 가능,pnpm frozen typecheck+Vitest contract,G0,FE Lead,OPEN +TD-102,P0,pnpm-lock.yaml 미생성,FE 공급망 재현성 없음,승인 네트워크에서 lock 생성·review·commit,G0,FE Lead,OPEN +TD-103,P0,.NET 10 실빌드 미검증,C# 계약 변경 컴파일 불확실,승인 runner restore/build/test,G0,DevOps,OPEN +TD-104,P0,0020 migration rehearsal 미실행,schedule/window schema 실패 가능,fresh/upgrade/rerun/failure rehearsal,G0,DBA,OPEN +TD-105,P0,시장 Calendar/Timezone 공급계약 미확정,window/reentry 오평가,KRX/NYSE/NASDAQ calendar source 승인,G1,Data Governance,OPEN +TD-106,P0,Scheduler enqueue/mark 원자성 제한,중복 background job 가능,dispatch outbox 또는 persisted command chaos 검증,G3,BE/SRE,OPEN +TD-107,P1,Hangfire CancellationToken 전파 미완성,장기 job 중지 지연,IJobCancellationToken/core CT 표준,G3,BE/SRE,OPEN +TD-108,P0,Metric/Cohort 승인 정의 미등록,KPI drift 가능,definition registry 승인·hash,G4,Quant/Risk,OPEN +TD-109,P0,J40 실제 handler 미구현,window 결함 자동 탐지 불가,handler/read model/alert/runbook,G4,BE/Quant,OPEN +TD-110,P1,UI contract release workflow 미구현,provider 교체 승인 이력 없음,maker-checker UI release service,G3,FE/QA,OPEN +TD-111,P1,AG Grid server-side datasource 미구현,대량목록 성능·정합성 제한,normalized grid query adapter,G3,FE/BE,OPEN +TD-112,P1,CRUD delete/correction 정책 미정,감사/복구 위험,soft delete/reversal 정책 Decision,MVP-A,Product/DBA,OPEN +TD-113,P1,409/412 비교 UX 미완성,사용자 재작업·덮어쓰기 위험,diff/reapply E2E,MVP-B,FE/UX,OPEN +TD-114,P1,Visual regression baseline 부재,Provider 교체 회귀 탐지 불가,T01~T10 screenshot baseline,G3,QA/UX,OPEN +TD-115,P1,수동 접근성 검증 미실행,업무 키보드 흐름 결함 가능,WCAG manual checklist,G5,UX/QA,OPEN +TD-116,P1,ModelFeedbackCycle repository 미구현,상태기계가 메모리 template 수준,optimistic repository+transaction event,G4,BE/DBA,OPEN +TD-117,P1,Evaluation window 영향 인덱스 미구현,revision 재평가 누락,source→evidence→window index,G4,Data/BE,OPEN +TD-118,P1,Scheduler SLO/alert threshold 미승인,운영 판단 불가,lag/hold/stuck SLO 승인,G5,SRE/PM,OPEN +TD-119,P1,PrimeVue/AG Grid 라이선스 검토 미완료,배포 법적 위험,SBOM/license allowlist,G5,Legal/DevOps,OPEN +TD-120,P1,OIDC provider 미결정,Pilot 접근통제 불가,Auth ADR+claims E2E,G5,Security,OPEN +TD-121,P1,PBO/DSR 전체 실험 원장 미구현,과최적화 은폐 가능,experiment registry,G4,Quant/Risk,OPEN +TD-122,P1,총수익·상폐·컨센서스 최신 PIT 공백,성과 왜곡,승인 source와 최근 OOS,G4,Data/Quant,OPEN +TD-123,P1,운영 용량 가정 미확정,DB/index/job 과소·과설계,volume decision+soak,G6-A,PM/SRE,OPEN +TD-124,P1,Core/Full 패키지 CI 자동화 미완성,재귀 ZIP·누락 재발,package policy automated test,G6,Release Manager,OPEN +TD-125,P0,UI Adapter v4 runtime typecheck 미검증,provider 교체 시 FE 실패,pnpm frozen/typecheck/Vitest/build,G0,FE Lead,OPEN +TD-126,P0,pnpm-lock.yaml 부재,재현 가능한 공급망 미확보,승인 네트워크에서 lock 생성·review,G0,FE Lead,OPEN +TD-127,P0,.NET 10 신규 코드 build 미검증,컴파일 오류 가능,restore/build/test,G0,BE Lead,OPEN +TD-128,P0,0021 migration rehearsal 미실행,DB 배포 실패 가능,fresh/upgrade/rerun/failure recovery,G0,DBA,OPEN +TD-129,P0,Lease fencing repository 미구현,stale worker side effect 가능,CAS SQL/transaction/integration tests,G3,BE/SRE,OPEN +TD-130,P0,J41 실제 Handler 미구현,lease 결함 미탐지,audit query/alert/runbook,G3,SRE/QA,OPEN +TD-131,P0,J42 실제 Handler 미구현,평가창 누락 수작업,reconciliation runner/integration,G4,Quant/BE,OPEN +TD-132,P0,시장 Calendar/Total Return 최신 source 미확정,평가시점 왜곡,source/license/SLA 승인,G1,Data Governance,OPEN +TD-133,P1,FieldShell 기존 wrapper 전면 적용 미완성,a11y semantics drift,점진 refactor+contract test,MVP-A,FE Lead,OPEN +TD-134,P1,CRUD Resource v2 실제 업무화면 적용 미완성,템플릿과 실화면 drift,VS-07/14 characterization 후 적용,MVP-B,FE Lead,OPEN +TD-135,P1,UI visual regression baseline 미생성,provider 교체 회귀 미탐지,Playwright screenshot baseline,G3,QA/UX,OPEN +TD-136,P1,Projection rebuild runner 미완성,stale view 복구 불가,request/runner/diff/rollback,G3,BE/Data,OPEN +TD-137,P1,Source revision impact index 미구현,재평가 누락,lineage index and J42 integration,G4,Data/Quant,OPEN +TD-138,P1,Metric/Cohort approval registry 미완성,KPI 정의 drift,maker-checker version registry,G4,Risk/Quant,OPEN +TD-139,P1,Promotion evidence v2 runtime 적용 미완성,자동활성화 경계 약화,activation service guard/E2E,G4,Risk/BE,OPEN +TD-140,P1,Scheduler lease clock skew 정책 미확정,false expiry/overlap,DB time source/clock tolerance ADR,G3,SRE/DBA,OPEN +TD-141,P1,Lease heartbeat capacity test 미수행,DB hotspot 가능,volume/soak/index test,G6-A,SRE/DBA,OPEN +TD-142,P1,Outbox/Inbox와 evaluation side effect 원자성 미실증,누락/중복,chaos/replay test,G3,BE/SRE,OPEN +TD-143,P1,Telegram redaction 신규 metric 미검증,민감정보 노출,classification/redaction tests,G5,Security/SRE,OPEN +TD-144,P1,OpenAPI→FE generated contract 미도입,DTO drift,artifact diff/generated schema,G3,BE/FE,OPEN +TD-145,P1,SBOM/license gate 미실행,공급망 위험,NuGet/npm SBOM allowlist,G5,Security/DevOps,OPEN +TD-146,P1,SLO/RPO/RTO 미승인,운영 Go 판단 불가,load/backup/restore ADR,G5,SRE/DBA,OPEN +TD-147,P1,252세션 Shadow/PBO/DSR 미충족,생산 승격 불가,복수 국면 증거 누적,G4,Quant/Risk,OPEN +TD-148,P1,v16 Core/Full CI 자동생성 미완성,재귀 ZIP 재발,package test automation,G6,Release Manager,OPEN diff --git a/docs/v16_0/TRACEABILITY_MATRIX.csv b/docs/v16_0/TRACEABILITY_MATRIX.csv new file mode 100644 index 00000000..ba8f52a8 --- /dev/null +++ b/docs/v16_0/TRACEABILITY_MATRIX.csv @@ -0,0 +1,122 @@ +Requirement_ID,Slice_ID,Policy_or_Data_ID,API_ID,DB_ID,Job_Event_ID,UI_ID,Test_ID,WBS_Range,Release_Gate,Evidence_Status +REQ-PLAT-001,VS-00,DATA/DOMAIN-CONTRACT,HEALTH-01,MIG-0000/0013,-,UI-PLAT-01,T-ARCH-001,AEG-VS-00-01..AEG-VS-00-07,G0,SOURCE+DESIGN_PROPOSAL +REQ-IAM-001,VS-01,DATA/DOMAIN-CONTRACT,IAM-01/02,MIG-IAM-001,-,UI-IAM-01,T-IAM-001,AEG-VS-01-01..AEG-VS-01-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-SEC-001,VS-02,DATA/DOMAIN-CONTRACT,"SEC-01/02,DAT-01",MIG-SEC-001,J01,UI-SEC-01,T-SEC-001,AEG-VS-02-01..AEG-VS-02-07,G1-A,SOURCE+DESIGN_PROPOSAL +REQ-DAT-001,VS-03,DATA/DOMAIN-CONTRACT,DAT-02/03,MIG-MD-001/002,J02,UI-DQ-01,T-DQ-001,AEG-VS-03-01..AEG-VS-03-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-CA-001,VS-04,DATA/DOMAIN-CONTRACT,DAT-04,MIG-CA-001,J03,UI-DQ-02,T-CA-001,AEG-VS-04-01..AEG-VS-04-07,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-FND-001,VS-05,DATA/DOMAIN-CONTRACT,DAT-05,MIG-FND-001/002,J04,UI-FND-01,T-FND-001,AEG-VS-05-01..AEG-VS-05-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-COST-001,VS-06,DATA/DOMAIN-CONTRACT,COST-01/02,MIG-COST-001,J04C,UI-COST-01,T-COST-001,AEG-VS-06-01..AEG-VS-06-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-CLI-001,VS-07,DATA/DOMAIN-CONTRACT,CLI-01/02/03,MIG-CLI-001,-,UI-CLI-01,T-CLI-001,AEG-VS-07-01..AEG-VS-07-07,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-LED-001,VS-08,DATA/DOMAIN-CONTRACT,POR-01,MIG-LED-001/002,J12L,UI-POR-01,T-LED-001,AEG-VS-08-01..AEG-VS-08-07,G1,SOURCE+DESIGN_PROPOSAL +REQ-EVD-001,VS-09,DATA/DOMAIN-CONTRACT,EVD-01,MIG-EVD-001,J06,UI-EVD-01,T-EVD-001,AEG-VS-09-01..AEG-VS-09-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-SELL-001,VS-10,"ALG-SELL-001~005,ALG-SELL-PORT-001",SIG-SELL-01,MIG-SIG-001,J08S,UI-SELL-01,T-SELL-001,AEG-VS-10-01..AEG-VS-10-07,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-RE-001,VS-11,ALG-REENTRY-001,RE-01/02,MIG-RE-001,J09,UI-RE-01,T-RE-001,AEG-VS-11-01..AEG-VS-11-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-BUY-001,VS-12,ALG-BUY-001,BUY-01,MIG-BUY-001,J08B,UI-BUY-01,T-BUY-001,AEG-VS-12-01..AEG-VS-12-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RISK-001,VS-13,ALG-PORT-001,POR-02,MIG-RISK-001,J07,UI-RISK-01,T-RISK-001,AEG-VS-13-01..AEG-VS-13-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-REC-001,VS-14,DATA/DOMAIN-CONTRACT,SIG-01/02/03,MIG-REC-001/002,J08,UI-REC-01,T-REC-001,AEG-VS-14-01..AEG-VS-14-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-REV-001,VS-15,DATA/DOMAIN-CONTRACT,SIG-04,MIG-REV-001,-,UI-REV-01,T-REV-001,AEG-VS-15-01..AEG-VS-15-07,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-PUB-001,VS-16,DATA/DOMAIN-CONTRACT,SIG-05,MIG-PUB-001,J-PUB,UI-ADV-01,T-PUB-001,AEG-VS-16-01..AEG-VS-16-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-CLD-001,VS-17,DATA/DOMAIN-CONTRACT,SIG-06,MIG-CLD-001,-,UI-CLD-01,T-CLD-001,AEG-VS-17-01..AEG-VS-17-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-EVA-001,VS-18,DATA/DOMAIN-CONTRACT,EVA-01/02,MIG-EVA-001/002,J10/J11,UI-EVA-01,T-EVA-001,AEG-VS-18-01..AEG-VS-18-07,G3,SOURCE+DESIGN_PROPOSAL +REQ-BKT-001,VS-19,DATA/DOMAIN-CONTRACT,BKT-01/02,MIG-BKT-001,J-BKT,UI-BKT-01,T-BKT-001,AEG-VS-19-01..AEG-VS-19-07,G2,SOURCE+DESIGN_PROPOSAL +REQ-MOD-001,VS-20,DATA/DOMAIN-CONTRACT,MOD-01/02,MIG-MOD-001,J-MOD,UI-MOD-01,T-MOD-001,AEG-VS-20-01..AEG-VS-20-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-REB-001,VS-21,DATA/DOMAIN-CONTRACT,REB-01/02,MIG-REB-001,J-REB,UI-REB-01,T-REB-001,AEG-VS-21-01..AEG-VS-21-07,Portfolio-A,SOURCE+DESIGN_PROPOSAL +REQ-RPL-001,VS-22,DATA/DOMAIN-CONTRACT,RPL-01,MIG-RPL-001,J-RPL,UI-RPL-01,T-RPL-001,AEG-VS-22-01..AEG-VS-22-07,Portfolio Gate,SOURCE+DESIGN_PROPOSAL +REQ-RECON-001,VS-23,DATA/DOMAIN-CONTRACT,"EXE-01/02,REC-01/02",MIG-EXE-001/002,J12,UI-RECON-01,T-RECON-001,AEG-VS-23-01..AEG-VS-23-07,Pilot-A,SOURCE+DESIGN_PROPOSAL +REQ-RPT-001,VS-24,DATA/DOMAIN-CONTRACT,RPT-01,MIG-RPT-001,J11R,UI-RPT-01,T-RPT-001,AEG-VS-24-01..AEG-VS-24-07,G4-A,SOURCE+DESIGN_PROPOSAL +REQ-GOV-001,VS-25,DATA/DOMAIN-CONTRACT,GOV-01/02,MIG-GOV-001,J-GOV,UI-GOV-01,T-GOV-001,AEG-VS-25-01..AEG-VS-25-07,G5,SOURCE+DESIGN_PROPOSAL +REQ-SIG-WEIGHT-022,VS-10,ALG-SELL-002~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-LOT-001,AEG22-VS10-001~004,G2-A,SOURCE+INFERENCE +REQ-SIG-TRACE-022,VS-10,ALG-SELL-001~005,SIG-01,MIG-0014,SignalDecisionCreated:v2,UI-SIG-01,T-SIG-TRACE-001,AEG22-VS10-002,G2-A,DESIGN_PROPOSAL +REQ-DAT-LIC-022,VS-03,DQ-01~08,DAT-01,MIG-DAT-001,J02,UI-DAT-01,T-DAT-LIC-022,AEG22-VS03-002,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-REL-022,Cross,DOC-NR-03/06,Cross,Cross,Cross,Cross,T-REL-022,AEG22-X-012,G6,DESIGN_PROPOSAL +REQ-CONTRACT-001,Cross/VS-10/VS-18,sell-policy.v1/outcome-metrics.v1,SIG-01/02,MIG-0015,EVT-SIG-001/J10,UI-SIG-TRACE/UI-EVAL-01,T-CONTRACT-001/T-EVAL-METRIC-001,"AEG-X-034,AEG-VS-10-08..12,AEG-VS-18-08",G2-A/G3,SOURCE+DESIGN_PROPOSAL +REQ-ARCH-SCAFFOLD,Cross,AGENTS/SLICE_SPEC,Cross,Cross,Cross,Cross,T-SCAFFOLD-001,AEG-X-033,G0,DESIGN_PROPOSAL +REQ-SOURCE-123,Cross,DOC-NR-01~08,Cross,Cross,Cross,Cross,T-SOURCE-003,"AEG-X-031,AEG-X-043",G0/G6,SOURCE +REQ-MO-SCHED-001,VS-18/20/25,model-operations.v1,MO-PLAN-01,MIG-0016,Dispatcher/J10~J24,UI-MO-01,"T-MO-004~007,T-MO-029","AEG-MO-001,004~007,029",G3/G5,TEMPLATE +REQ-MO-EVAL-001,VS-18,outcome-metrics.v2,EVAL-01/02/05,MIG-0016,J10/J11,UI-MO-02,"T-MO-EVAL-001/002,T-MO-ATTR-001","AEG-MO-002~003,010~011,016",G3/G4,TEMPLATE +REQ-MO-DRIFT-001,VS-20,drift-contract DEC_REQUIRED,EVAL-03,MIG-0016,J17,UI-MO-03,T-MO-DRIFT-001,AEG-MO-012,G4,DECISION_REQUIRED +REQ-MO-CC-001,VS-20,champion-challenger matched cohort,EVAL-04,MIG-0016,J18,UI-MO-03,T-MO-CC-001,AEG-MO-013,G4,TEMPLATE +REQ-MO-OOS-001,VS-19,Frozen Manifest/OOS,BACKTEST-01,MIG-0016,J19,UI-MO-04,T-MO-OOS-001,AEG-MO-014,G4,TEMPLATE +REQ-MO-ROBUST-001,VS-19/20,PBO/DSR/Cost2x,BACKTEST-02,MIG-0016,J20,UI-MO-04/06,"T-MO-ROBUST-001,T-MO-MNT-002","AEG-MO-015,037",G4,TEMPLATE +REQ-MO-IMPROVE-001,VS-20,ImprovementProposal,GOV-MO-01/02,MIG-0016,J21,UI-MO-05,T-MO-IMP-001/002,"AEG-MO-017~018,034,038",G4/G5,TEMPLATE +REQ-MO-PROMOTE-001,VS-20/25,promotion-gate.v1,GOV-MO-03/04,MIG-0016,J22,UI-MO-06,T-MO-GATE-001/002,AEG-MO-019~020,G4/G5,TEMPLATE +REQ-MO-ROLLBACK-001,VS-25,rollback runbook,ROLLBACK-01,MIG-0016,J23,UI-MO-08,T-MO-ROLLBACK-001,AEG-MO-024,G5,TEMPLATE +REQ-MO-REPLAY-001,VS-23,PIT revision/correction,REPLAY-01/02,MIG-0016,J24,UI-MO-07,T-MO-REPLAY-001/002,AEG-MO-022~023,G3,TEMPLATE +REQ-MO-FE-001,VS-18/20/25,Zod runtime contract,MO-PLAN-01,MIG-0016,J10~J24,UI-MO-01~09,"T-MO-FE-001~003,T-MO-E2E-001","AEG-MO-008~009,021,031",G3/G5,TEMPLATE +REQ-MO-OPS-001,VS-25/Cross,observability/retry/security/capacity,MO-OPS-01~04,MIG-0016,Dispatcher/J10~J24,UI-MO-09,"T-MO-OPS-001/002,T-MO-SEC-001,T-MO-CAP-001,T-MO-CI-001","AEG-MO-025~028,032~035",G5/G6,TEMPLATE +REQ-EXA-001,Cross/VS-18/19/20/25,EXA-CONTRACT-01,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-001,AEG-V12-5-001..AEG-V12-5-004,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-002,Cross/VS-18/19/20/25,EXA-CONTRACT-02,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-002,AEG-V12-5-005..AEG-V12-5-008,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-003,Cross/VS-18/19/20/25,EXA-CONTRACT-03,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-003,AEG-V12-5-009..AEG-V12-5-012,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-004,Cross/VS-18/19/20/25,EXA-CONTRACT-04,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-004,AEG-V12-5-013..AEG-V12-5-016,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-005,Cross/VS-18/19/20/25,EXA-CONTRACT-05,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-005,AEG-V12-5-017..AEG-V12-5-020,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-006,Cross/VS-18/19/20/25,EXA-CONTRACT-06,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-006,AEG-V12-5-021..AEG-V12-5-024,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-007,Cross/VS-18/19/20/25,EXA-CONTRACT-07,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-007,AEG-V12-5-025..AEG-V12-5-028,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-008,Cross/VS-18/19/20/25,EXA-CONTRACT-08,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-008,AEG-V12-5-029..AEG-V12-5-032,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-009,Cross/VS-18/19/20/25,EXA-CONTRACT-09,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-009,AEG-V12-5-033..AEG-V12-5-036,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-010,Cross/VS-18/19/20/25,EXA-CONTRACT-10,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-010,AEG-V12-5-037..AEG-V12-5-040,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-011,Cross/VS-18/19/20/25,EXA-CONTRACT-11,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-011,AEG-V12-5-041..AEG-V12-5-044,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-EXA-012,Cross/VS-18/19/20/25,EXA-CONTRACT-12,OPS-EXA,MIG-0017,J25-J30,UI-EXA,T-EXA-012,AEG-V12-5-045..AEG-V12-5-048,G0/G1/G3/G4/G5/G6,DESIGN_PROPOSAL_RUNTIME_REQUIRED +REQ-FE-ADAPTER,Cross,UI-ADAPTER-v1,Cross,-,-,UI-FOUND-01..11,T-FE-ARCH/ADAPTER/SWAP,"V13-FE-001..010,V13-FE-037",G0/G4-A,SOURCE+DESIGN_PROPOSAL +REQ-FE-SCREEN-TYPES,Cross/VS-07..25,T01..T10,Feature contracts,Read Models,J01..J38,UI-T01..T10,T-FE-T01..T10,V13-FE-011..040,MVP-A..G6,SOURCE+DESIGN_PROPOSAL +REQ-MODEL-FEEDBACK,VS-18/19/20/25,PredictionFreeze/Maturity/Hypothesis,ModelOperations internal,MIG-0018,J31..J38,UI-J31..J38,T-J31..J38,V13-MODEL-001..016,G3..G6-A,SOURCE+DESIGN_PROPOSAL +REQ-SCAFFOLD-13,Cross,PWP/SLICE_SPEC,FastEndpoints template,DbUp placeholder,Outbox placeholder,Vue feature template,T-SCAFFOLD-01..03,V13-TOOL-001..003,G0,DESIGN_PROPOSAL +REQ-UI-ADAPTER-001,Cross,UI-ADAPTER-2.0,-,-,-,UI-CORE,T-UI-ADAPTER-001,AEG-V14-001..012,G0,V14_DELTA_STATIC_ONLY +REQ-UI-T01,Cross,SCREEN-T01,-,-,-,T01,T-UI-T01,AEG-V14-013,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T02,Cross,SCREEN-T02,-,-,-,T02,T-UI-T02,AEG-V14-014,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T03,Cross,SCREEN-T03,-,-,-,T03,T-UI-T03,AEG-V14-015,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T04,Cross,SCREEN-T04,-,-,-,T04,T-UI-T04,AEG-V14-016,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T05,VS-15,SCREEN-T05,REV-01,review_history,-,T05,T-UI-T05,AEG-V14-017,G3,V14_DELTA_STATIC_ONLY +REQ-UI-T06,Cross,SCREEN-T06,-,-,-,T06,T-UI-T06,AEG-V14-018,MVP-B,V14_DELTA_STATIC_ONLY +REQ-UI-T07,VS-18,SCREEN-T07,EVAL-01,evaluation.*,J10/J11,T07,T-UI-T07,AEG-V14-019,G4,V14_DELTA_STATIC_ONLY +REQ-UI-T08,Cross,SCREEN-T08,OPS-01,job_run,J01-J39,T08,T-UI-T08,AEG-V14-020,G3,V14_DELTA_STATIC_ONLY +REQ-UI-T09,VS-23,SCREEN-T09,REC-01,reconciliation.*,J12,T09,T-UI-T09,AEG-V14-021,G5,V14_DELTA_STATIC_ONLY +REQ-UI-T10,VS-20,SCREEN-T10,MOD-LOOP-01,governance.*,J31-J39,T10,T-UI-T10,"AEG-V14-022,059",G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-CYCLE-001,VS-20,MODEL-FEEDBACK-CYCLE,MOD-LOOP-01,MIG-0019,J31-J39,T10,T-MODEL-CYCLE-001,AEG-V14-041..054,G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-HYP-001,VS-20,MODEL-HYPOTHESIS,MOD-HYP-01,MIG-0019,J35/J36,T10,T-MODEL-HYP-001,"AEG-V14-043,046,052",G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-ACT-001,VS-20,HUMAN-ACTIVATION-ONLY,MOD-ACT-01,MIG-0019,MANUAL_ONLY,T10,T-MODEL-ACT-001,"AEG-V14-047,057",G4,V14_DELTA_STATIC_ONLY +REQ-MODEL-CYCLE-006,VS-20,CYCLE-INTEGRITY,-,MIG-0019,J39,T10,T-J39-001,"AEG-V14-049..050,060",G4,V14_DELTA_STATIC_ONLY +REQ-API-CONC-001,Cross,OPTIMISTIC-CONCURRENCY,Cross,Cross,-,T03/T05/T09/T10,T-CONC-001,AEG-V14-062,G3,V14_DELTA_STATIC_ONLY +REQ-CMD-IDEMP-001,Cross,IDEMPOTENCY,Cross,Cross,Outbox,T03/T05/T08/T09,T-IDEMP-001,AEG-V14-063,G3,V14_DELTA_STATIC_ONLY +REQ-DATA-PIT-001,Cross,PIT-CONTEXT,Cross,Cross,J01-J39,T02/T07/T10,T-PIT-001,AEG-V14-064,G1,V14_DELTA_STATIC_ONLY +REQ-RM-001,Cross,READMODEL-VERSION,Cross,Cross,J28,T01/T04/T07/T08/T09,T-RM-001,AEG-V14-065,G3,V14_DELTA_STATIC_ONLY +REQ-PKG-001,Cross,PACKAGE-NON-RECURSION,-,-,-,-,T-PKG-001,AEG-V14-079,G0,V14_DELTA_STATIC_ONLY +REQ-V15-FEA-01,VS-00,UI-ADAPTER-V3,UI-CONTRACT-03,GOV-UI-RELEASE,CI,UI-STD-03,T-V15-FEA-01~07,AEG-V15-009..016,G0,SOURCE+DESIGN_PROPOSAL +REQ-V15-CRUD-01,VS-07,CRUD-PAGE-V1,CRUD-LIST/FORM,READMODEL,-,UI-CRUD-01,T-V15-CRUD-01~08,AEG-V15-017..024,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-V15-LAY-01,Cross,LAYOUT-REGIONS-V1,-,-,-,UI-LAYOUT-01,T-V15-LAY-01~08,AEG-V15-025..032,MVP-A,SOURCE+DESIGN_PROPOSAL +REQ-V15-SCH-01,VS-18,SCHEDULE-ANCHOR,MOD-OPS,MIG-0020,J31~J40,UI-OPS-01,T-V15-SCH-01~08,AEG-V15-033..040,G3,SOURCE+DESIGN_PROPOSAL +REQ-V15-EVA-01,VS-18,EVAL-WINDOWS,EVA-03,MIG-0020,J32/J40,UI-EVA-01,T-V15-EVA-01~08,AEG-V15-041..048,G4,SOURCE+DESIGN_PROPOSAL +REQ-V15-MOD-01,VS-20,FEEDBACK-CYCLE,MOD-03,MIG-0019/0020,J35~J40,UI-MOD-01,T-V15-MOD-01~08,AEG-V15-049..056,G4,SOURCE+DESIGN_PROPOSAL +REQ-V15-DAT-01,VS-03,PIT/DQ/LINEAGE,DAT-01,MIG-0020,J02/J05/J24,UI-DAT-01,T-V15-DAT-01~08,AEG-V15-057..064,G1-B,SOURCE+DESIGN_PROPOSAL +REQ-V15-ALG-01,VS-10,ALG-SELL/REENTRY,SIG-01,MIG-0014,J08/J09/J33,UI-SIG-01,T-V15-ALG-01~08,AEG-V15-065..072,G2-A,SOURCE+DESIGN_PROPOSAL +REQ-V15-QA-01,Cross,FITNESS/CONTRACT,-,-,CI,UI-ALL,T-V15-QA-01~08,AEG-V15-073..080,G6-A,SOURCE+DESIGN_PROPOSAL +REQ-V15-OPS-01,VS-25,SLO/DR/SEC,GOV-OPS,-,J23/J27/J29,UI-OPS-02,T-V15-OPS-01~08,AEG-V15-081..088,G5,SOURCE+DESIGN_PROPOSAL +REQ-V15-PKG-01,Cross,DOC-NR/PACKAGE,-,-,CI,-,T-V15-PKG-01~08,AEG-V15-089..096,G6,SOURCE+DESIGN_PROPOSAL +REQ-V15-UI-STATE,Cross,SCREEN-STATE-MATRIX,-,-,-,T01~T10,T-V15-LAY-04,AEG-V15-028,G3,SOURCE+DESIGN_PROPOSAL +REQ-V15-CONFLICT,VS-15,IF-MATCH/409/412,ADV-REVIEW,READMODEL,-,T05,T-V15-CRUD-06,AEG-V15-022,MVP-B,SOURCE+DESIGN_PROPOSAL +REQ-V15-IDEMP,VS-14,IDEMPOTENCY,REC-RUN,OUTBOX,J08,T01/T05,T-V15-CRUD-07,AEG-V15-023,G3,SOURCE+DESIGN_PROPOSAL +REQ-V15-METRIC,VS-18,METRIC-DEF/COHORT,EVA-SCORE,MIG-0020,J10/J11/J34,T07,T-V15-EVA-04~05,AEG-V15-044..045,G4,SOURCE+DESIGN_PROPOSAL +REQ-V15-CALENDAR,VS-03,MARKET-CALENDAR,DAT-CAL,MIG-0020,J26/J32/J40,T08,T-V15-SCH-07,AEG-V15-039,G1,SOURCE+DESIGN_PROPOSAL +REQ-V15-BHOLD,VS-18,EXECUTION-STATE,MOD-OPS,MIG-0020,J31~J40,T08,T-V15-SCH-05,AEG-V15-037,G3,SOURCE+DESIGN_PROPOSAL +REQ-V15-UIREL,VS-00,UI-RELEASE,UI-CONTRACT,MIG-0020,CI,T10,T-V15-FEA-07,AEG-V15-015,G3,SOURCE+DESIGN_PROPOSAL +REQ-V15-ACTIVATION,VS-20,HUMAN-ACTIVATION,MOD-ACT,MIG-0019,MANUAL_ONLY,T10,T-V15-MOD-07~08,AEG-V15-055..056,G4,SOURCE+DESIGN_PROPOSAL +REQ-V15-ZIP,Cross,PACKAGE-POLICY,-,-,CI,-,T-V15-PKG-05~07,AEG-V15-093..095,G6,SOURCE+DESIGN_PROPOSAL +REQ-V16-UI-ADAPTER,VS-00,UI-ADAPTER-V4,-,governance.ui_adapter_compatibility_evidence,CI,UI-ADAPTER,T-V16-UI4-01~08,AEG-V16-009..016,G0,SOURCE+V16_DELTA +REQ-V16-FIELD-SHELL,Cross,UI-FIELD-SHELL,-,-,-,C-044,T-V16-FEC-01,AEG-V16-017,MVP-A,SOURCE+V16_DELTA +REQ-V16-DATA-CONTEXT,Cross,EVIDENCE-VERSIONSET,-,ProjectionContract,-,C-045,T-V16-FEC-02,AEG-V16-018,MVP-A,SOURCE+V16_DELTA +REQ-V16-COMMAND-BAR,Cross,UI-COMMAND,-,-,-,C-046,T-V16-FEC-03,AEG-V16-019,MVP-A,SOURCE+V16_DELTA +REQ-V16-CRUD-V2,VS-07,CRUD-RESOURCE-V2,API-CRUD,-,-,C-047,T-V16-FEC-04~06,AEG-V16-020..022,MVP-B,SOURCE+V16_DELTA +REQ-V16-EXECUTION-ENVELOPE,VS-00,PIT-ENVELOPE,API-COMMAND,-,Outbox,-,T-V16-BEX-01~05,AEG-V16-025..029,G0,SOURCE+V16_DELTA +REQ-V16-PROJECTION,VS-03,PROJECTION-CONTRACT,API-REBUILD,0021,ProjectionRebuild,UI-PROJECTION,T-V16-DAT-02~03,AEG-V16-034..035,G3,SOURCE+V16_DELTA +REQ-V16-LEASE,VS-18,EXECUTION-LEDGER,-,0021,J41,UI-OPS-LEASE,T-V16-SCH-01~08,AEG-V16-041..048,G3,SOURCE+V16_DELTA +REQ-V16-J42,VS-18,EVALUATION-PROMOTION-V2,-,0021,J42,UI-EVALUATION,T-V16-EVA-01~08,AEG-V16-049..056,G4,SOURCE+V16_DELTA +REQ-V16-SELL-EVIDENCE,VS-10,ALG-SELL-EVIDENCE,API-SELL,-,SignalDecision,UI-SELL,T-V16-ALG-01~05,AEG-V16-057..061,G2-A,SOURCE+V16_DELTA +REQ-V16-LOOKAHEAD,VS-10,DQ-01,API-SELL,-,-,UI-SELL,T-V16-ALG-02,AEG-V16-058,G2-A,SOURCE+V16_DELTA +REQ-V16-UNIT-GUARD,VS-10,ALG-UNIT,API-SELL,-,-,UI-SELL,T-V16-ALG-03~05,AEG-V16-059..061,G2-A,SOURCE+V16_DELTA +REQ-V16-VALIDATOR,Cross,STATIC-VALIDATION,-,-,CI,-,T-V16-QAS-01,AEG-V16-065,G0,SOURCE+V16_DELTA +REQ-V16-ADAPTER-TEST,Cross,UI-ADAPTER-V4,-,-,CI,UI-ADAPTER,T-V16-QAS-02,AEG-V16-066,G0,SOURCE+V16_DELTA +REQ-V16-LEASE-TEST,VS-18,LEASE-FENCING,-,0021,J41,-,T-V16-QAS-04,AEG-V16-068,G3,SOURCE+V16_DELTA +REQ-V16-RECON-TEST,VS-18,EVAL-RECON,-,0021,J42,-,T-V16-QAS-05,AEG-V16-069,G4,SOURCE+V16_DELTA +REQ-V16-OTEL,VS-25,TRACE-CONTRACT,-,-,J41/J42,UI-OPS,T-V16-OPS-01,AEG-V16-073,G5,SOURCE+V16_DELTA +REQ-V16-DR,VS-25,DR-CONTRACT,-,0021,ProjectionRebuild,UI-OPS,T-V16-OPS-05,AEG-V16-077,G5,SOURCE+V16_DELTA +REQ-V16-CORE-PACKAGE,Cross,PACKAGE-POLICY,-,-,CI,-,T-V16-PKG-04,AEG-V16-084,G6,SOURCE+V16_DELTA +REQ-V16-FULL-PACKAGE,Cross,PACKAGE-POLICY,-,-,CI,-,T-V16-PKG-05~07,AEG-V16-085..087,G6,SOURCE+V16_DELTA diff --git a/docs/v16_0/VALIDATION_MATRIX.csv b/docs/v16_0/VALIDATION_MATRIX.csv new file mode 100644 index 00000000..f83db1eb --- /dev/null +++ b/docs/v16_0/VALIDATION_MATRIX.csv @@ -0,0 +1,7 @@ +Validation,Type,Executed,Result,Evidence,Remaining +JSON/CSV/source structure,STATIC,YES,PASS_EXPECTED,STATIC_VALIDATION_V16_0.txt,CI repeat +UI vendor boundary/Adapter v4,STATIC,YES,PASS_EXPECTED,validate_v16.py,pnpm typecheck/Vitest +C# compile/xUnit,RUNTIME,NO,NOT_RUN,SDK unavailable,approved .NET 10 runner +DbUp 0021 4 scenarios,RUNTIME,NO,NOT_RUN,PostgreSQL unavailable,fresh/upgrade/rerun/failure +Playwright/a11y/visual,RUNTIME,NO,NOT_RUN,dependencies unavailable,approved browser runner +252-session Shadow/PBO/DSR,MODEL,NO,NOT_MET,no new market dataset,G4 evidence diff --git a/frontend/.env.example b/frontend/.env.example new file mode 100644 index 00000000..b5b0a09b --- /dev/null +++ b/frontend/.env.example @@ -0,0 +1,3 @@ +VITE_API_BASE_URL=http://localhost:5000/api +# primevue is the production candidate. native exists as a contract-test/fallback reference adapter. +VITE_UI_ADAPTER=primevue diff --git a/frontend/LOCKFILE_REQUIRED.md b/frontend/LOCKFILE_REQUIRED.md new file mode 100644 index 00000000..4da5534f --- /dev/null +++ b/frontend/LOCKFILE_REQUIRED.md @@ -0,0 +1,16 @@ +# pnpm lockfile required + +이 패키지는 네트워크가 차단된 환경에서 생성되어 `pnpm-lock.yaml`을 만들 수 없었다. + +G0에서 승인된 네트워크 환경으로 다음을 수행한다. + +```bash +cd frontend +corepack enable +pnpm install --lockfile-only +pnpm audit +pnpm install --frozen-lockfile +pnpm typecheck && pnpm test && pnpm build +``` + +생성된 lockfile은 dependency review와 license 검토 후 커밋한다. CI는 lockfile이 없으면 의도적으로 실패한다. diff --git a/frontend/e2e/research-boundary.spec.ts b/frontend/e2e/research-boundary.spec.ts new file mode 100644 index 00000000..545fa9f7 --- /dev/null +++ b/frontend/e2e/research-boundary.spec.ts @@ -0,0 +1,7 @@ +import { expect, test } from '@playwright/test' + +test('research page declares non-production boundary', async ({ page }) => { + await page.goto('/research/sell-decision') + await expect(page.getByText('RESEARCH_CANDIDATE_NOT_PRODUCTION')).toBeVisible() + await expect(page.getByText('자동주문 OFF')).toBeVisible() +}) diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 00000000..9c11a126 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,12 @@ + + + + + + K-ArtSell + + +
+ + + diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 00000000..b8845d3a --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,36 @@ +{ + "name": "kartsell-frontend", + "private": true, + "version": "0.1.0", + "type": "module", + "packageManager": "pnpm@10.0.0", + "scripts": { + "dev": "vite", + "build": "vue-tsc -b && vite build", + "typecheck": "vue-tsc --noEmit", + "test": "vitest run", + "e2e": "playwright test" + }, + "dependencies": { + "@tanstack/vue-query": "^5.0.0", + "ag-grid-community": "^34.0.0", + "ag-grid-vue3": "^34.0.0", + "axios": "^1.0.0", + "pinia": "^3.0.0", + "primevue": "^4.0.0", + "vee-validate": "^4.0.0", + "vue": "^3.5.0", + "vue-router": "^4.0.0", + "zod": "^4.0.0" + }, + "devDependencies": { + "@playwright/test": "^1.0.0", + "@vitejs/plugin-vue": "^6.0.0", + "@vue/test-utils": "^2.0.0", + "jsdom": "^26.0.0", + "typescript": "^5.0.0", + "vite": "^8.0.0", + "vitest": "^4.0.0", + "vue-tsc": "^3.0.0" + } +} diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts new file mode 100644 index 00000000..989856ca --- /dev/null +++ b/frontend/playwright.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from '@playwright/test' + +export default defineConfig({ + testDir: './e2e', + use: { baseURL: 'http://127.0.0.1:4173' }, + webServer: { + command: 'pnpm build && pnpm exec vite preview --host 127.0.0.1 --port 4173', + port: 4173, + reuseExistingServer: !process.env.CI + } +}) diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 00000000..687af15f --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,11 @@ + + + diff --git a/frontend/src/app/queryClient.ts b/frontend/src/app/queryClient.ts new file mode 100644 index 00000000..e7e5a3d6 --- /dev/null +++ b/frontend/src/app/queryClient.ts @@ -0,0 +1,17 @@ +import { QueryClient } from '@tanstack/vue-query' + +export const queryClient = new QueryClient({ + defaultOptions: { + queries: { + staleTime: 30_000, + retry: (failureCount, error: unknown) => { + const status = typeof error === 'object' && error !== null && 'status' in error + ? Number((error as { status: unknown }).status) + : 0 + return ![400, 401, 403, 404, 409, 422].includes(status) && failureCount < 2 + }, + refetchOnWindowFocus: false + }, + mutations: { retry: false } + } +}) diff --git a/frontend/src/app/router.ts b/frontend/src/app/router.ts new file mode 100644 index 00000000..d4ff48e7 --- /dev/null +++ b/frontend/src/app/router.ts @@ -0,0 +1,16 @@ +import { createRouter, createWebHistory } from 'vue-router' +import SellDecisionPage from '../features/sell-decision/pages/SellDecisionPage.vue' +import DataQualityPage from '../features/data-quality/pages/DataQualityPage.vue' +import ModelOperationsPage from '../features/model-operations/pages/ModelOperationsPage.vue' +import UiStandardPage from '../features/ui-standard/pages/UiStandardPage.vue' + +export const router = createRouter({ + history: createWebHistory(), + routes: [ + { path: '/', redirect: '/research/sell-decision' }, + { path: '/research/sell-decision', component: SellDecisionPage, meta: { screenId: 'SCR-002', templateId: 'T02' } }, + { path: '/ops/data-quality', component: DataQualityPage, meta: { screenId: 'SCR-013', templateId: 'T08' } }, + { path: '/ops/model-operations', component: ModelOperationsPage, meta: { screenId: 'SCR-015', templateId: 'T10' } }, + { path: '/internal/ui-standard', component: UiStandardPage, meta: { screenId: 'SCR-DEV-001', templateId: 'T01', internalOnly: true } } + ] +}) diff --git a/frontend/src/design-system/base.css b/frontend/src/design-system/base.css new file mode 100644 index 00000000..cc5f21c8 --- /dev/null +++ b/frontend/src/design-system/base.css @@ -0,0 +1,22 @@ +@import './tokens.css'; + +* { box-sizing: border-box; } +html { color-scheme: light; } +body { + margin: 0; + background: var(--ks-color-canvas); + color: var(--ks-color-neutral-950); + font-family: Inter, Pretendard, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; + font-size: var(--ks-font-body); + line-height: var(--ks-line-body); +} +button, input, select, textarea { font: inherit; } +a { color: var(--ks-color-action); } +:focus-visible { outline: 3px solid color-mix(in srgb, var(--ks-color-focus) 55%, transparent); outline-offset: 2px; } +.ks-financial-number { font-variant-numeric: tabular-nums; } +.ks-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } +.ks-card { background: var(--ks-color-surface); border: 1px solid var(--ks-color-neutral-200); border-radius: var(--ks-radius-md); box-shadow: var(--ks-shadow-sm); } +.ks-stack { display: grid; gap: var(--ks-space-4); } +.ks-inline { display: flex; align-items: center; gap: var(--ks-space-2); flex-wrap: wrap; } +.ks-muted { color: var(--ks-color-neutral-600); } +.ks-danger-text { color: var(--ks-color-danger); } diff --git a/frontend/src/design-system/tokens.css b/frontend/src/design-system/tokens.css new file mode 100644 index 00000000..d45ff824 --- /dev/null +++ b/frontend/src/design-system/tokens.css @@ -0,0 +1,46 @@ +:root { + --ks-color-action: #174a7e; + --ks-color-action-hover: #123b65; + --ks-color-info: #2563eb; + --ks-color-success: #137333; + --ks-color-warning: #9a6700; + --ks-color-danger: #b42318; + --ks-color-neutral-950: #111827; + --ks-color-neutral-800: #1f2937; + --ks-color-neutral-700: #374151; + --ks-color-neutral-600: #4b5563; + --ks-color-neutral-500: #6b7280; + --ks-color-neutral-300: #d1d5db; + --ks-color-neutral-200: #e5e7eb; + --ks-color-neutral-100: #f3f4f6; + --ks-color-surface: #ffffff; + --ks-color-canvas: #f7f8fa; + --ks-color-focus: #2563eb; + --ks-space-1: 0.25rem; + --ks-space-2: 0.5rem; + --ks-space-3: 0.75rem; + --ks-space-4: 1rem; + --ks-space-6: 1.5rem; + --ks-space-8: 2rem; + --ks-radius-sm: 0.25rem; + --ks-radius-md: 0.5rem; + --ks-radius-lg: 0.75rem; + --ks-shadow-sm: 0 1px 2px rgb(0 0 0 / 8%); + --ks-shadow-md: 0 8px 24px rgb(0 0 0 / 10%); + --ks-font-page: 1.5rem; + --ks-line-page: 2rem; + --ks-font-section: 1.125rem; + --ks-line-section: 1.625rem; + --ks-font-body: 0.875rem; + --ks-line-body: 1.375rem; + --ks-font-caption: 0.75rem; + --ks-line-caption: 1.125rem; + --ks-control-height: 2.75rem; + --ks-grid-density: 2.25rem; + --ks-content-max: 100rem; +} + +[data-density='compact'] { + --ks-control-height: 2.25rem; + --ks-grid-density: 2rem; +} diff --git a/frontend/src/env.d.ts b/frontend/src/env.d.ts new file mode 100644 index 00000000..76c3c0a2 --- /dev/null +++ b/frontend/src/env.d.ts @@ -0,0 +1,10 @@ +/// + +interface ImportMetaEnv { + readonly VITE_API_BASE_URL?: string + readonly VITE_UI_ADAPTER?: 'primevue' | 'native' +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/frontend/src/features/data-quality/pages/DataQualityPage.vue b/frontend/src/features/data-quality/pages/DataQualityPage.vue new file mode 100644 index 00000000..b0f89c4d --- /dev/null +++ b/frontend/src/features/data-quality/pages/DataQualityPage.vue @@ -0,0 +1,33 @@ + + + diff --git a/frontend/src/features/data-quality/schema.ts b/frontend/src/features/data-quality/schema.ts new file mode 100644 index 00000000..ab7f3c88 --- /dev/null +++ b/frontend/src/features/data-quality/schema.ts @@ -0,0 +1,27 @@ +import { z } from 'zod' + +export const dataQualityStatusSchema = z.enum(['PASS', 'WARN', 'QUARANTINED']) + +export const dataQualityRunSchema = z.object({ + runId: z.string().uuid(), + source: z.string().min(1), + session: z.string().min(1), + status: dataQualityStatusSchema, + rowCount: z.number().int().nonnegative(), + failedRows: z.number().int().nonnegative(), + sourceWatermark: z.string().min(1), + datasetId: z.string().min(1), + contentHash: z.string().min(1), + completedAt: z.string().datetime({ offset: true }) +}).superRefine((value, ctx) => { + if (value.failedRows > value.rowCount) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: '실패 행 수는 전체 행 수를 초과할 수 없습니다.', + path: ['failedRows'] + }) + } +}) + +export const dataQualityRunsSchema = z.array(dataQualityRunSchema) +export type DataQualityRun = z.infer diff --git a/frontend/src/features/data-quality/tests/schema.spec.ts b/frontend/src/features/data-quality/tests/schema.spec.ts new file mode 100644 index 00000000..c0187592 --- /dev/null +++ b/frontend/src/features/data-quality/tests/schema.spec.ts @@ -0,0 +1,25 @@ +import { describe, expect, it } from 'vitest' +import { dataQualityRunSchema } from '../schema' + +const valid = { + runId: '00000000-0000-0000-0000-000000000001', + source: 'KRX', + session: '2026-08-01', + status: 'PASS', + rowCount: 100, + failedRows: 0, + sourceWatermark: 'KRX:2026-08-01', + datasetId: 'dataset-1', + contentHash: 'hash-1', + completedAt: '2026-08-01T09:00:00Z' +} + +describe('data quality contract', () => { + it('accepts a valid run', () => { + expect(dataQualityRunSchema.safeParse(valid).success).toBe(true) + }) + + it('rejects failed rows greater than total rows', () => { + expect(dataQualityRunSchema.safeParse({ ...valid, failedRows: 101 }).success).toBe(false) + }) +}) diff --git a/frontend/src/features/model-operations/api.ts b/frontend/src/features/model-operations/api.ts new file mode 100644 index 00000000..ce074377 --- /dev/null +++ b/frontend/src/features/model-operations/api.ts @@ -0,0 +1,7 @@ +import { api } from '../../shared/api/client' +import { modelOperationsPlanSchema, type ModelOperationsPlan } from './schema' + +export async function getModelOperationsPlan(): Promise { + const response = await api.get('/internal/v1/model-operations/plan') + return modelOperationsPlanSchema.parse(response.data) +} diff --git a/frontend/src/features/model-operations/components/AutomationBoundaryPanel.vue b/frontend/src/features/model-operations/components/AutomationBoundaryPanel.vue new file mode 100644 index 00000000..ce70c571 --- /dev/null +++ b/frontend/src/features/model-operations/components/AutomationBoundaryPanel.vue @@ -0,0 +1,31 @@ + + + diff --git a/frontend/src/features/model-operations/components/ModelOperationTable.vue b/frontend/src/features/model-operations/components/ModelOperationTable.vue new file mode 100644 index 00000000..1c275d5e --- /dev/null +++ b/frontend/src/features/model-operations/components/ModelOperationTable.vue @@ -0,0 +1,39 @@ + + + diff --git a/frontend/src/features/model-operations/pages/ModelOperationsPage.vue b/frontend/src/features/model-operations/pages/ModelOperationsPage.vue new file mode 100644 index 00000000..f360c698 --- /dev/null +++ b/frontend/src/features/model-operations/pages/ModelOperationsPage.vue @@ -0,0 +1,32 @@ + + + diff --git a/frontend/src/features/model-operations/queries.ts b/frontend/src/features/model-operations/queries.ts new file mode 100644 index 00000000..3e6f8ac7 --- /dev/null +++ b/frontend/src/features/model-operations/queries.ts @@ -0,0 +1,16 @@ +import { useQuery } from '@tanstack/vue-query' +import { getModelOperationsPlan } from './api' + +export const modelOperationsKeys = { + all: ['model-operations'] as const, + plan: () => [...modelOperationsKeys.all, 'plan'] as const +} + +export function useModelOperationsPlanQuery() { + return useQuery({ + queryKey: modelOperationsKeys.plan(), + queryFn: getModelOperationsPlan, + staleTime: 5 * 60 * 1000, + retry: 1 + }) +} diff --git a/frontend/src/features/model-operations/schema.ts b/frontend/src/features/model-operations/schema.ts new file mode 100644 index 00000000..6f180c8a --- /dev/null +++ b/frontend/src/features/model-operations/schema.ts @@ -0,0 +1,24 @@ +import { z } from 'zod' + +export const operationItemSchema = z.object({ + operationCode: z.string().min(1), + name: z.string().min(1), + cadence: z.enum(['DAILY', 'WEEKLY', 'MONTHLY', 'QUARTERLY', 'EVENT_DRIVEN']), + automationMode: z.enum(['EVALUATION_ONLY', 'PROPOSAL_ONLY', 'DRILL_ONLY']), + queue: z.string().min(1), + primaryOwner: z.string().min(1), + secondaryOwner: z.string().min(1), + requiredEvidence: z.string().min(1), + output: z.string().min(1), + gate: z.string().min(1) +}) + +export const modelOperationsPlanSchema = z.object({ + algorithmStatus: z.literal('RESEARCH_CANDIDATE_NOT_PRODUCTION'), + orderCapability: z.literal('AUTOMATIC_ORDER_AND_KIS_SUBMISSION_OFF'), + modelMutationBoundary: z.literal('EVALUATION_AND_PROPOSAL_ONLY_HUMAN_APPROVAL_REQUIRED'), + operations: z.array(operationItemSchema) +}) + +export type ModelOperationsPlan = z.infer +export type ModelOperationItem = z.infer diff --git a/frontend/src/features/model-operations/tests/schema.spec.ts b/frontend/src/features/model-operations/tests/schema.spec.ts new file mode 100644 index 00000000..6cee4beb --- /dev/null +++ b/frontend/src/features/model-operations/tests/schema.spec.ts @@ -0,0 +1,26 @@ +import { describe, expect, it } from 'vitest' +import { modelOperationsPlanSchema } from '../schema' + +describe('model operations plan schema', () => { + it('rejects an automatic promotion mode', () => { + const result = modelOperationsPlanSchema.safeParse({ + algorithmStatus: 'RESEARCH_CANDIDATE_NOT_PRODUCTION', + orderCapability: 'AUTOMATIC_ORDER_AND_KIS_SUBMISSION_OFF', + modelMutationBoundary: 'EVALUATION_AND_PROPOSAL_ONLY_HUMAN_APPROVAL_REQUIRED', + operations: [{ + operationCode: 'J22', + name: 'PromotionEvidenceReviewBuild', + cadence: 'MONTHLY', + automationMode: 'AUTO_PROMOTE', + queue: 'q-control', + primaryOwner: 'Risk', + secondaryOwner: 'Compliance', + requiredEvidence: 'all evidence', + output: 'review packet', + gate: 'G4' + }] + }) + + expect(result.success).toBe(false) + }) +}) diff --git a/frontend/src/features/sell-decision/api.ts b/frontend/src/features/sell-decision/api.ts new file mode 100644 index 00000000..8ea9263a --- /dev/null +++ b/frontend/src/features/sell-decision/api.ts @@ -0,0 +1,24 @@ +import { api } from '../../shared/api/client' +import { + researchSellPolicyRequestSchema, + researchSellPolicyResponseSchema, + type ResearchSellPolicyRequest, + type ResearchSellPolicyResponse +} from './schema' + +export interface ResearchSellPolicyCommand { + request: ResearchSellPolicyRequest + idempotencyKey: string +} + +export async function evaluateResearchSellPolicy( + command: ResearchSellPolicyCommand +): Promise { + const request = researchSellPolicyRequestSchema.parse(command.request) + const { data } = await api.post( + '/internal/v1/research/sell-policy/evaluate', + request, + { headers: { 'Idempotency-Key': command.idempotencyKey } } + ) + return researchSellPolicyResponseSchema.parse(data) +} diff --git a/frontend/src/features/sell-decision/components/PolicyTracePanel.vue b/frontend/src/features/sell-decision/components/PolicyTracePanel.vue new file mode 100644 index 00000000..a75ec089 --- /dev/null +++ b/frontend/src/features/sell-decision/components/PolicyTracePanel.vue @@ -0,0 +1,26 @@ + + + diff --git a/frontend/src/features/sell-decision/pages/SellDecisionPage.vue b/frontend/src/features/sell-decision/pages/SellDecisionPage.vue new file mode 100644 index 00000000..643be73f --- /dev/null +++ b/frontend/src/features/sell-decision/pages/SellDecisionPage.vue @@ -0,0 +1,115 @@ + + + diff --git a/frontend/src/features/sell-decision/queries.ts b/frontend/src/features/sell-decision/queries.ts new file mode 100644 index 00000000..66d19263 --- /dev/null +++ b/frontend/src/features/sell-decision/queries.ts @@ -0,0 +1,6 @@ +import { useMutation } from '@tanstack/vue-query' +import { evaluateResearchSellPolicy } from './api' + +export function useEvaluateResearchSellPolicy() { + return useMutation({ mutationFn: evaluateResearchSellPolicy }) +} diff --git a/frontend/src/features/sell-decision/schema.ts b/frontend/src/features/sell-decision/schema.ts new file mode 100644 index 00000000..74537dc4 --- /dev/null +++ b/frontend/src/features/sell-decision/schema.ts @@ -0,0 +1,68 @@ +import { z } from 'zod' + +const ratio = z.number().min(0).max(1) + +const policyTraceEntrySchema = z.object({ + policyId: z.string().min(1), + priority: z.number().int(), + disposition: z.union([z.literal(0), z.literal(1), z.literal(2)]), + reasonCode: z.string().min(1), + requestedSellRatioOfLot: ratio, + appliedSellRatioOfLot: ratio, + strategicCoreClampApplied: z.boolean() +}) + +export const researchSellPolicyRequestSchema = z.object({ + positionLotId: z.string().uuid(), + cycleId: z.string().uuid(), + evidenceId: z.string().min(1).max(128), + datasetId: z.string().min(1).max(128), + modelVersion: z.string().min(1).max(128), + configVersion: z.string().min(1).max(128), + codeSha: z.string().min(1).max(128), + asOf: z.string().datetime({ offset: true }), + publishedAtCutoff: z.string().datetime({ offset: true }), + currentSecurityPortfolioWeight: ratio, + currentLotPortfolioWeight: ratio, + strategicCoreFloorWeight: ratio, + hardImpairmentApproved: z.boolean(), + capitalFloorBreached: z.boolean(), + survivalSellRatioOfLot: ratio, + gapBelowFloorAtr: z.number().min(0), + consecutiveCloseBreaches: z.number().int().min(0), + cooldownSatisfied: z.boolean(), + concentrationSellRatioOfLot: ratio, + opportunityEdgeLowerBound: z.number(), + opportunitySellRatioOfLot: ratio +}).superRefine((value, ctx) => { + if (value.currentLotPortfolioWeight > value.currentSecurityPortfolioWeight) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: 'Lot 비중은 종목 전체 비중을 초과할 수 없습니다.', + path: ['currentLotPortfolioWeight'] + }) + } + if (new Date(value.publishedAtCutoff) > new Date(value.asOf)) { + ctx.addIssue({ + code: z.ZodIssueCode.custom, + message: '공개 가능 시각은 평가 시각 이후일 수 없습니다.', + path: ['publishedAtCutoff'] + }) + } +}) + +export const researchSellPolicyResponseSchema = z.object({ + action: z.enum(['Hold', 'PartialSell', 'FullSell']), + sellRatioOfLot: ratio, + targetSecurityPortfolioWeightAfter: ratio, + policyId: z.string().min(1), + reasonCode: z.string().min(1), + decisionContractVersion: z.literal('sell-decision.v2'), + policyTraceSchemaVersion: z.literal(2), + reentryEligible: z.boolean(), + policyTrace: z.array(policyTraceEntrySchema), + evidenceStatus: z.literal('RESEARCH_CANDIDATE_NOT_PRODUCTION') +}) + +export type ResearchSellPolicyRequest = z.infer +export type ResearchSellPolicyResponse = z.infer diff --git a/frontend/src/features/sell-decision/tests/schema.spec.ts b/frontend/src/features/sell-decision/tests/schema.spec.ts new file mode 100644 index 00000000..966652f6 --- /dev/null +++ b/frontend/src/features/sell-decision/tests/schema.spec.ts @@ -0,0 +1,65 @@ +import { describe, expect, it } from 'vitest' +import { + researchSellPolicyRequestSchema, + researchSellPolicyResponseSchema +} from '../schema' + +const baseRequest = { + positionLotId: '00000000-0000-0000-0000-000000000001', + cycleId: '00000000-0000-0000-0000-000000000002', + evidenceId: 'evidence-1', + datasetId: 'dataset-1', + modelVersion: 'model-1', + configVersion: 'config-1', + codeSha: 'sha-1', + asOf: '2026-08-01T07:00:00Z', + publishedAtCutoff: '2026-08-01T06:00:00Z', + currentSecurityPortfolioWeight: 0.6, + currentLotPortfolioWeight: 0.2, + strategicCoreFloorWeight: 0.3, + hardImpairmentApproved: false, + capitalFloorBreached: false, + survivalSellRatioOfLot: 0, + gapBelowFloorAtr: 0, + consecutiveCloseBreaches: 0, + cooldownSatisfied: true, + concentrationSellRatioOfLot: 0, + opportunityEdgeLowerBound: 0, + opportunitySellRatioOfLot: 0 +} + +describe('research sell policy contracts', () => { + it('accepts a valid point-in-time request', () => { + expect(researchSellPolicyRequestSchema.safeParse(baseRequest).success).toBe(true) + }) + + it('rejects a lot weight above security weight', () => { + const result = researchSellPolicyRequestSchema.safeParse({ + ...baseRequest, + currentLotPortfolioWeight: 0.7 + }) + expect(result.success).toBe(false) + }) + + it('rejects a future published-at cutoff', () => { + const result = researchSellPolicyRequestSchema.safeParse({ + ...baseRequest, + publishedAtCutoff: '2026-08-01T08:00:00Z' + }) + expect(result.success).toBe(false) + }) + + it('rejects an unknown production status', () => { + const result = researchSellPolicyResponseSchema.safeParse({ + action: 'Hold', + sellRatioOfLot: 0, + targetSecurityPortfolioWeightAfter: 0.6, + policyId: 'ALG-HOLD-001', + reasonCode: 'NO_SELL_CONDITION', + reentryEligible: false, + policyTrace: [], + evidenceStatus: 'PRODUCTION' + }) + expect(result.success).toBe(false) + }) +}) diff --git a/frontend/src/features/ui-standard/pages/UiStandardPage.vue b/frontend/src/features/ui-standard/pages/UiStandardPage.vue new file mode 100644 index 00000000..80fb8f48 --- /dev/null +++ b/frontend/src/features/ui-standard/pages/UiStandardPage.vue @@ -0,0 +1,25 @@ + + + diff --git a/frontend/src/main.ts b/frontend/src/main.ts new file mode 100644 index 00000000..a90f98c8 --- /dev/null +++ b/frontend/src/main.ts @@ -0,0 +1,15 @@ +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import { VueQueryPlugin } from '@tanstack/vue-query' +import App from './App.vue' +import { router } from './app/router' +import { queryClient } from './app/queryClient' +import { resolveUiProvider } from './shared/ui/provider' +import './design-system/base.css' + +const app = createApp(App) +app.use(createPinia()) +app.use(router) +app.use(VueQueryPlugin, { queryClient }) +resolveUiProvider(import.meta.env.VITE_UI_ADAPTER).install(app) +app.mount('#app') diff --git a/frontend/src/shared/api/client.ts b/frontend/src/shared/api/client.ts new file mode 100644 index 00000000..4d77aef0 --- /dev/null +++ b/frontend/src/shared/api/client.ts @@ -0,0 +1,23 @@ +import axios from 'axios' +import { ApiProblem, type ProblemDetails } from './problem' + +export const api = axios.create({ baseURL: '/api', timeout: 15_000 }) + +api.interceptors.request.use(config => { + const user = import.meta.env.VITE_DEV_AUTH_USER as string | undefined + const role = import.meta.env.VITE_DEV_AUTH_ROLE as string | undefined + if (import.meta.env.DEV && user && role) { + config.headers['X-KArtSell-User'] = user + config.headers['X-KArtSell-Role'] = role + } + return config +}) + +api.interceptors.response.use( + response => response, + error => { + const data = error.response?.data as ProblemDetails | undefined + if (data?.status) throw new ApiProblem(data) + throw error + } +) diff --git a/frontend/src/shared/api/problem.ts b/frontend/src/shared/api/problem.ts new file mode 100644 index 00000000..2cd39ce7 --- /dev/null +++ b/frontend/src/shared/api/problem.ts @@ -0,0 +1,16 @@ +export interface ProblemDetails { + type?: string + title: string + status: number + detail?: string + traceId?: string + errors?: Record +} + +export class ApiProblem extends Error { + constructor(public readonly problem: ProblemDetails) { + super(problem.title) + } + + get status(): number { return this.problem.status } +} diff --git a/frontend/src/shared/auth/PermissionGuard.vue b/frontend/src/shared/auth/PermissionGuard.vue new file mode 100644 index 00000000..bd3af5eb --- /dev/null +++ b/frontend/src/shared/auth/PermissionGuard.vue @@ -0,0 +1,11 @@ + + + diff --git a/frontend/src/shared/commands/idempotency.ts b/frontend/src/shared/commands/idempotency.ts new file mode 100644 index 00000000..7c122eec --- /dev/null +++ b/frontend/src/shared/commands/idempotency.ts @@ -0,0 +1,11 @@ +export interface IdempotentCommand { + readonly idempotencyKey: string + readonly request: T +} + +/** + * Create once per user intent. Retries must reuse the returned envelope rather than call this again. + */ +export function createIdempotentCommand(request: T): IdempotentCommand { + return Object.freeze({ idempotencyKey: crypto.randomUUID(), request }) +} diff --git a/frontend/src/shared/contracts/versionSet.ts b/frontend/src/shared/contracts/versionSet.ts new file mode 100644 index 00000000..51caa2d3 --- /dev/null +++ b/frontend/src/shared/contracts/versionSet.ts @@ -0,0 +1,12 @@ +import { z } from 'zod' + +export const versionSetSchema = z.object({ + datasetId: z.string().min(1).max(128), + dataHash: z.string().min(1).max(128), + modelVersion: z.string().min(1).max(128), + configVersion: z.string().min(1).max(128), + codeSha: z.string().min(1).max(128), + contractVersion: z.string().min(1).max(64) +}) + +export type VersionSet = z.infer diff --git a/frontend/src/shared/crud/StandardCrudFormPage.vue b/frontend/src/shared/crud/StandardCrudFormPage.vue new file mode 100644 index 00000000..4a2e2b07 --- /dev/null +++ b/frontend/src/shared/crud/StandardCrudFormPage.vue @@ -0,0 +1,19 @@ + + diff --git a/frontend/src/shared/crud/StandardCrudListPage.vue b/frontend/src/shared/crud/StandardCrudListPage.vue new file mode 100644 index 00000000..44d73fe9 --- /dev/null +++ b/frontend/src/shared/crud/StandardCrudListPage.vue @@ -0,0 +1,36 @@ + + diff --git a/frontend/src/shared/crud/contracts.ts b/frontend/src/shared/crud/contracts.ts new file mode 100644 index 00000000..0ecc249b --- /dev/null +++ b/frontend/src/shared/crud/contracts.ts @@ -0,0 +1,36 @@ +import type { ZodType } from 'zod' +import type { UiGridColumn, UiGridFilter, UiGridSort } from '../ui/adapter/contracts' + +export type CrudPermission = 'read' | 'create' | 'update' | 'delete' | 'export' | 'review' | 'publish' +export interface CrudListQuery { + page: number + pageSize: number + search?: string + sorts: UiGridSort[] + filters: UiGridFilter[] +} +export interface CrudPageResult { + items: T[] + total: number + asOf: string + projectionVersion: string + watermark?: string + stale: boolean +} +export interface CrudMutationContext { + idempotencyKey: string + ifMatch?: string + reason?: string + correlationId?: string +} +export interface CrudResourceContract { + resourceCode: string + routeBase: string + queryKey: readonly string[] + columns: UiGridColumn[] + formSchema: ZodType + permissions: Partial> + defaultQuery: CrudListQuery + parseListResponse(payload: unknown): CrudPageResult + parseDetailResponse(payload: unknown): TItem +} diff --git a/frontend/src/shared/crud/queryCodec.ts b/frontend/src/shared/crud/queryCodec.ts new file mode 100644 index 00000000..6aa664c9 --- /dev/null +++ b/frontend/src/shared/crud/queryCodec.ts @@ -0,0 +1,36 @@ +import type { CrudListQuery } from './contracts' + +const positiveInt = (value: string | null, fallback: number): number => { + const parsed = Number(value) + return Number.isInteger(parsed) && parsed > 0 ? parsed : fallback +} + +export function decodeCrudQuery(params: URLSearchParams, fallback: CrudListQuery): CrudListQuery { + const sorts = params.getAll('sort').flatMap(value => { + const [field, direction] = value.split(':') + return field && (direction === 'asc' || direction === 'desc') ? [{ field, direction }] : [] + }) + const filters = params.getAll('filter').flatMap(value => { + const first = value.indexOf(':') + const second = value.indexOf(':', first + 1) + if (first <= 0 || second <= first) return [] + return [{ field: value.slice(0, first), operator: value.slice(first + 1, second), value: value.slice(second + 1) }] + }) + return { + page: positiveInt(params.get('page'), fallback.page), + pageSize: positiveInt(params.get('pageSize'), fallback.pageSize), + search: params.get('search')?.trim() || undefined, + sorts: sorts.length ? sorts : fallback.sorts, + filters: filters.length ? filters : fallback.filters + } +} + +export function encodeCrudQuery(query: CrudListQuery): URLSearchParams { + const params = new URLSearchParams() + params.set('page', String(query.page)) + params.set('pageSize', String(query.pageSize)) + if (query.search) params.set('search', query.search) + for (const sort of query.sorts) params.append('sort', `${sort.field}:${sort.direction}`) + for (const filter of query.filters) params.append('filter', `${filter.field}:${filter.operator}:${String(filter.value ?? '')}`) + return params +} diff --git a/frontend/src/shared/crud/resourceDefinition.ts b/frontend/src/shared/crud/resourceDefinition.ts new file mode 100644 index 00000000..3d64f0b4 --- /dev/null +++ b/frontend/src/shared/crud/resourceDefinition.ts @@ -0,0 +1,22 @@ +import type { ZodType } from 'zod' +import type { UiGridColumn } from '../ui/adapter/contracts' +export type CrudConcurrencyMode = 'NONE' | 'ETAG_IF_MATCH' +export type CrudIdempotencyMode = 'NONE' | 'IDEMPOTENCY_KEY' +export interface CrudResourceDefinition { + resourceId: string + querySchemaVersion: string + responseSchemaVersion: string + querySchema: ZodType + rowSchema: ZodType + formSchema: ZodType + columns: readonly UiGridColumn[] + sensitiveFields: readonly string[] + permissionPolicy: string + concurrencyMode: CrudConcurrencyMode + idempotencyMode: CrudIdempotencyMode +} +export function assertCrudResourceDefinition(definition: CrudResourceDefinition): void { + if (!definition.resourceId.trim()) throw new Error('resourceId is required') + const fields = new Set(definition.columns.map(x => x.field)) + for (const sensitive of definition.sensitiveFields) if (!fields.has(sensitive)) throw new Error(`Sensitive field '${sensitive}' has no grid column contract`) +} diff --git a/frontend/src/shared/crud/tests/queryCodec.spec.ts b/frontend/src/shared/crud/tests/queryCodec.spec.ts new file mode 100644 index 00000000..ffae7657 --- /dev/null +++ b/frontend/src/shared/crud/tests/queryCodec.spec.ts @@ -0,0 +1,12 @@ +import { describe, expect, it } from 'vitest' +import { decodeCrudQuery, encodeCrudQuery } from '../queryCodec' +const fallback = { page: 1, pageSize: 20, sorts: [], filters: [] } +describe('CRUD URL codec', () => { + it('round-trips paging, sort, filter and search without hidden Pinia state', () => { + const source = { page: 3, pageSize: 50, search: '005930', sorts: [{ field: 'asOf', direction: 'desc' as const }], filters: [{ field: 'status', operator: 'eq', value: 'WARN' }] } + expect(decodeCrudQuery(encodeCrudQuery(source), fallback)).toEqual(source) + }) + it('fails closed to approved defaults for invalid paging', () => { + expect(decodeCrudQuery(new URLSearchParams('page=0&pageSize=-1'), fallback)).toEqual({ ...fallback, search: undefined }) + }) +}) diff --git a/frontend/src/shared/crud/useCrudListState.ts b/frontend/src/shared/crud/useCrudListState.ts new file mode 100644 index 00000000..4ce672e3 --- /dev/null +++ b/frontend/src/shared/crud/useCrudListState.ts @@ -0,0 +1,24 @@ +import { computed, ref } from 'vue' +import type { CrudListQuery } from './contracts' + +export function useCrudListState(initial: CrudListQuery) { + const query = ref({ ...initial, sorts: [...initial.sorts], filters: [...initial.filters] }) + const selectedId = ref(null) + const dirty = ref(false) + + function replace(next: CrudListQuery): void { query.value = { ...next, sorts: [...next.sorts], filters: [...next.filters] } } + function setPage(page: number, pageSize = query.value.pageSize): void { query.value = { ...query.value, page, pageSize } } + function setSearch(search?: string): void { query.value = { ...query.value, page: 1, search: search?.trim() || undefined } } + function reset(): void { replace(initial); selectedId.value = null; dirty.value = false } + + return { + query, + selectedId, + dirty, + offset: computed(() => (query.value.page - 1) * query.value.pageSize), + replace, + setPage, + setSearch, + reset + } +} diff --git a/frontend/src/shared/crud/useOptimisticCommand.ts b/frontend/src/shared/crud/useOptimisticCommand.ts new file mode 100644 index 00000000..d43cf821 --- /dev/null +++ b/frontend/src/shared/crud/useOptimisticCommand.ts @@ -0,0 +1,21 @@ +import { ref } from 'vue' +import { createIdempotencyKey } from '../commands/idempotency' +export interface OptimisticCommandRequest { payload: T; etag?: string } +export interface OptimisticCommandResponse { data: TResult; etag?: string; correlationId?: string } +export function useOptimisticCommand(execute: (request: OptimisticCommandRequest, headers: Record) => Promise>) { + const pending = ref(false); const conflict = ref(false); const lastCorrelationId = ref() + async function run(request: OptimisticCommandRequest): Promise> { + if (pending.value) throw new Error('Command is already in progress') + pending.value=true; conflict.value=false + try { + const headers: Record = { 'Idempotency-Key': createIdempotencyKey() } + if (request.etag) headers['If-Match']=request.etag + const response=await execute(request,headers); lastCorrelationId.value=response.correlationId; return response + } catch (error: unknown) { + const status=(error as { response?: { status?: number } })?.response?.status + if (status===409 || status===412) conflict.value=true + throw error + } finally { pending.value=false } + } + return { pending, conflict, lastCorrelationId, run } +} diff --git a/frontend/src/shared/formatters/financial.ts b/frontend/src/shared/formatters/financial.ts new file mode 100644 index 00000000..0f12fe0a --- /dev/null +++ b/frontend/src/shared/formatters/financial.ts @@ -0,0 +1,18 @@ +export function formatCurrency(value: number | null | undefined, currency: string, locale = 'ko-KR'): string { + if (value == null || Number.isNaN(value)) return '—' + return new Intl.NumberFormat(locale, { style: 'currency', currency, maximumFractionDigits: 2 }).format(value) +} +export function formatPercent(value: number | null | undefined, digits = 2, locale = 'ko-KR'): string { + if (value == null || Number.isNaN(value)) return '—' + return new Intl.NumberFormat(locale, { style: 'percent', minimumFractionDigits: digits, maximumFractionDigits: digits }).format(value) +} +export function formatQuantity(value: number | null | undefined, digits = 4, locale = 'ko-KR'): string { + if (value == null || Number.isNaN(value)) return '—' + return new Intl.NumberFormat(locale, { maximumFractionDigits: digits }).format(value) +} +export function formatAsOf(value: string | Date | null | undefined, locale = 'ko-KR'): string { + if (!value) return '—' + const date = value instanceof Date ? value : new Date(value) + if (Number.isNaN(date.getTime())) return '—' + return new Intl.DateTimeFormat(locale, { dateStyle: 'medium', timeStyle: 'short', timeZone: 'Asia/Seoul' }).format(date) +} diff --git a/frontend/src/shared/formatters/tests/financial.spec.ts b/frontend/src/shared/formatters/tests/financial.spec.ts new file mode 100644 index 00000000..f690329d --- /dev/null +++ b/frontend/src/shared/formatters/tests/financial.spec.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from 'vitest' +import { formatCurrency, formatPercent, formatQuantity } from '../financial' +describe('financial formatters', () => { + it('renders missing values as an explicit em dash', () => { expect(formatCurrency(null, 'KRW')).toBe('—'); expect(formatPercent(undefined)).toBe('—') }) + it('keeps percentage inputs in decimal-return units', () => { expect(formatPercent(0.125, 1)).toContain('12.5') }) + it('uses bounded quantity precision', () => { expect(formatQuantity(1.234567, 2)).toContain('1.23') }) +}) diff --git a/frontend/src/shared/status/DataFreshnessBadge.vue b/frontend/src/shared/status/DataFreshnessBadge.vue new file mode 100644 index 00000000..dbe7a7f2 --- /dev/null +++ b/frontend/src/shared/status/DataFreshnessBadge.vue @@ -0,0 +1,17 @@ + + + diff --git a/frontend/src/shared/ui/DataGridShell.vue b/frontend/src/shared/ui/DataGridShell.vue new file mode 100644 index 00000000..c6685160 --- /dev/null +++ b/frontend/src/shared/ui/DataGridShell.vue @@ -0,0 +1,19 @@ + + + diff --git a/frontend/src/shared/ui/EvidenceVersionSet.vue b/frontend/src/shared/ui/EvidenceVersionSet.vue new file mode 100644 index 00000000..acf3a886 --- /dev/null +++ b/frontend/src/shared/ui/EvidenceVersionSet.vue @@ -0,0 +1,19 @@ + + + diff --git a/frontend/src/shared/ui/QueryStateBoundary.vue b/frontend/src/shared/ui/QueryStateBoundary.vue new file mode 100644 index 00000000..66cd8036 --- /dev/null +++ b/frontend/src/shared/ui/QueryStateBoundary.vue @@ -0,0 +1,46 @@ + + + diff --git a/frontend/src/shared/ui/VersionConflictDialog.vue b/frontend/src/shared/ui/VersionConflictDialog.vue new file mode 100644 index 00000000..75c09652 --- /dev/null +++ b/frontend/src/shared/ui/VersionConflictDialog.vue @@ -0,0 +1,17 @@ + + + diff --git a/frontend/src/shared/ui/adapter/compatibility.ts b/frontend/src/shared/ui/adapter/compatibility.ts new file mode 100644 index 00000000..0775bdff --- /dev/null +++ b/frontend/src/shared/ui/adapter/compatibility.ts @@ -0,0 +1,49 @@ +import type { Component } from 'vue' +import type { UiAdapter, UiAdapterCapability } from './contracts' + +export interface UiAdapterCompatibilityIssue { + code: 'CONTRACT_VERSION' | 'MISSING_CAPABILITY' | 'MISSING_COMPONENT' | 'PRODUCTION_INELIGIBLE' + severity: 'ERROR' | 'WARNING' + detail: string +} + +export interface UiAdapterCompatibilityReport { + adapterId: string + contractVersion: string + compatible: boolean + issues: readonly UiAdapterCompatibilityIssue[] +} + +const componentByCapability: Readonly> = { + 'button': 'Button', 'text-field': 'TextField', 'text-area': 'TextArea', 'select': 'Select', + 'multi-select': 'MultiSelect', 'checkbox': 'Checkbox', 'date-field': 'DateField', + 'number-field': 'NumberField', 'dialog': 'Dialog', 'status-tag': 'StatusTag', + 'inline-message': 'InlineMessage', 'paginator': 'Paginator', 'tabs': 'Tabs', 'data-grid': 'DataGrid' +} + +export function evaluateUiAdapterCompatibility( + adapter: UiAdapter, + requiredCapabilities: readonly UiAdapterCapability[], + requireProductionEligible = false +): UiAdapterCompatibilityReport { + const issues: UiAdapterCompatibilityIssue[] = [] + if (adapter.descriptor.contractVersion !== '4.0') { + issues.push({ code: 'CONTRACT_VERSION', severity: 'ERROR', detail: `Expected 4.0, got ${adapter.descriptor.contractVersion}` }) + } + for (const capability of requiredCapabilities) { + if (!adapter.descriptor.capabilities.has(capability)) { + issues.push({ code: 'MISSING_CAPABILITY', severity: 'ERROR', detail: capability }) + continue + } + const component = adapter.components[componentByCapability[capability]] as Component | undefined + if (!component) issues.push({ code: 'MISSING_COMPONENT', severity: 'ERROR', detail: capability }) + } + if (requireProductionEligible && !adapter.descriptor.productionEligible) { + issues.push({ code: 'PRODUCTION_INELIGIBLE', severity: 'ERROR', detail: adapter.descriptor.id }) + } + return { adapterId: adapter.descriptor.id, contractVersion: adapter.descriptor.contractVersion, compatible: !issues.some(x => x.severity === 'ERROR'), issues } +} + +export function assertUiAdapterCompatibility(report: UiAdapterCompatibilityReport): void { + if (!report.compatible) throw new Error(`UI adapter ${report.adapterId} is incompatible: ${report.issues.map(x => `${x.code}:${x.detail}`).join(', ')}`) +} diff --git a/frontend/src/shared/ui/adapter/contracts.ts b/frontend/src/shared/ui/adapter/contracts.ts new file mode 100644 index 00000000..e850ac7c --- /dev/null +++ b/frontend/src/shared/ui/adapter/contracts.ts @@ -0,0 +1,110 @@ +import type { Component, InjectionKey } from 'vue' + +export type UiSeverity = 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger' +export type UiButtonType = 'button' | 'submit' | 'reset' +export type UiAdapterId = 'primevue-aggrid' | 'native-accessible' +export type UiAdapterContractVersion = '4.0' +export type UiAdapterCapability = + | 'button' + | 'text-field' + | 'text-area' + | 'select' + | 'multi-select' + | 'checkbox' + | 'date-field' + | 'number-field' + | 'dialog' + | 'status-tag' + | 'inline-message' + | 'paginator' + | 'tabs' + | 'data-grid' + +export interface UiSelectOption { + label: string + value: string | number | boolean | null + disabled?: boolean +} + +export interface UiTabItem { + id: string + label: string + disabled?: boolean + badge?: string | number +} + +export type UiGridSortDirection = 'asc' | 'desc' +export interface UiGridSort { field: string; direction: UiGridSortDirection } +export interface UiGridFilter { field: string; operator: string; value: unknown } +export interface UiGridQuery { + page: number + pageSize: number + sorts: UiGridSort[] + filters: UiGridFilter[] + search?: string +} + +export interface UiGridColumn { + field: string + header: string + width?: number + minWidth?: number + sortable?: boolean + filterable?: boolean + sensitive?: boolean + formatter?: (value: unknown, row: unknown) => string +} + +export interface UiAdapterDescriptor { + readonly id: UiAdapterId + readonly version: string + readonly contractVersion: UiAdapterContractVersion + readonly vendor: string + readonly capabilities: ReadonlySet + readonly productionEligible: boolean + readonly accessibilityBaseline: 'WCAG_2_2_AA_TARGET' +} + +export interface UiAdapter { + readonly descriptor: UiAdapterDescriptor + readonly components: { + Button: Component + TextField: Component + TextArea: Component + Select: Component + MultiSelect: Component + Checkbox: Component + DateField: Component + NumberField: Component + Dialog: Component + StatusTag: Component + InlineMessage: Component + Paginator: Component + Tabs: Component + DataGrid: Component + } +} + +export const requiredUiAdapterCapabilities: readonly UiAdapterCapability[] = Object.freeze([ + 'button', 'text-field', 'text-area', 'select', 'multi-select', 'checkbox', 'date-field', + 'number-field', 'dialog', 'status-tag', 'inline-message', 'paginator', 'tabs', 'data-grid' +]) + +export function assertUiAdapterContract(adapter: UiAdapter): void { + if (adapter.descriptor.contractVersion !== '4.0') { + throw new Error(`Unsupported UI adapter contract: ${adapter.descriptor.contractVersion}`) + } + const missing = requiredUiAdapterCapabilities.filter(x => !adapter.descriptor.capabilities.has(x)) + if (missing.length > 0) { + throw new Error(`UI adapter ${adapter.descriptor.id} is missing capabilities: ${missing.join(', ')}`) + } + const componentNames = [ + 'Button', 'TextField', 'TextArea', 'Select', 'MultiSelect', 'Checkbox', 'DateField', + 'NumberField', 'Dialog', 'StatusTag', 'InlineMessage', 'Paginator', 'Tabs', 'DataGrid' + ] as const + for (const name of componentNames) { + if (!adapter.components[name]) throw new Error(`UI adapter ${adapter.descriptor.id} has no component for ${name}`) + } +} + +export const uiAdapterKey: InjectionKey = Symbol('KArtSellUiAdapterV4') diff --git a/frontend/src/shared/ui/adapter/native/NativeButtonAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeButtonAdapter.vue new file mode 100644 index 00000000..4b549359 --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeButtonAdapter.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeCheckboxAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeCheckboxAdapter.vue new file mode 100644 index 00000000..6bff2bad --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeCheckboxAdapter.vue @@ -0,0 +1,5 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeDataGridAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeDataGridAdapter.vue new file mode 100644 index 00000000..cbca7855 --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeDataGridAdapter.vue @@ -0,0 +1,7 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeDateFieldAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeDateFieldAdapter.vue new file mode 100644 index 00000000..c5dbf570 --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeDateFieldAdapter.vue @@ -0,0 +1,7 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeDialogAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeDialogAdapter.vue new file mode 100644 index 00000000..c4ba9eae --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeDialogAdapter.vue @@ -0,0 +1,9 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeInlineMessageAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeInlineMessageAdapter.vue new file mode 100644 index 00000000..ee803d97 --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeInlineMessageAdapter.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeMultiSelectAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeMultiSelectAdapter.vue new file mode 100644 index 00000000..166d5936 --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeMultiSelectAdapter.vue @@ -0,0 +1,19 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeNumberFieldAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeNumberFieldAdapter.vue new file mode 100644 index 00000000..219c79d5 --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeNumberFieldAdapter.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativePaginatorAdapter.vue b/frontend/src/shared/ui/adapter/native/NativePaginatorAdapter.vue new file mode 100644 index 00000000..e03d2007 --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativePaginatorAdapter.vue @@ -0,0 +1,8 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeSelectAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeSelectAdapter.vue new file mode 100644 index 00000000..b2ef1c0d --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeSelectAdapter.vue @@ -0,0 +1,8 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeStatusTagAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeStatusTagAdapter.vue new file mode 100644 index 00000000..40808998 --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeStatusTagAdapter.vue @@ -0,0 +1,5 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeTabsAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeTabsAdapter.vue new file mode 100644 index 00000000..73ab0cda --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeTabsAdapter.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/src/shared/ui/adapter/native/NativeTextAreaAdapter.vue b/frontend/src/shared/ui/adapter/native/NativeTextAreaAdapter.vue new file mode 100644 index 00000000..98c4efb7 --- /dev/null +++ b/frontend/src/shared/ui/adapter/native/NativeTextAreaAdapter.vue @@ -0,0 +1,5 @@ + +