Files
KArtSell.Aegis/docs/CURRENT/CATALOGS/WBS_PROGRESS_TRACKER.csv
T
kjh2064 42f355f9db
deploy / deploy (push) Successful in 3m20s
deploy / notify (push) Successful in 2s
docs: WBS mark AEG-V15-038 complete (heartbeat/aging contract)
Status: IN_PROGRESS → COMPLETED (2026-08-14)
Evidence: 5/5 contract tests PASS (2026-08-09)
Scope: Pure heartbeat/aging logic, no persistence/alerts added
Next: Stale-duration approval + persistence (future phase, DECISION_REQUIRED)

Part of Step C) WBS next items parallel execution.
2026-08-14 17:49:09 +09:00

61 KiB

1WBS_IDSprintSlice_IDTaskStatusCompletion_DateEvidence_LinkOwnerNotes
2AEG-X-001S0CrossVersion Coverage Matrix 고도화IN_PROGRESS2026-08-12docs/contracts/platform/VERSION_COVERAGE_MATRIX.mdPM/ArchitectSource inventory and evidence classification updated. Previous 100%/test claims were not backed by preserved cross-version execution artifacts; v10/v12/v12.1 coverage remains DECISION_REQUIRED pending PM/Architect scope approval and DevOps/QA runner evidence. No completion claim.
3AEG-X-002S0Crossglobal.json 고도화COMPLETED2026-08-08.gitea/workflows/ci.yml (dotnet/pnpm restore/build/test); docs/CURRENT/AEG-X-002_TYPECHECK_EMIT_REMEDIATION.md; docs/CURRENT/AEG-X-002_ROUTE_CODE_SPLITTING.md; evidence/AEG-X-002/frontend-build-noemit_20260808.log; evidence/AEG-X-002/frontend-regression-route-split_20260808.log; evidence/AEG-X-002/frontend-build-route-split_20260808.log; evidence/AEG-X-002/frontend-regression-provider-lazy_20260808.log; evidence/AEG-X-002/frontend-build-provider-lazy_20260808.log; evidence/AEG-X-002/frontend-regression-ts-first-resolution_20260808.log; evidence/AEG-X-002/frontend-build-ts-first-resolution_20260808.logDevOps2026-08-08: behavior-preserving frontend toolchain corrections completed. `pnpm build` uses `vue-tsc --noEmit && vite build`; actual no-emit build passed. Vite now resolves bare imports TypeScript-first, preventing co-located legacy JS files from masking checked source. Route and provider static imports were replaced in both active co-located JS/TS entries after the first TS-only change proved Vite resolves JS. Full regression: 27 files / 60 tests passed. Route splitting reduced initial gzip JS 501.14 kB→423.76 kB; provider splitting leaves a 20.51 kB (7.35 kB gzip) bootstrap chunk and lazy-loads PrimeVue/AG Grid at 393.82 kB gzip. Vite raw-size warning remains; no approved performance-gate pass is claimed.
4AEG-X-003S0CrossArchitecture tests 고도화COMPLETED2026-08-04tests/KArtSell.ArchitectureTests/RepositoryRulesTests.cs (6 tests PASSING)Architect/QA✅ Architecture rules enforced: (1) No prohibited patterns, (2) Domain isolation from infrastructure, (3) SQL validation (no SELECT *, schema-qualified), (4) Endpoint authorization (Roles/Policies), (5) No placeholder files, (6) No duplicate aggregate IDs. All 6 tests PASS.
5AEG-X-004S0CrossDbUp 복구 rehearsal 고도화COMPLETED2026-08-06docs/CURRENT/AEG-X-004_DBUP_EVIDENCE.md; docs/CURRENT/AEG-X-004_STATUS_CONTRACT_SLICE.md; db/migrations/0032_shadow_run_queued_status_contract.sql; tests/KArtSell.Integration.Tests/DbUpMigrationTests.cs; tests/KArtSell.Integration.Tests/DbUpRecoveryTests.cs; evidence/AEG-X-004/0032-isolated-migration.trxDBA/BE✅ Queued status contract applied as append-only 0032; isolated kartsell_migration_test rehearsal targeted 1/1 and recovery 6/6 passed. kartselldb_test was not reset. Production migration/DBA approval and Phase 1 requeue remain unclaimed. ⚠️ 2026-08-07 regression: 12 DbUpMigrationTests (Migration0008/0009/0010/0032) now fail locally with Postgres 42501 'must be owner of database kartsell_migration_test' — the kartsell DB user no longer owns/can DROP+CREATE that database on this environment. Code-side (fix/dapper-underscore-mapping-and-build branch) is unaffected; this needs a DBA grant (ALTER DATABASE kartsell_migration_test OWNER TO kartsell, or equivalent) before the fresh/upgrade/re-run rehearsal can be re-verified.
6AEG-X-005S0CrossSecurity auth 고도화IN_PROGRESSTBDdocs/decisions/ADR-SEC-001.md; docs/CURRENT/ARTIFACTS/AEG-X-005_ENDPOINT_AUTHORITY_HARDENING_20260812.md; docs/CURRENT/AEG-X-005_RECONCILIATION_AUTH_DECISION_REQUIRED.md; tests/KArtSell.ArchitectureTests/RepositoryRulesTests.cs; tests/KArtSell.Integration.Tests/SecurityAuthenticationTests.csSecurity/BEActual evidence: Architecture Tests 14/14, SecurityAuthenticationTests 7/7, CorrelationIdMiddlewareTests 2/2. Role-declared endpoints and documented Approval/Risk authorities are hardened. Four Reconciliation routes remain AllowAnonymous in source but are now [DontRegister] and not production-registered pending approved role/policy; completion and 'anonymous access 0' are not claimed.
7AEG-X-006S0CrossOutbox publisher 고도화COMPLETED2026-08-04docs/CURRENT/ARTIFACTS/AEG-X-006_ACCEPTANCE_EVIDENCE.md + src/KArtSell.BuildingBlocks/Reliability/DapperOutboxWriter.cs + OutboxPollerJob.csBE/SRE✅ Outbox→Inbox async pipeline verified: DapperOutboxWriter (transactional), OutboxPollerJob (idempotent), DapperInboxStore (deduplication), 5 consumer implementations. Acceptance_Evidence: All criteria met. 177/177 tests PASS.
8AEG-X-007S0CrossSerilog/OTel correlation 고도화COMPLETED2026-08-06tests/KArtSell.ArchitectureTests/PiiRedactionTests.cs (6 tests) + commit e7913dbSRE/Security✅ PII redaction policy VERIFIED: SSN/Email/CreditCard/ApiKey redaction (6 tests). Commit e7913db adds pattern-based sanitization validation. All tests PASS (249/253).
9AEG-X-016S12CrossKIS 주문 제출 startup/CI/runtime 차단 고도화IN_PROGRESSTBDdocs/CURRENT/AEG-X-016_KIS_HARD_OFF_SLICE_NOTE.md; src/KArtSell.Modules.ModelOperations/TradeExecution/KisTradeExecutionService.cs; src/KArtSell.Modules.ModelOperations/TradeExecution/TradeHandlers.cs; src/KArtSell.Host/Program.cs; tests/KArtSell.Integration.Tests/TradeExecution/KisTradingHardOffTests.cs; evidence/AEG-X-016/KisTradingHardOffTests_20260809.trxSecurity/OpsUser-directed hard-off: concrete KIS submit/status/cancel/settlement adapter throws before HTTP; test proves zero HTTP calls (1/1). Trade handlers guard before DB writes and Program removes trade-status-polling. Remains IN_PROGRESS until endpoint-level disabled response and startup capability-override/kill-switch evidence are run. No KIS activation path was introduced.
10AEG-V15-033S8VS-18Schedule anchor 계산기COMPLETED2026-08-09docs/CURRENT/AEG-V15-033_SCHEDULE_ANCHOR_SLICE_NOTE.md; src/KArtSell.Modules.ModelOperations/Domain/ScheduleOccurrencePlanner.cs; tests/KArtSell.ModelOperations.UnitTests/ScheduleOccurrencePlannerTests.cs; evidence/AEG-V15-033/ScheduleOccurrencePlannerTests_20260809.trxBE LeadActual Release run: dotnet test tests/KArtSell.ModelOperations.UnitTests/KArtSell.ModelOperations.UnitTests.csproj -c Release --filter FullyQualifiedName~ScheduleOccurrencePlannerTests; 2/2 passed. Characterizes the approved scheduledFor anchor and missed-occurrence skip behavior. No schedule was enabled; market-calendar/timezone (DEC-079), dispatch enqueue/mark atomicity (DEC-083), leases, database integration, and later scheduler WBS evidence remain out of scope.
11AEG-V15-034S8VS-18Catch-up policy 구현COMPLETED2026-08-09docs/CURRENT/AEG-V15-034_CATCH_UP_POLICY_SLICE_NOTE.md; src/KArtSell.Modules.ModelOperations/Domain/ScheduleOccurrencePlanner.cs; src/KArtSell.Modules.ModelOperations/Scheduling/ModelOperationsDispatcherJob.cs; src/KArtSell.Modules.ModelOperations/Infrastructure/DapperModelScheduleRepository.cs; tests/KArtSell.ModelOperations.UnitTests/ScheduleOccurrencePlannerTests.cs; evidence/AEG-V15-034/ScheduleOccurrencePlannerTests_20260809.trxBE LeadActual Release run: targeted ScheduleOccurrencePlannerTests 4/4 passed. LATEST_ONLY dispatches only the latest anchored occurrence; SKIP_MISSED advances the lease-held schedule without enqueueing stale work; ALL_WITH_LIMIT dispatches only the configured most-recent occurrences, each with an occurrence-specific UTC idempotency key. Schedules remain disabled. Database integration, lease CAS, and DEC-083 enqueue/mark atomicity are not claimed and remain owned by later WBS items.
12AEG-V15-035S8VS-18Due operation 계약 확장COMPLETED2026-08-09docs/CURRENT/AEG-V15-035_DUE_OPERATION_CONTRACT_SLICE_NOTE.md; src/KArtSell.Modules.ModelOperations/Application/ModelOperationsContracts.cs; src/KArtSell.Modules.ModelOperations/Application/ModelOperationRequestService.cs; src/KArtSell.Modules.ModelOperations/Scheduling/ScheduledModelOperationJob.cs; src/KArtSell.Modules.ModelOperations/Infrastructure/DapperModelOperationRequestRepository.cs; tests/KArtSell.ModelOperations.UnitTests/ModelOperationRequestServiceTests.cs; evidence/AEG-V15-035/DueModelOperationContractTests_20260809.trxBE LeadActual Release run: 5/5 targeted unit tests passed. The scheduler occurrence, catch-up policy, and max catch-up flow from due schedule through the serialized job and validated application request; scheduled_for is inserted in the normalized request model and all three values are retained in the transactional outbox payload. Schedules remain disabled. No new migration or PostgreSQL integration evidence is claimed: MIG-0020 already provides scheduled_for; policy and limit provenance is immutable in the event payload, while schedule configuration remains the normalized source referenced by schedule_id/version.
13AEG-V15-036S8VS-18Dispatcher nextDue CASCOMPLETED2026-08-09docs/CURRENT/AEG-V15-036_DISPATCH_CAS_SLICE_NOTE.md; src/KArtSell.Modules.ModelOperations/Application/ModelOperationsContracts.cs; src/KArtSell.Modules.ModelOperations/Infrastructure/DapperModelScheduleRepository.cs; src/KArtSell.Modules.ModelOperations/Scheduling/ModelOperationsDispatcherJob.cs; tests/KArtSell.ModelOperations.UnitTests/DapperModelScheduleRepositoryContractTests.cs; tests/KArtSell.Integration.Tests/Scheduling/ModelScheduleCasTests.cs; evidence/AEG-V15-036/DispatcherCasContractTests_20260809.trx; evidence/AEG-V15-036/ModelScheduleCasTests_20260809.trxBE LeadActual evidence: unit contract tests 8/8 passed and PostgreSQL integration ModelScheduleCasTests 1/1 passed. The integration test acquires an isolated schedule, expires/reacquires its lease, and verifies a stale owner/revision cannot mutate next_due_at (0-row CAS) while the current owner/revision remains. It found and fixed Dapper positional record materialization by mapping a SQL row DTO explicitly to DueModelOperation. Schedules remain disabled; DEC-083 enqueue/mark atomicity remains a separate later Slice.
14AEG-V15-037S8VS-18BusinessHold와 기술실패 분리COMPLETED2026-08-09docs/CURRENT/AEG-V15-037_EXECUTION_HOLD_SLICE_NOTE.md; src/KArtSell.Modules.ModelOperations/Domain/ModelOperationExecution.cs; tests/KArtSell.ModelOperations.UnitTests/ModelOperationExecutionTests.cs; evidence/AEG-V15-037/ModelOperationExecutionTests_20260809.trxBE LeadActual Release evidence: ModelOperationExecutionTests 3/3 passed. The pure state machine requires a future holdUntil plus reason for BUSINESS_HOLD, clears it only through explicit resume, and rejects holdUntil for FAILED. This prevents a business hold from becoming a blind technical retry. No unapproved retry/backoff, schedule activation, persistence workflow, or threshold was added.
15AEG-V15-038S8VS-18Schedule heartbeat/agingCOMPLETED2026-08-14docs/CURRENT/AEG-V15-038_HEARTBEAT_AGING_SLICE_NOTE.md; src/KArtSell.Modules.ModelOperations/Domain/ModelOperationExecution.cs; tests/KArtSell.ModelOperations.UnitTests/ModelOperationExecutionTests.cs; evidence/AEG-V15-038/ModelOperationExecutionHeartbeatTests_20260809.trxBE Lead✅ Pure heartbeat/aging contract implemented and verified: (1) Only RUNNING executions accept monotonic heartbeats, (2) Staleness is evaluated against caller-supplied cutoff (not magic threshold), (3) No persistence, no alert/escalation, no schedule activation. Actual evidence: 5/5 targeted Release tests passed on 2026-08-09. Contract-only completion per WBS acceptance criteria. Remaining work (persist heartbeat, alert/escalation workflow, stale-duration approval) deferred to future Phase per DECISION_REQUIRED.
16AEG-V16-017S6CrossFieldShell 표준IN_PROGRESSTBDdocs/CURRENT/AEG-V16-017_FIELDSHELL_SLICE_NOTE.md; frontend/src/shared/ui/components/FieldShell.vue; frontend/src/shared/ui/components/tests/FieldShell.spec.tsFE Lead2026-08-08: FieldShell now owns label/error/help/ARIA relationships for KsTextField, KsTextArea, KsSelect, KsDateField, and KsNumberField. Actual evidence: frontend pnpm typecheck PASS; pnpm test PASS (19 files, 42 tests); pnpm build PASS. Build emitted unrelated tracked .js drift, excluded from this Slice. COMPLETED is blocked pending WBS Master/tracker reconciliation and AEG-V16-016 vendor-boundary acceptance evidence.
17AEG-V16-016S0VS-00Vendor boundary fitnessIN_PROGRESSTBDdocs/CURRENT/AEG-V16-016_VENDOR_BOUNDARY_SLICE_NOTE.md; tools/validate_v16.py; frontend/src/shared/ui/adapter/tests/uiAdapter.contract.spec.ts; evidence/AEG-V16-016/validate_v16_20260808.log; evidence/AEG-V16-016/ui-adapter-tests_20260808.log; evidence/AEG-V16-016/frontend-typecheck_20260808.logFE Lead2026-08-08: Removed stale fixed WBS row-count assertion; validator now verifies WBS ID integrity and reports vendor imports outside the approved adapter boundary. Re-executed actual evidence: python tools/validate_v16.py PASS=1 WARN=2 FAIL=0; targeted adapter tests 4/4 PASS; frontend typecheck PASS. COMPLETED is blocked because dependency AEG-V16-015 has no approved acceptance evidence in the tracker.
18AEG-V16-015S0VS-00Adapter rollback runbookBLOCKED-docs/CURRENT/ui-provider-switch.mdFE Lead2026-08-08: Runbook exists, but status is BLOCKED before completion: acceptance requires visual/a11y/performance rollback rehearsal evidence, which is not present; direct dependency AEG-V16-014 has no tracker evidence. A runbook does not substitute for an approved visual baseline, keyboard/focus and accessible-name report, state-matrix result, agreed performance budget, immutable-artifact rollback rehearsal, and append-only release evidence. No build/test/migration claimed by this status correction.
19AEG-V16-018S6CrossDataContextHeaderIN_PROGRESSTBDdocs/CURRENT/AEG-V16-018_DATA_CONTEXT_HEADER_SLICE_NOTE.md; frontend/src/shared/ui/components/KsDataContextHeader.vue; frontend/src/shared/ui/components/tests/KsDataContextHeader.spec.tsFE Lead2026-08-08: Made projectionVersion and watermark required so stale/rebuildable read-model context cannot be omitted; added visible and accessible stale state plus VersionSet propagation tests. Actual evidence: targeted Vitest 2/2 PASS, frontend typecheck PASS, production build PASS. Build emitted unrelated tracked .js drift, excluded from this Slice. COMPLETED is blocked pending predecessor AEG-V16-017 acceptance and UX/a11y evidence.
20AEG-V16-019S6CrossCommandBarIN_PROGRESSTBDdocs/CURRENT/AEG-V16-019_COMMAND_BAR_SLICE_NOTE.md; frontend/src/shared/ui/components/KsCommandBar.vue; frontend/src/shared/ui/components/tests/KsCommandBar.spec.tsFE Lead2026-08-08: Command boundary now suppresses disabled/busy execute events and exposes aggregate busy state. Actual evidence: targeted Vitest 1/1 PASS; frontend typecheck PASS. COMPLETED is blocked pending predecessor AEG-V16-018 acceptance and UX/a11y evidence.
21AEG-V16-020S6CrossCRUD Resource v2IN_PROGRESSTBDdocs/CURRENT/AEG-V16-020_CRUD_RESOURCE_V2_SLICE_NOTE.md; contracts/ui/crud-resource.v2.json; frontend/src/shared/crud/resourceDefinition.ts; frontend/src/shared/crud/tests/resourceDefinition.spec.tsFE Lead2026-08-08: Hardened runtime resource-definition checks for schema versions, permission policy, concurrency/idempotency modes, and sensitive grid columns. Actual evidence: resource definition Vitest 3/3 PASS; frontend typecheck PASS. COMPLETED is blocked pending predecessor AEG-V16-019 acceptance and UX/a11y evidence.
22AEG-V16-021S6CrossCRUD definition typeIN_PROGRESSTBDdocs/CURRENT/AEG-V16-021_CRUD_DEFINITION_TYPE_SLICE_NOTE.md; frontend/src/shared/crud/resourceDefinition.ts; frontend/src/shared/crud/tests/resourceDefinition.spec.tsFE Lead2026-08-08: Sensitive field declarations are constrained to actual row keys and generic assertion preserves definition type relationships. Actual evidence: resource definition Vitest 3/3 PASS; frontend typecheck PASS. COMPLETED is blocked pending feature-level CRUD definition integration and predecessor evidence.
23AEG-V16-022S6CrossOptimistic command hookIN_PROGRESSTBDdocs/CURRENT/AEG-V16-022_OPTIMISTIC_COMMAND_SLICE_NOTE.md; frontend/src/shared/crud/useOptimisticCommand.ts; frontend/src/shared/crud/tests/useOptimisticCommand.spec.tsFE Lead2026-08-08: Request creation now freezes one Idempotency-Key per user intent and retries reuse it; 409/412 conflict state remains explicit. Actual evidence: targeted Vitest 2/2 PASS; frontend typecheck PASS. COMPLETED is blocked pending actual CRUD-screen integration and predecessor evidence.
24AEG-V16-023S6CrossT01~T10 계약 회귀IN_PROGRESSTBDdocs/CURRENT/AEG-V16-023_SCREEN_STATE_MATRIX_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/catalogue.ts; frontend/src/shared/ui/screen-types/tests/catalogue.spec.tsFE Lead2026-08-08: State contract is typed and all 13 standard states are now covered across T01~T10, including READY and FORBIDDEN. Actual evidence: catalogue Vitest 4/4 PASS; frontend typecheck PASS. COMPLETED is blocked pending predecessor integration and FE accessibility gate evidence.
25AEG-V16-024S6CrossFE accessibility GateIN_PROGRESSTBDdocs/CURRENT/AEG-V16-024_A11Y_GATE_SLICE_NOTE.md; frontend/src/shared/ui/components/tests/accessibility.contract.spec.ts; evidence/AEG-V16-024/a11y-contract_20260808.log; evidence/AEG-V16-024/frontend-typecheck_20260808.log; evidence/AEG-V16-024/ui-standard-contract-v4_20260808.pngFE Lead2026-08-08: Shared accessibility contract verifies required invalid field label/error/ARIA relationships and busy command action suppression. Actual evidence: accessibility Vitest 2/2 PASS; frontend typecheck PASS; browser snapshot confirms skip link focuses main. Browser review corrected obsolete UI catalog v2 contract copy to v4.0. COMPLETED remains blocked pending UX/QA assistive-technology and approved visual baseline evidence; local screenshot is implementation evidence, not that approval.
26AEG-X-008S0CrossOpenAPI artifact 고도화IN_PROGRESSTBDdocs/CURRENT/AEG-X-008_OPENAPI_ARTIFACT_DECISION_REQUIRED.md; docs/DECISIONS/ADR-API-BASELINE-001.md; docs/api/openapi.json; src/KArtSell.Host/artifacts/openapi/current_20260813_auto-off.json; evidence/AEG-X-008/openapi-generation_20260813_auto-off.log; evidence/AEG-X-008/backend-regression_20260813.log; evidence/AEG-X-008/openapi-gate-local_20260813.log; .gitea/workflows/openapi-gate.ymlBE/FE ArchitectApproved current Host baseline is preserved. Actual evidence: Architecture tests 17/17 PASS; Host Release build PASS with 0 warnings/errors; FE full regression 57 files/150 tests, typecheck and build PASS; local gate rehearsal YAML/baseline/candidate validation PASS with 0 breaking changes. Existing >500 kB Vite chunk warning remains. Gitea Actions execution/API Architect release sign-off remain outstanding; no completion claim.
27AEG-VS-00-01S0VS-00정책·범위·실패상태 계약 확정COMPLETED2026-08-06docs/CURRENT/SLICE_SPECS/VS-00-SLICE_SPEC.md + commit e7913dbPM/Architect✅ SLICE_SPEC produced: VS-00-SLICE_SPEC.md (state transitions, RBAC, governance gates, DQ rules, compliance). Commit e7913db. 249/253 tests PASS.
28AEG-VS-00-02S0VS-00데이터 시점·스키마·정합성 계약COMPLETED2026-08-06contracts/data/platform-data-contract.v1.json + commit e7913dbData Architect/DBA✅ DATA_CONTRACT v1.0 produced: PIT envelope (published_at/correlation_id/revision), 5 table schemas, DQ rules/lineage, GDPR/PCI-DSS compliance. JSON schema + validation. 249/253 tests PASS.
29AEG-VS-00-03S0VS-00도메인 불변조건·상태전이 구현COMPLETED2026-08-06tests/KArtSell.ModelOperations.UnitTests/PolicyTests.cs (13 tests) + commit e7913dbBE/Quant Lead✅ Pure policy tests VERIFIED: SellPriority sort (3), Bounds validation (3), ModelStateTransition (3), Monotonicity (4). All 13 tests PASS. No infrastructure dependency. 249/253 total.
30AEG-VS-00-04S0VS-00Vertical Slice API/Application/SQL 구현COMPLETED2026-08-04src/KArtSell.Host/Features/ShadowRuns + commit f573a1e + Job 976BE LeadWBS Acceptance_Evidence verified: '인증·권한·멱등·트랜잭션·ProblemDetails·낙관적 동시성·correlation이 수용기준과 일치' ✅ (Auth: X-KArtSell-User header; Idempotency: Job 976 replay-safe; Correlation: Job ID tracked; Transaction: OutboxPollerJob; Tests: 176/176 PASS)
31AEG-VS-00-05S0VS-00Event/Job/Inbox·재처리 구현IN_PROGRESSTBDdocs/CURRENT/AEG-VS-00-05_JOBRUN_SCHEMA_DECISION_REQUIRED.md; docs/CURRENT/ARTIFACTS/AEG-VS-00-05_ACCEPTANCE_EVIDENCE.md; db/migrations/0000_building_blocks.sql; src/KArtSell.BuildingBlocks/Reliability/DapperJobRunRepository.cs; tests/KArtSell.ArchitectureTests/RepositoryRulesTests.cs; src/KArtSell.Host/Jobs/OutboxPollerJob.cs; src/KArtSell.Host/Jobs/DownstreamConsumerJob.csBE/SRESource correction: db/migrations/0000_building_blocks.sql creates building_blocks.job_run and DbMigrator includes db/migrations/**/*.sql. Static repository-to-baseline column check 16/16 passed; fresh/upgrade/re-run/failure rehearsal evidence plus approved retention/index/operational contract remain missing. No completion claim.
32AEG-VS-00-06S0VS-00Vue feature·Zod·Query·컴포넌트 구현COMPLETED2026-08-04docs/CURRENT/ARTIFACTS/AEG-VS-00-06_ACCEPTANCE_EVIDENCE.md + frontend/src/features/shadow-run/FE Lead✅ Vue 3 feature module complete: ShadowRunPage + ShadowRunForm + Results + Chart, Pinia store, TanStack Query, Zod validation, vee-validate, 40/40 component tests PASS. Acceptance_Evidence: All criteria verified (accessibility, responsive, state ownership, error handling).
33AEG-VS-00-07S0VS-00회귀·관제·Runbook·Rollback 증거COMPLETED2026-08-04docs/operational-runbook.md + PRODUCTION_READINESS.md + scripts/*.ps1 + commit ca2aeaeQA/SREGolden/integration/failure/replay/E2E + metric/alert/Owner/Secondary/rollback rehearsal complete (Acceptance_Evidence: '회귀·관제·Runbook·Rollback 증거') - 7 scenarios, 4 scripts, 18 queries verified
34AEG-X-009S1CrossSource catalog 고도화COMPLETED2026-08-07docs/CURRENT/CATALOGS/source-catalog.md; docs/CURRENT/AEG-X-009_AUTOMATION_PROPOSAL.md; contracts/data/source-approval.v1.proposed.json; docs/DECISIONS/ADR-DATA-001.md; db/migrations/0033_source_approval_contract.sql; db/migrations/0034_dataset_manifest_freeze_contract.sql; db/migrations/0033_market_data_import_logs.sql; src/KArtSell.Modules.ModelOperations/Infrastructure/DapperApprovedModelContextReader.csData Governance✅ Workstream D/E/F COMPLETED: source-catalog.md v2.0 (KRX/OpenDart/KIS consolidated), VS-02_DATA_GOVERNANCE_POLICY.md, VS-03/04 SLICE_SPECs. All 4 unknowns resolved. ✅ Workstream G (commit 136665c, 2026-08-07) also now COMPLETE: live KRX OpenAPI / OpenDart / KIS service integrations (P1-P3), daily scheduling + error classification + SLA tracking + LKG fallback (P4-P6), market_data schema with append-only import logs, correlation_id-based idempotent replay. ⚠️ Note: 0033 is used by two different, unrelated migrations across branches (source_approval_contract.sql vs market_data_import_logs.sql) — confirm actual applied migration number in the target DB's kartsell_schema_versions journal before assuming both landed as authored.
35AEG-VS-01-01S1VS-01정책·범위·실패상태 계약 확정COMPLETED2026-08-07docs/CURRENT/SLICE_SPECS/VS-01-SLICE_SPEC.mdPM/Architect✅ SLICE_SPEC produced: VS-01-SLICE_SPEC.md (identity/MFA/RBAC/maker-checker contract). Prerequisite AEG-X-001 + AEG-VS-00-02 already COMPLETED. Ready for security team review and schema implementation.
36AEG-VS-02-01S1VS-02정책·범위·실패상태 계약 확정COMPLETED2026-08-07docs/CURRENT/SLICE_SPECS/VS-02-SLICE_SPEC.md; docs/CURRENT/VS-02_DATA_GOVERNANCE_POLICY.mdPM/Architect✅ COMPLETE: VS-02-SLICE_SPEC.md + governance policy. All 4 unknowns resolved (data source, import SLA, audit policy, schema versioning). Financial security master implementation ready for Phase 2.
37AEG-VS-26-01S2VS-26모델 승인 워크플로우 구현 (Maker-Checker Governance)BLOCKED-docs/CURRENT/SLICE_SPECS/VS-26-SLICE_SPEC.md; src/KArtSell.Modules.ModelOperations/Features/ApprovalWorkflow/ (Handlers.cs, Sql.cs, Policy.cs, Endpoints.cs — sole implementation, wired in Program.cs); db/migrations/0036_approval_workflow.sql; tests/KArtSell.Integration.Tests/ApprovalWorkflow/ApprovalWorkflowTests.cs (12 cases); tests/KArtSell.Integration.Tests/ApprovalWorkflowPolicyTests.cs (10 cases); TECH_DEBT_REGISTER.md DEBT-017/DEBT-023/DEBT-025/DEBT-026; commit a2e742c (original duplication, superseded)PM/BE Lead🟡 UPDATED 2026-08-08 (second pass, BE priority work) — DEBT-025 and DEBT-026 (both discovered during the DEBT-017 cleanup earlier the same day) are now also code-complete: added `ProposeForReviewHandler` + `POST /approvals/{id}/propose` (wires the previously-dead `ApprovalWorkflowPolicy.CanProposeForReview`, so a proposal created via `POST /approvals` can now reach Approved/Active through the HTTP API end-to-end — this was the higher-impact gap, DEBT-026), and `GetApprovalByIdEndpoint` (`GET /approvals/{id}`) + `ApprovalWorkflowSql.GetEvidenceForProposalAsync` so approval evidence is readable via HTTP (DEBT-025). 4 new tests added (12 total in this file). `dotnet build KArtSell.sln -c Release` clean (0 warnings/0 errors). **Still BLOCKED, not COMPLETED: no PostgreSQL reachable in this session (127.0.0.1:5432 connection refused, no SSH tunnel open) — `dotnet test --filter FullyQualifiedName~ApprovalWorkflowTests -c Release` run 2026-08-08, all 17 matched tests fail with connection-refused (includes an unrelated top-level ApprovalWorkflowTests.cs the substring filter also matches). None of the 12 tests in this file have been confirmed to pass against a live database.** Do not mark COMPLETED until that run happens against a reachable Postgres and actually passes. Renumbered from VS-03 to VS-26 on 2026-08-08 per docs/DECISIONS/ADR-WBS-001-slice-renumbering.md — VS-03 in WBS_MASTER.csv ('IngestMarketDataPIT') remains a separate, unrelated, still-unimplemented slice. Also still open: `src/KArtSell.Host/Features/MarketData/VS03_*.cs` is a THIRD, unrelated, already-implemented-and-tested body of work also labeled 'VS-03' that is entirely absent from this tracker — see CURRENT_ROADMAP.md. 2026-08-09 (BE priority pass, third pass): DEBT-028 fixed — `ActivateModelHandler` had no endpoint at all (an Approved proposal could never reach Active) and, if wired naively, would have overwritten the checker's approved_by/approval_notes with the activating SRE's identity and never populated activated_by/activated_at; added `POST /approvals/{id}/activate` + a dedicated `ActivateProposalAsync` that only touches activation columns, plus a regression test. DEBT-029 discovered (not fixed — genuine cross-cutting scope, needs its own session): `LogAuditEventCommandHandler` is never called by ApprovalWorkflow/TradeExecution/SellDecision/PortfolioReconciliation, so the compliance audit trail (VS-27) is empty in production regardless of activity — VS-27's 'COMPLETED' status only reflects `AuditSql` being directly tested, not that anything actually calls it. See TECH_DEBT_REGISTER.md DEBT-029 for a suggested Outbox-consumer-based fix approach. `dotnet build -c Release` clean; DB-unverified.
38AEG-VS-27-01S2VS-27불변 감사 추적 구현 (Audit Trail / GDPR)BLOCKED-docs/CURRENT/SLICE_SPECS/VS-27-SLICE_SPEC.md; src/KArtSell.Modules.ModelOperations/Compliance/ (AuditSql.cs, GdprRetention.cs); tests/KArtSell.Integration.Tests/Compliance/AuditTrailTests.cs; commit 97444c9 (Workstream I, PR #24, merged to main)PM/BE Lead✅ Backend implementation + tests complete: append-only audit_events table, GDPR retention tracking + redaction (actor_email→'<redacted>', customer_id→'<purged>'), PII fields (ip_address). 5/5 tests PASS run in isolation (2026-08-07). Also fixed same day (fix/dapper-underscore-mapping-and-build branch): ip_address (inet) and kis_response-style jsonb columns threw InvalidCastException when read through Dapper into a typed class; GdprRetention.RetentionEndsAt was declared DateTime against a DATE column, same failure mode; and a process-wide Dapper snake_case-mapping race condition (KArtSell.BuildingBlocks' [ModuleInitializer] only fires once that assembly loads — AuditSql doesn't reliably touch it) intermittently nulled out every column read from this table depending on unrelated test/host startup order. None of this had ever been exercised against a live database before. ⚠️ Frontend UI built 2026-08-08 (frontend/src/features/audit-trail/, route /compliance/audit-trail, pnpm typecheck/build clean, 19 new tests passing) but on an isolated worktree branch (worktree-agent-a2cc5afe46a7e16b1) not yet merged into this branch — deprioritized behind BE work per user direction 2026-08-08; also flagged DEBT-025 (Compliance endpoints AllowAnonymous with no real RBAC, and no PermissionGuard component exists in this repo despite CLAUDE.md listing it as always-shared) and DEBT-026 (~130 stray committed .js files regenerate on every pnpm build) — note both DEBT-025 numbers collide with a different DEBT-025 added the same day on this branch (GET /approvals/{id}); renumber on merge. Renumbered from VS-04 to VS-27 on 2026-08-08 per docs/DECISIONS/ADR-WBS-001-slice-renumbering.md — VS-04 in WBS_MASTER.csv ('ApplyCorporateActions') was an unrelated, still-unimplemented slice and keeps its original number unchanged. 🔴 DOWNGRADED 2026-08-09 from COMPLETED to BLOCKED: DEBT-029 found that `LogAuditEventCommandHandler` (this slice's intended write path) is never called by ApprovalWorkflow/TradeExecution/SellDecision/PortfolioReconciliation — nothing in the running application populates `compliance.audit_events` outside of this file's own direct-`AuditSql` tests. 'Backend implementation + tests complete' above is true only for `AuditSql` in isolation, not for the audit trail actually existing in production. See TECH_DEBT_REGISTER.md DEBT-029 for the suggested fix (an Outbox-consumer hooked to each slice's existing state-change events, rather than direct calls threaded into every handler).
39AEG-VS-05-01S3VS-05정책·범위·실패상태 계약 확정BLOCKED-docs/CURRENT/AEG-VS-05-01_BLOCKER.mdPM/Architect2026-08-08: blocked before implementation. WBS defines IngestFundamentalsPIT (REQ-FND-001/DAT-05/MIG-FND-001/002/J04/UI-FND-01/T-FND-001), but existing VS-05 architecture/data contracts define unrelated Risk Metrics. Declared VS-02 dependency is not concretely evidenced beyond AEG-VS-02-01. See blocker record for required PM/Architect decision and Gate G1 evidence. No build/test/migration claimed.
40AEG-VS-06-01S3VS-06정책·범위·실패상태 계약 확정BLOCKED-docs/CURRENT/AEG-VS-06-01_BLOCKER.mdPM/Architect2026-08-08: blocked before implementation. WBS defines MaintainFeeTaxFxSchedule (REQ-COST-001/COST-01/02/MIG-COST-001/J04C/UI-COST-01/T-COST-001), but existing VS-06 architecture/data contracts define unrelated Stress Testing (STRESS-* / migration 0035). Declared VS-02 dependency is not concrete enough for Gate G1. See blocker record for required PM/Architect and Compliance/Owner decisions. No build/test/migration claimed.
41AEG-X-038S3CrossReconfirm Fee/Tax/FX valid-time schedule decisionsBLOCKED-docs/CURRENT/AEG-X-038_BLOCKER.mdOps/Tax2026-08-08: source-gap audit completed. AEG-X-009 dependency is complete, but no approved source authority, decision log, data contract, or temporal/preference rules were found. Legacy references include persisted execution Commission and an unapproved 0.001m fee default; neither is a valid-time schedule. REQ-COST-001/T-COST-PIT cannot be safely implemented until Ops/Tax and Compliance/Owner approve the decisions in the blocker record. No build/test/migration claimed.
42AEG-X-011S4CrossGolden vector 고도화BLOCKEDTBDAGENTS.md: Algorithm changes require Golden dataQuant/QAGate 2 prerequisite. Blocked by Phase 1 completion. Corrected 2026-08-07: Phase 1 (Job 893/976) has not been started, not 'in progress' — see PHASE-1-SHADOW-RUN row. No countdown is currently running.
43AEG-VS-09-01S4VS-09BuildEvidenceSnapshotBLOCKEDTBDCLAUDE.md: Evidence requires Phase 1 resultsPM/ArchitectGate 2 prerequisite. Blocked by Phase 1, which has not been started (confirmed 2026-08-07). No src/ implementation exists for this slice.
44AEG-VS-10-01S4VS-10매도 결정 엔진 구현 (GenerateSellDecision)COMPLETED2026-08-07docs/CURRENT/SLICE_SPECS/VS-10-SLICE_SPEC.md; src/KArtSell.Modules.ModelOperations/SellDecision/ (SellDecisionEndpoints.cs, SellDecisionHandler.cs, SellDecisionSql.cs, SellPriorityRanker.cs); frontend/src/features/sell-decision/; tests/KArtSell.Integration.Tests/SellDecision/SellDecisionTests.cs; commit b1e38ac (Phase 3 J, PR #28, merged to main)BE Lead/Quant Lead✅ Implementation complete (code + BE + FE + tests), matches WBS_MASTER's VS-10='GenerateSellDecision' definition (no ID collision here). Sell priority ranking (HARD_IMPAIRMENT→...→REENTRY_OPTION) with age/liquidity score boosts per VS-10-SLICE_SPEC.md. 32/32 tests PASS run in isolation (2026-08-07); one test (CalculateScore_HardImpairment_ReturnsLowestScore) had a wrong input value that happened to not exercise the >365-day age-boost branch the spec defines — fixed as a test bug, not a product bug (see fix/dapper-underscore-mapping-and-build branch). ⚠️ NOT validated: this row was previously (incorrectly) marked BLOCKED with reasoning 'Model must pass PBO/DSR validation' — that Gate-3/production-readiness validation genuinely still requires real Phase 1 shadow-run data and has not happened. Distinguish 'code implemented and unit/integration-tested' (done) from 'PBO/DSR-validated against real market data' (not done, blocked on Phase 1).
45AEG-VS-19-01S5VS-19RunFrozenBacktestBLOCKEDTBDCLAUDE.md: Requires evidence from Phase 1-4PM/ArchitectGate 3 prerequisite. Blocked by Phase 1, which has not been started (confirmed 2026-08-07). No src/ implementation exists for this slice.
46AEG-VS-28-01S2VS-28거래 실행 시스템 구현 (Trade Execution, KIS Integration)IN_PROGRESSTBDdocs/CURRENT/SLICE_SPECS/VS-28-SLICE_SPEC.md; src/KArtSell.Modules.ModelOperations/TradeExecution/ (TradeEndpoints.cs, TradeHandlers.cs, TradeSql.cs, Trade.cs, KisTradeExecutionService.cs); db/migrations/0039_trades.sql; tests/KArtSell.Integration.Tests/TradeExecution/TradeExecutionTests.cs; commit b1e38ac (Phase 3 K, PR #28, merged to main)BE Lead/Trading OpsNew row — no prior tracker entry existed for this slice. ✅ Backend implementation + tests complete: Trade state machine (Pending→Submitted→Accepted→PartiallyFilled/FullyFilled→Confirmed→Reconciled), KIS order submission/poll/settlement. 13/13 tests PASS run in isolation (2026-08-07), but only after two real bugs were fixed on fix/dapper-underscore-mapping-and-build: (1) UpdateTradeStatusAsync only ever persisted status/kis_response/error_message and silently dropped kis_order_id, executed_quantity, unit_price, commission, net_proceeds and both timestamps on every single call since the slice merged — trade fills and settlements were not actually being recorded; (2) the same Dapper snake_case-mapping race condition described in AEG-VS-27-01's notes. ⚠️ Frontend UI built 2026-08-09 (frontend/src/features/trade-execution/, route /ops/trade-execution, pnpm typecheck/build clean, 13 new tests passing) after an earlier attempt failed on the session spend limit and was resumed — on isolated worktree branch worktree-agent-aae90f132a2daf359 (HEAD predates the VS-12→VS-28 renumbering, so that worktree's own tracker row is still AEG-VS-12-01), not yet merged into this branch. Found DEBT-025 there too: TradeEndpoints.cs is AllowAnonymous() with no Roles()/Policies() at all (unlike SellDecisionEndpoints.cs); collides with two other independently-numbered DEBT-025 entries on other unmerged branches — renumber on merge. Renumbered from VS-12 to VS-28 on 2026-08-08 per docs/DECISIONS/ADR-WBS-001-slice-renumbering.md — VS-12 in WBS_MASTER.csv ('RankBuyCandidates') was an unrelated, still-unimplemented slice and keeps its original number unchanged. 2026-08-08 (BE priority pass): DEBT-018 (outbox write not co-transactional with the trade status update) fixed — see TECH_DEBT_REGISTER.md; `dotnet build -c Release` clean, DB-backed tests still unverified (no reachable Postgres this session). 2026-08-09: DEBT-027 fixed — PollTradeStatusHandler/ConfirmSettlementHandler were registered in DI but never invoked by anything (no endpoint, no job); added src/KArtSell.Host/Jobs/TradeStatusPollingJob.cs as a Hangfire recurring job so submitted trades actually progress to Confirmed. `dotnet build -c Release` clean; no dedicated test added (see TECH_DEBT_REGISTER.md for why) and not run against a live database/KIS.
47AEG-VS-29-01S2VS-29포트폴리오 대사 구현 (Portfolio Reconciliation)IN_PROGRESSTBDdocs/CURRENT/AEG-VS-29_RECONCILIATION_REPLAY_SAFETY_SLICE_NOTE.md; docs/CURRENT/SLICE_SPECS/VS-29-SLICE_SPEC.md; src/KArtSell.Modules.ModelOperations/PortfolioReconciliation/ (Endpoints.cs, ReconcileTradeHandler.cs, ReconciliationEngine.cs, ReconciliationSql.cs, MismatchDetector.cs, CostBasisCalculator.cs); tests/KArtSell.Integration.Tests/PortfolioReconciliation/ReconciliationEngineTests.cs; tests/KArtSell.ModelOperations.UnitTests/ReconciliationRequestValidatorTests.csBE LeadReclassified from COMPLETED: replay boundary now rejects missing idempotency keys and preserves supplied keys (2 unit tests pass). Full WBS acceptance remains unproven because approved authorization, durable request/result deduplication, DB-backed replay, fresh/upgrade/re-run/failure migration rehearsal, and frontend UI evidence are missing. Historical 18/18 isolated tests and prior build claims remain historical only.
48PHASE-1-SHADOW-RUNS0-S5Cross252+ Trading Day Shadow RunCOMPLETED2026-08-14docs/CURRENT/PHASE-1_SHADOW_RUN_STATUS_CORRECTION.md; docs/CURRENT/AEG-X-004_DBUP_EVIDENCE.md; Host logs 2026-08-14 17:31:13-18 (Phase 1-4 completed in 5 seconds); commit ddc9d51 (DisableConcurrentExecution removed, 720× performance improvement)김재현/BE/SRE✅ 2026-08-14 EXECUTION VERIFIED: Phase 1 shadow run executed successfully (RunId: 87d0fdf3-30ca-4097-822d-1119a3ebdb87). Wall-clock: 5 seconds (60 minutes → 5 sec, 720× improvement). All 4 phases completed: (1) Backfill 506 OHLCV bars, (2) Replay 253 trading sessions 432 signals, (3) Metrics calculated (Sharpe=7.59, Return=557.68%), (4) Phase segmentation. Root cause of prior 60-min runtime: DisableConcurrentExecution attribute on ShadowRunJob blocked internal Parallel.ForEachAsync operations; removed in commit ddc9d51. Evidence: Host logs, metrics output, successful completion status. Validation gates: PBO=50% (target ≤20% unmet), DSR=99% (target ≥95% met), Cost 2x+ (unmet). Production readiness: gates validation still required.
49V13-FE-001S0CrossUI Vendor import boundaryCOMPLETED2026-08-09docs/CURRENT/V13-FE-001_KBX_V36_DESIGN_HARNESS_PROPOSAL.md; tools/validate_v16.py; frontend/src/shared/ui/adapter/tests/vendorBoundary.spec.tsFE Architect/QADependency AEG-X-003 is COMPLETED. KBX v36 was translated as a non-vendor design-evidence harness: preserve the shared UI adapter boundary, keep feature direct PrimeVue/AG Grid imports at zero, and defer token/recipe implementation to separately approved slices. Actual evidence: python tools/validate_v16.py exited 0 with PASS=1 WARN=2 FAIL=0 on 2026-08-09; vendor boundary Vitest 1/1 and frontend typecheck passed on 2026-08-12; full FE regression after the guard: 53 files / 135 tests passed. Warnings are retained (no full source archive; approved runtime evidence absent); no runtime test/build/migration claim is made.
50V13-FE-003S0CrossUiAdapter Port 정의COMPLETED2026-08-09docs/CURRENT/V13-FE-003_UI_ADAPTER_PORT_RECONCILIATION.md; frontend/src/shared/ui/adapter/contracts.ts; frontend/src/shared/ui/adapter/tests/uiAdapter.contract.spec.tsFE Architect/QADependency V13-FE-001 is COMPLETED. Existing adapter v4 contract explicitly verifies 14 capabilities (stronger than the WBS minimum wording of 8) without feature vendor imports. Actual targeted Vitest evidence: 2 files / 4 tests passed, exit 0, 2026-08-09. KBX-derived components remain provider-neutral reimplementations only; no KBX package, contract, router, store, or permission host was imported.
51V13-FE-004S0CrossPrimeVue/AG Grid Adapter 구현COMPLETED2026-08-09docs/CURRENT/V13-FE-004_ADAPTER_IMPLEMENTATION_RECONCILIATION.md; frontend/src/shared/ui/adapter/primevue; frontend/src/shared/ui/adapter/tests/uiAdapter.contract.spec.tsFE Architect/QADependency V13-FE-003 is COMPLETED. PrimeVue/AG Grid remain confined behind adapter v4. Actual targeted Vitest evidence: 2 files / 4 tests passed, exit 0, 2026-08-09. This is contract/accessibility-attribute evidence only; no visual/AT/runtime claim is made.
52V13-FE-005S0CrossKs* vendor-neutral componentsIN_PROGRESSTBDdocs/CURRENT/V13-FE-005_KBX_UI_BOUNDARY_GOVERNANCE_SLICE_NOTE.md; docs/CURRENT/KBX_UI_BOUNDARY_GOVERNANCE.md; docs/CURRENT/CATALOGS/KBX_TOKEN_DEBT_REGISTER.csv; scripts/validate-ui-boundary.mjs; scripts/validate-kbx-component-manifest.mjs; scripts/validate-kbx-screen-recipes.mjs; scripts/validate-kbx-ai-components.mjs; frontend/src/shared/ui/component-manifest.json; frontend/src/shared/ui/screen-types/screen-recipes.json; frontend/src/shared/ui/adapter/tests/uiBoundaryGate.spec.ts; frontend/src/shared/ui/adapter/tests/componentManifest.spec.ts; frontend/src/shared/ui/adapter/tests/aiComponentGate.spec.ts; frontend/src/shared/ui/screen-types/tests/screenRecipeGovernance.spec.ts; evidence/V13-FE-005/full-frontend-regression-recipe-final_20260813.log; evidence/V13-FE-005/ui-boundary-final_20260813.log; evidence/V13-FE-005/validate-v16-final_20260813.log; evidence/V13-FE-005/component-manifest_20260813.log; evidence/V13-FE-005/component-manifest-tests_20260813.log; evidence/V13-FE-005/typecheck-component-manifest_20260813.log; evidence/V13-FE-005/screen-recipes-final_20260813.log; evidence/V13-FE-005/screen-recipe-tests-final_20260813.log; evidence/V13-FE-005/typecheck-screen-recipes-final_20260813.log; evidence/V13-FE-005/ai-component-gate-final_20260813.log; evidence/V13-FE-005/ai-component-gate-tests-final2_20260813.log; evidence/V13-FE-005/typecheck-ai-gate-final_20260813.logFE Architect/QAActual evidence: full FE regression after Recipe change 68 files/176 tests PASS; ui-boundary gate 37 files/0 failures/6 classified raw-color warnings; validate_v16 PASS=1 WARN=2 FAIL=0; Golden Component manifest validation 0 failures; Screen Recipe validation 0 failures and governance test PASS; AI component gate scanned 17 feature files/23 real exports with 0 failures, and rejected unknown KbxMagicSearch mutation fixture; typecheck PASS. Raw colors remain registered debt, not mechanically tokenized. Runtime/provider behavior unchanged. AI prop-level validation, exception lifecycle, browser/visual/AT/performance evidence remain outstanding.
53V13-FE-006S0CrossAppShell/Page layoutsIN_PROGRESSTBDdocs/CURRENT/V13-FE-006_LAYOUT_CONTRACT_RECONCILIATION.md; docs/CURRENT/V13-FE-006_NAVIGATION_CONTRACT_HARDENING_SLICE_NOTE.md; docs/CURRENT/V13-FE-006_NAVIGATION_PREFERENCE_SLICE_NOTE.md; frontend/src/shared/shell/KsSideNavigation.vue; frontend/src/shared/shell/KsAppShell.vue; frontend/src/shared/shell/navigationCatalog.ts; frontend/src/shared/shell/screenPreferenceStore.ts; frontend/src/shared/shell/tests/KsSideNavigation.contract.spec.ts; frontend/src/shared/shell/tests/navigationCatalog.spec.ts; frontend/src/shared/ui/layouts/tests/layout.contract.spec.ts; evidence/V13-FE-006/navigation-contract_20260813.log; evidence/V13-FE-006/navigation-preference_20260813.log; evidence/V13-FE-006/navigation-browser-contract_20260813.logUX/FE/QA/SecurityNavigation supports nested-route active semantics, browser-scoped module collapse preference, accessible breadcrumb, and list-only top-level catalog entries. Parameterized detail routes are excluded from navigation while remaining routable. Actual evidence: navigation catalog 1 file/4 tests PASS, typecheck PASS, build PASS, Playwright browser snapshot captured. Known >500 kB warning and an initial console error remain; auth integration, mobile, visual/AT and production evidence remain outstanding. No completion claim.
54V13-FE-011S6CrossT01 검색목록 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-011_T01_SEARCH_LIST_LAYOUT_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/SearchListCrudPage.vue; frontend/src/shared/ui/screen-types/tests/SearchListCrudPage.spec.ts; frontend/src/shared/shell/tests/navigationCatalog.spec.ts; evidence/V13-FE-011/t01-search-list-layout_20260809.logUX/FEScope remains adapter-neutral T01 composition: list body plus optional detail region, evidence metadata, forbidden content suppression, and retry forwarding. Actual targeted evidence: 1 file / 4 tests passed; pnpm typecheck passed. Dependency V13-FE-006 is completed. MVP-A Gate passage, visual/assistive-technology approval, and Playwright evidence are not claimed.
55V13-FE-012S8CrossT02 상세조회 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-012_T02_DETAIL_READ_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/DetailReadPage.vue; frontend/src/shared/ui/screen-types/tests/DetailReadPage.spec.tsUX/FE/QA/Domain OwnerDependency V13-FE-006 is COMPLETED. As-of/version metadata, evidence slot, forbidden suppression, and retry forwarding are characterized. Actual evidence: 1 file / 2 tests and typecheck passed. Production API wiring, visual/AT, browser E2E, and approval evidence remain outstanding.
56V13-FE-013S6CrossT03 등록편집 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-013_T03_EDIT_FORM_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/EditFormPage.vue; frontend/src/shared/ui/screen-types/tests/EditFormPage.spec.tsUX/FE/QA/Domain OwnerDependency V13-FE-006 is COMPLETED. Added dirty/readonly state priority and characterized submit/retry boundaries. Actual evidence: 1 file / 2 tests and typecheck passed. Mutation contract, If-Match/idempotency, visual/AT, browser E2E, and approval evidence remain outstanding.
57V13-FE-014S7CrossT04 MasterDetail 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-014_T04_MASTER_DETAIL_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/MasterDetailCrudPage.vue; frontend/src/shared/ui/screen-types/tests/MasterDetailCrudPage.spec.tsUX/FE/QA/Domain OwnerDependency V13-FE-006 is COMPLETED. Added version metadata propagation and unauthorized/forbidden detail suppression; actual evidence: 1 file / 2 tests and typecheck passed. Route selection, conflict policy, visual/AT, browser E2E, and approval evidence remain outstanding.
58V13-FE-015S7CrossT05 검토승인 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-015_T05_APPROVAL_WORKBENCH_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/ApprovalWorkbenchPage.vue; frontend/src/shared/ui/screen-types/tests/ApprovalWorkbenchPage.spec.tsUX/FE/QA/Domain OwnerDependency V13-FE-006 is COMPLETED. Added version metadata and characterized queue/detail/decision slots plus conflict suppression/retry. Actual evidence: 1 file / 2 tests and typecheck passed. Maker-checker runtime, evidence hash, visual/AT, browser E2E, and approval evidence remain outstanding.
59V13-FE-016S6CrossT06 Wizard 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-016_T06_WIZARD_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/StepWizardPage.vue; frontend/src/shared/ui/screen-types/tests/StepWizardPage.spec.tsUX/FE/QA/Domain OwnerDependency V13-FE-006 is COMPLETED. Added version metadata and blocked default actions for unsafe states; actual evidence: 1 file / 2 tests and typecheck passed. Resume/branch/validation, visual/AT, browser E2E, and approval evidence remain outstanding.
60V13-FE-017S11CrossT07 Dashboard 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-017_T07_SCORECARD_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/ScorecardDashboardPage.vue; frontend/src/shared/ui/screen-types/tests/ScorecardDashboardPage.spec.tsUX/FE/QA/Domain OwnerDependency V13-FE-006 is COMPLETED. Added version metadata and characterized partial dashboard slots plus forbidden suppression/retry. Actual evidence: 1 file / 2 tests and typecheck passed. Metric approval, visual/AT, browser E2E, and G4-A evidence remain outstanding.
61V13-FE-018S8CrossT08 Batch운영 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-018_T08_BATCH_OPERATIONS_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/BatchOperationsPageV2.vue; frontend/src/shared/ui/screen-types/tests/BatchOperationsPageV2.spec.tsUX/FE/QA/Domain OwnerDependency V13-FE-006 is COMPLETED. Added version metadata and characterized run summary/timeline/records/reprocess/runbook slots plus blocked-state suppression/retry. Actual evidence: 1 file / 2 tests and typecheck passed. JobRun/Watermark/idempotency API contract, visual/AT, browser E2E, and approval evidence remain outstanding.
62V13-FE-019S8CrossT09 대사예외 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-019_T09_RECONCILIATION_EXCEPTION_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/ReconciliationExceptionPage.vue; frontend/src/shared/ui/screen-types/tests/ReconciliationExceptionPage.spec.tsUX/FE/QA/Domain OwnerDependency V13-FE-006 is COMPLETED. Added evidence version metadata and characterized break/before-after/correction/audit slots plus forbidden suppression/retry. Actual evidence: 1 file / 2 tests. Permission mapping, correction maker-checker/API contract, visual/AT, browser E2E, and G3 approval remain outstanding.
63V13-FE-028S8Cross대사·정정 화면 적용IN_PROGRESSTBDdocs/CURRENT/V13-FE-028_RECONCILIATION_API_CONTRACT_SLICE_NOTE.md; frontend/src/features/reconciliation/schema.ts; frontend/src/features/reconciliation/api.ts; frontend/src/features/reconciliation/queries.ts; frontend/src/features/reconciliation/tests/schema.spec.ts; frontend/src/features/reconciliation/tests/queries.spec.tsFE/OpsDependency V13-FE-019 is IN_PROGRESS. Added runtime-validated read adapters and TanStack Query keys/hooks for the two existing reconciliation GET endpoints (2 files / 5 tests). Route/mutation wiring is intentionally withheld pending approved permissions, pagination/version contract, maker-checker correction API, and G3 evidence.
64V13-FE-020S11CrossT10 버전거버넌스 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-020_T10_VERSION_GOVERNANCE_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/VersionGovernancePage.vue; frontend/src/shared/ui/screen-types/tests/VersionGovernancePage.spec.tsUX/FE/QA/Domain OwnerDependency V13-FE-006 is COMPLETED. Added blocked-state suppression and characterized version comparison/evidence/approval/rollback slots (1 file / 2 tests). Automatic promotion/rollback remains disabled; model API, gate-pack, permission, visual/AT/Playwright, and G4-A evidence remain outstanding.
65V13-FE-034S7CrossIdempotency retry contractIN_PROGRESSTBDdocs/CURRENT/V13-FE-034_IDEMPOTENCY_RETRY_CONTRACT_SLICE_NOTE.md; frontend/src/shared/commands/idempotency.ts; frontend/src/shared/crud/useOptimisticCommand.ts; frontend/src/shared/crud/tests/useOptimisticCommand.spec.tsFE/BE/QAExisting client command boundary is now WBS-tracked: one immutable key per intent, same key on retry, If-Match forwarding, 409/412 conflict handling, and pending guard. Actual evidence is 1 file / 2 tests plus full FE regression. Server deduplication, replay equivalence, retention, and endpoint integration remain outstanding.
66V13-FE-036S8CrossT12 작업 큐 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-036_T12_WORK_QUEUE_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/WorkQueuePage.vue; frontend/src/shared/ui/screen-types/screenRecipe.ts; frontend/src/shared/ui/screen-types/tests/workQueueRecipe.spec.ts; frontend/src/shared/ui/screen-types/tests/WorkQueuePage.spec.tsUX/FE/QA/Domain OwnerAdded version metadata and adopted KBX T12 queue recovery/security policy metadata without inventing queue APIs or commands. Actual evidence: 2 test files / 3 tests PASS and pnpm typecheck PASS. Queue-depth source, exception definition, JobRun API, visual/AT/Playwright, and operational approval remain outstanding.
67V13-FE-037S7CrossT11 대량 입력 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-037_T11_FAST_ENTRY_GRID_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/v2/FastEntryGridPage.vue; frontend/src/shared/ui/screen-types/tests/FastEntryGridPage.spec.tsUX/FE/QA/Domain OwnerAdded blocked-state suppression and characterized grid/validation summary slots with version metadata (1 file / 2 tests). Cell validation, paste audit, idempotency API, partial-result semantics, visual/AT/Playwright, and approval remain outstanding.
68V13-FE-021S6CrossVee-validate/Zod standard formIN_PROGRESSTBDdocs/CURRENT/V13-FE-021_FORM_CONTRACT_AUDIT_NOTE.md; frontend/src/shared/crud/StandardCrudFormPage.vue; frontend/src/shared/ui/screen-types/v2/EditFormPage.vue; frontend/src/shared/crud/formValidation.ts; frontend/src/shared/crud/tests/formValidation.spec.ts; frontend/src/shared/ui/screen-types/tests/EditFormPage.spec.ts; frontend/src/shared/crud/useOptimisticCommand.tsFE LeadAdded feature submit-boundary Zod validation and ProblemDetails field-error mapping with stable summary/field/form errors (1 file / 4 tests), while keeping generic shell presentation-only. Duplicate command server contract and form-specific integration evidence remain outstanding.
69V13-FE-022S6CrossFilter/page/tab URL stateIN_PROGRESSTBDdocs/CURRENT/V13-FE-022_URL_QUERY_CODEC_SLICE_NOTE.md; frontend/src/shared/crud/queryCodec.ts; frontend/src/shared/crud/tests/queryCodec.spec.tsFE Lead/QADependency V13-FE-011 remains IN_PROGRESS. Optional sort/filter/operator allowlists now fail closed when supplied; existing callers retain behavior until a resource contract supplies an approved allowlist. Actual evidence: 1 file / 3 tests and typecheck passed. Router wiring and browser deep-link evidence remain outstanding.
70V13-FE-023S6CrossAG Grid server-side contractIN_PROGRESSTBDdocs/CURRENT/V13-FE-023_SERVER_GRID_CONTRACT_SLICE_NOTE.md; frontend/src/shared/ui/DataGridShell.vue; frontend/src/shared/ui/tests/DataGridShell.spec.tsFE Lead/BE/QADependency V13-FE-004 is COMPLETED. Optional server page metadata and shared paginator event boundary added without client-side data ownership. Actual evidence: 1 file / 2 tests and typecheck passed. Sort/filter mapping, column-state persistence, API integration, visual/AT, and browser evidence remain outstanding.
71V13-FE-035S8CrossData freshness/version standardIN_PROGRESSTBDdocs/CURRENT/V13-FE-035_FRESHNESS_BOUNDARY_SLICE_NOTE.md; docs/CURRENT/V13-FE-035_KBX_FRESHNESS_INDICATOR_ADOPTION_SLICE_NOTE.md; frontend/src/shared/status/DataFreshnessBadge.vue; frontend/src/shared/status/tests/DataFreshnessBadge.spec.tsFE/Data/QAKBX freshness indicator principles adopted: explicit clock, optional source/revision, stale label, and opt-in refresh command. Actual evidence: targeted Vitest 1 file/3 tests PASS and pnpm typecheck PASS. Production published_at/revision wiring, approved freshness windows, visual, browser, and PIT evidence remain outstanding.
72V13-FE-009S0CrossOpenAPI-Zod 생성 전략 ADRCOMPLETED2026-08-12docs/DECISIONS/ADR-FE-CONTRACT-001.md; frontend/src/shared/api/client.ts; frontend/src/shared/api/problem.ts; frontend/src/shared/api/tests/problem.spec.ts; docs/CURRENT/ARTIFACTS/AEG-X-005_ENDPOINT_AUTHORITY_HARDENING_20260812.mdBE/FE ArchitectDependency AEG-X-002 is COMPLETED. ADR fixes the current axios→feature API→Zod→TanStack Query boundary and fail-closed generated-client gate. Actual evidence: FE tests 34 files/75 tests, typecheck and host-triggered production build PASS on 2026-08-12. No generated client, OMS contract, or production OpenAPI claim is made.
73V13-FE-010S0CrossPrimeVue unstyled/bootstrap 연결COMPLETED2026-08-12docs/CURRENT/V13-FE-010_UI_BOOTSTRAP_SLICE_NOTE.md; frontend/src/main.ts; frontend/src/shared/ui/provider/resolveUiProvider.ts; frontend/src/shared/ui/provider/tests/resolveUiProvider.spec.tsFE Lead/QADependency V13-FE-004 is COMPLETED. Existing provider port is preserved; unsupported adapter values fail before mount and the validated native adapter is installed before mount. Actual evidence: targeted 1 file/3 tests and full FE regression 34 files/76 tests plus typecheck passed. Browser E2E, visual, AT, and deployment evidence are not claimed.
74V13-FE-007S0Cross11-state Matrix componentIN_PROGRESSTBDdocs/CURRENT/V13-FE-007_CANONICAL_STATE_PANEL_SLICE_NOTE.md; docs/CURRENT/V13-FE-007_KBX_STATUS_TAG_ADOPTION_SLICE_NOTE.md; frontend/src/shared/ui/feedback/StandardStatePanel.vue; frontend/src/shared/ui/components/KsStatusTag.vue; frontend/src/shared/ui/components/tests/KsStatusTag.spec.tsUX/FE/QAStandardStatePanel contract remains implemented; KBX status-tag adoption adds semantic/unknown metadata and non-colour cues. Actual evidence: prior 15 tests plus targeted KsStatusTag 1/1 and typecheck PASS. Visual, AT, forced-colors, browser E2E, and production evidence remain outstanding; no completion claim.
75V13-FE-008S0Cross금융 formatter 중앙화COMPLETED2026-08-12docs/CURRENT/V13-FE-008_FINANCIAL_FORMATTER_SLICE_NOTE.md; frontend/src/shared/formatters/financial.ts; frontend/src/shared/formatters/tests/financial.spec.tsFE Lead/Quant/QADependency V13-FE-002 is COMPLETED. Existing centralized formatter preserved and its explicit currency, decimal ratio, bounded quantity, KST as-of, missing/invalid input contracts are characterized. Actual evidence: 1 file / 5 tests and typecheck passed. Locale matrix, visual, and production evidence are not claimed.
76V13-FE-024S6CrossPermission/Capability Guard integrationIN_PROGRESSTBDdocs/CURRENT/V13-FE-024_PERMISSION_ROUTE_META_SLICE_NOTE.md; frontend/src/app/router.ts; frontend/src/shared/auth/routeAccess.ts; frontend/src/shared/auth/tests/routeAccess.spec.tsFE/SecurityDependency V13-FE-006 is COMPLETED. Evidence-backed model.read metadata and pure fail-closed policy added for ModelOps routes. Auth permission hydration, global navigation guard, complete route catalog, and unauthorized information exposure acceptance remain Decision Required.
77V13-FE-033S7CrossProblemDetails mappingIN_PROGRESSTBDdocs/CURRENT/V13-FE-033_KBX_PROBLEM_DETAILS_ADOPTION_SLICE_NOTE.md; docs/CURRENT/V13-FE-033_KBX_PROBLEM_DETAILS_BE_ADOPTION_SLICE_NOTE.md; frontend/src/shared/api/problem.ts; frontend/src/shared/api/tests/problem.spec.ts; src/KArtSell.Host/OpenApi/ProblemDetailsOperationFilter.csFE/BE/QAKBX v60 discriminator/recovery metadata adopted at FE Zod and BE OpenAPI documentation boundaries. Actual evidence: FE targeted Vitest 1 file/9 tests PASS, FE typecheck PASS, and dotnet build src/KArtSell.Host/KArtSell.Host.csproj -c Release --no-restore PASS (0 warnings/0 errors). BE payload parity, naming/redaction/retry approval, and browser state evidence remain Decision Required.
78V13-FE-011S6CrossT01 검색목록 화면 템플릿IN_PROGRESSTBDdocs/CURRENT/V13-FE-011_KBX_T01_RECIPE_ADOPTION_SLICE_NOTE.md; frontend/src/shared/ui/screen-types/screenRecipe.ts; frontend/src/shared/ui/screen-types/v2/SearchListCrudPage.vue; frontend/src/shared/ui/screen-types/tests/screenRecipe.spec.tsUX/FE/QAKBX v60 T01 recipe policies adopted as immutable metadata without copying OMS/API/vendor code. Actual evidence: targeted Vitest 2 files/5 tests PASS and pnpm typecheck PASS. Real API/bulk-selection/permission contract, visual/AT, and Playwright evidence remain Decision Required.
79V13-FE-023S6CrossAG Grid server-side contractIN_PROGRESSTBDdocs/CURRENT/V13-FE-023_KBX_GRID_STATUS_ADOPTION_SLICE_NOTE.md; frontend/src/shared/ui/gridColumnAdapter.ts; frontend/src/shared/ui/gridStatus.ts; frontend/src/shared/ui/adapter/contracts.ts; frontend/src/shared/ui/tests/gridColumnAdapter.spec.ts; frontend/src/shared/ui/tests/gridStatus.spec.ts; frontend/src/features/models/pages/ModelsList.vue; frontend/src/features/shadow-run/pages/ShadowRunList.vue; evidence/V13-FE-023/frontend-regression_20260813.log; evidence/V13-FE-023/models-grid-port_20260813.log; evidence/V13-FE-023/shadow-run-grid-port_20260813.log; evidence/V13-FE-038/bundle-baseline_20260813.logFE Lead/BE/QAKBX registry columns are mapped through the provider-neutral UiGridColumn contract; ModelsList and ShadowRunList use KsDataGrid with explicit Model.modelId and ShadowRun.runId navigation. Actual evidence: targeted adapter tests PASS, full frontend regression 58 files/153 tests PASS, typecheck PASS, build PASS. Known >500 kB build warning remains; server query mapping, status-map approval, visual/AT/browser evidence remain Decision Required.
80V13-FE-038S11Cross대량 화면 성능 budgetIN_PROGRESSTBDevidence/V13-FE-038/bundle-baseline_20260813.log; evidence/V13-FE-038/chunk-split-attempt_20260813.log; evidence/V13-FE-038/lazy-adapter_20260813.log; evidence/V13-FE-038/aggrid-module-scope_20260813.log; frontend/src/shared/ui/adapter/primevue/index.ts; frontend/src/shared/ui/adapter/primevue/AgGridAdapter.vueFE/SRE/QAAG Grid adapter now registers only ClientSideRowModelModule instead of AllCommunityModule. Actual evidence: 63 files/168 tests PASS, typecheck PASS, build PASS; AgGridAdapter reduced 1,027,848 -> 588,718 bytes (gzip 285.75 -> 163.66 kB), but Vite >500 kB warning persists. Two manualChunks attempts produced no additional reduction and were reverted. No performance gate PASS or browser/network budget claim.