V13-FE-006: consolidate approved UI and contract hardening
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s

This commit is contained in:
2026-08-13 02:41:00 +09:00
parent d79edae546
commit 3f293d8aa8
1278 changed files with 14384 additions and 1664 deletions
+36 -10
View File
@@ -1,9 +1,9 @@
WBS_ID,Sprint,Slice_ID,Task,Status,Completion_Date,Evidence_Link,Owner,Notes
AEG-X-001,S0,Cross,Version Coverage Matrix 고도화,COMPLETED,2026-08-04,docs/contracts/platform/VERSION_COVERAGE_MATRIX.md,PM/Architect,"✅ Version matrix: v10/v12/v12.1 compatibility (Retained/Improved/Superseded 100%), Supersession registry, Breaking change assessment, Migration roadmap"
AEG-X-001,S0,Cross,Version Coverage Matrix 고도화,IN_PROGRESS,2026-08-12,docs/contracts/platform/VERSION_COVERAGE_MATRIX.md,PM/Architect,"Source 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."
AEG-X-002,S0,Cross,global.json 고도화,COMPLETED,2026-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.log",DevOps,"2026-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."
AEG-X-003,S0,Cross,Architecture tests 고도화,COMPLETED,2026-08-04,tests/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."
AEG-X-004,S0,Cross,DbUp 복구 rehearsal 고도화,COMPLETED,2026-08-06,"docs/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.trx",DBA/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."
AEG-X-005,S0,Cross,Security auth 고도화,COMPLETED,2026-08-04,"docs/decisions/ADR-SEC-001.md + tests/KArtSell.Integration.Tests/SecurityAuthenticationTests.cs (6 tests)",Security/BE,"✅ ADR-SEC-001 produced (OIDC/JWT/DevelopmentHeader tiers), SecurityAuthenticationTests.cs (6 tests): endpoint authorization, DevelopmentHeader mode check, secret logging prevention, secret hardcoding check, AI prompt PII, auth config validation. Acceptance_Evidence verified: '비개발 무인증 접근 0, secret/log/prompt 노출 0'"
AEG-X-005,S0,Cross,Security auth 고도화,IN_PROGRESS,TBD,"docs/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.cs",Security/BE,"Actual 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."
AEG-X-006,S0,Cross,Outbox publisher 고도화,COMPLETED,2026-08-04,"docs/CURRENT/ARTIFACTS/AEG-X-006_ACCEPTANCE_EVIDENCE.md + src/KArtSell.BuildingBlocks/Reliability/DapperOutboxWriter.cs + OutboxPollerJob.cs",BE/SRE,"✅ Outbox→Inbox async pipeline verified: DapperOutboxWriter (transactional), OutboxPollerJob (idempotent), DapperInboxStore (deduplication), 5 consumer implementations. Acceptance_Evidence: All criteria met. 177/177 tests PASS."
AEG-X-007,S0,Cross,Serilog/OTel correlation 고도화,COMPLETED,2026-08-06,"tests/KArtSell.ArchitectureTests/PiiRedactionTests.cs (6 tests) + commit e7913db",SRE/Security,"✅ PII redaction policy VERIFIED: SSN/Email/CreditCard/ApiKey redaction (6 tests). Commit e7913db adds pattern-based sanitization validation. All tests PASS (249/253)."
AEG-X-016,S12,Cross,KIS 주문 제출 startup/CI/runtime 차단 고도화,IN_PROGRESS,TBD,"docs/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.trx",Security/Ops,"User-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."
@@ -23,12 +23,12 @@ AEG-V16-021,S6,Cross,CRUD definition type,IN_PROGRESS,TBD,"docs/CURRENT/AEG-V16-
AEG-V16-022,S6,Cross,Optimistic command hook,IN_PROGRESS,TBD,"docs/CURRENT/AEG-V16-022_OPTIMISTIC_COMMAND_SLICE_NOTE.md; frontend/src/shared/crud/useOptimisticCommand.ts; frontend/src/shared/crud/tests/useOptimisticCommand.spec.ts","FE Lead","2026-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."
AEG-V16-023,S6,Cross,T01~T10 계약 회귀,IN_PROGRESS,TBD,"docs/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.ts","FE Lead","2026-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."
AEG-V16-024,S6,Cross,FE accessibility Gate,IN_PROGRESS,TBD,"docs/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.png","FE Lead","2026-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."
AEG-X-008,S0,Cross,OpenAPI artifact 고도화,COMPLETED,2026-08-04,.gitea/workflows/openapi-gate.yml + docs/api/openapi.json,BE/FE Architect,"✅ OpenAPI diff gate implemented: CI/CD automation detects breaking changes (3 checks: parameter removal, status code removal, field removal), blocks merge without approval, auto-comments on PR"
AEG-X-008,S0,Cross,OpenAPI artifact 고도화,IN_PROGRESS,TBD,"docs/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.yml",BE/FE Architect,"Approved 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."
AEG-VS-00-01,S0,VS-00,정책·범위·실패상태 계약 확정,COMPLETED,2026-08-06,"docs/CURRENT/SLICE_SPECS/VS-00-SLICE_SPEC.md + commit e7913db",PM/Architect,"✅ SLICE_SPEC produced: VS-00-SLICE_SPEC.md (state transitions, RBAC, governance gates, DQ rules, compliance). Commit e7913db. 249/253 tests PASS."
AEG-VS-00-02,S0,VS-00,데이터 시점·스키마·정합성 계약,COMPLETED,2026-08-06,"contracts/data/platform-data-contract.v1.json + commit e7913db",Data 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."
AEG-VS-00-03,S0,VS-00,도메인 불변조건·상태전이 구현,COMPLETED,2026-08-06,"tests/KArtSell.ModelOperations.UnitTests/PolicyTests.cs (13 tests) + commit e7913db",BE/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."
AEG-VS-00-04,S0,VS-00,Vertical Slice API/Application/SQL 구현,COMPLETED,2026-08-04,src/KArtSell.Host/Features/ShadowRuns + commit f573a1e + Job 976,BE Lead,"WBS 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)"
AEG-VS-00-05,S0,VS-00,Event/Job/Inbox·재처리 구현,COMPLETED,2026-08-04,"docs/CURRENT/ARTIFACTS/AEG-VS-00-05_ACCEPTANCE_EVIDENCE.md + src/KArtSell.Host/Jobs/OutboxPollerJob.cs + DownstreamConsumerJob.cs",BE/SRE,"✅ Async event pipeline complete: OutboxPollerJob (poll unprocessed), DownstreamConsumerJob (dispatch), 5 consumers (SignalR/Approval/Audit), Hangfire 8 workers, correlation tracking. Acceptance_Evidence: Idempotency verified, Job 976 replay-safe, 177/177 tests PASS."
AEG-VS-00-05,S0,VS-00,Event/Job/Inbox·재처리 구현,IN_PROGRESS,TBD,"docs/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.cs",BE/SRE,"Source 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."
AEG-VS-00-06,S0,VS-00,Vue feature·Zod·Query·컴포넌트 구현,COMPLETED,2026-08-04,"docs/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)."
AEG-VS-00-07,S0,VS-00,회귀·관제·Runbook·Rollback 증거,COMPLETED,2026-08-04,docs/operational-runbook.md + PRODUCTION_READINESS.md + scripts/*.ps1 + commit ca2aeae,QA/SRE,"Golden/integration/failure/replay/E2E + metric/alert/Owner/Secondary/rollback rehearsal complete (Acceptance_Evidence: '회귀·관제·Runbook·Rollback 증거') - 7 scenarios, 4 scripts, 18 queries verified"
AEG-X-009,S1,Cross,Source catalog 고도화,COMPLETED,2026-08-07,"docs/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.cs",Data 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."
@@ -43,12 +43,38 @@ AEG-X-011,S4,Cross,Golden vector 고도화,BLOCKED,TBD,"AGENTS.md: Algorithm cha
AEG-VS-09-01,S4,VS-09,BuildEvidenceSnapshot,BLOCKED,TBD,"CLAUDE.md: Evidence requires Phase 1 results",PM/Architect,"Gate 2 prerequisite. Blocked by Phase 1, which has not been started (confirmed 2026-08-07). No src/ implementation exists for this slice."
AEG-VS-10-01,S4,VS-10,매도 결정 엔진 구현 (GenerateSellDecision),COMPLETED,2026-08-07,"docs/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)."
AEG-VS-19-01,S5,VS-19,RunFrozenBacktest,BLOCKED,TBD,"CLAUDE.md: Requires evidence from Phase 1-4",PM/Architect,"Gate 3 prerequisite. Blocked by Phase 1, which has not been started (confirmed 2026-08-07). No src/ implementation exists for this slice."
AEG-VS-28-01,S2,VS-28,"거래 실행 시스템 구현 (Trade Execution, KIS Integration)",COMPLETED,2026-08-07,"docs/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 Ops,"New 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."
AEG-VS-29-01,S2,VS-29,포트폴리오 대사 구현 (Portfolio Reconciliation),COMPLETED,2026-08-07,"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/EvaluationReconciliationPlannerTests.cs; commit b1e38ac (Phase 3 L, PR #28, merged to main); commit 4059828 (fix: missing model_operations.models table breaking every fresh DB, PR #29, merged to main same day)",BE Lead,"New row — no prior tracker entry existed for this slice. ✅ Backend implementation + tests complete: Sell Decision → Trade → Holdings reconciliation, cost-basis calculation, mismatch detection. 18/18 tests PASS run in isolation (2026-08-07). Note this slice's own merge (PR #28) shipped with a missing model_operations.models table that broke every fresh-database migration; that was caught and fixed same day in PR #29 — a reminder that this branch's fresh-install DbUp path had not actually been rehearsed before merge. ⚠️ No frontend UI yet — an attempt was started 2026-08-08 but the background agent building it failed (hit the session's monthly spend limit) before producing any committed code; not resumed this session. Renumbered from VS-14 to VS-29 on 2026-08-08 per docs/DECISIONS/ADR-WBS-001-slice-renumbering.md — VS-14 in WBS_MASTER.csv ('GenerateDailyRecommendations') was an unrelated, still-unimplemented slice and keeps its original number unchanged. 2026-08-08 (BE priority pass): DEBT-018 (outbox writes for TradeReconciled/ReconciliationMismatchAlert not co-transactional with the holding/log write) fixed — see TECH_DEBT_REGISTER.md; `dotnet build -c Release` clean, DB-backed tests still unverified (no reachable Postgres this session)."
AEG-VS-28-01,S2,VS-28,"거래 실행 시스템 구현 (Trade Execution, KIS Integration)",IN_PROGRESS,TBD,"docs/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 Ops,"New 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."
AEG-VS-29-01,S2,VS-29,포트폴리오 대사 구현 (Portfolio Reconciliation),IN_PROGRESS,TBD,"docs/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.cs",BE Lead,"Reclassified 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."
PHASE-1-SHADOW-RUN,S0-S5,Cross,252+ Trading Day Shadow Run,BLOCKED,TBD,"docs/CURRENT/PHASE-1_SHADOW_RUN_STATUS_CORRECTION.md; docs/CURRENT/AEG-X-004_DBUP_EVIDENCE.md; docs/CURRENT/PHASE-1_REQUEUE_READINESS.md; docs/CURRENT/PHASE-1_EXECUTION_EVIDENCE_PLAN.md; docs/CURRENT/PHASE-1_PREFLIGHT_20260806.md; docs/CURRENT/PHASE-1_PRODUCTION_PREFLIGHT_20260806.md; evidence/AEG-X-004/production-readonly-preflight-20260806.md; db/migrations/0032_shadow_run_queued_status_contract.sql; logs/phase-1-execution.log; logs/host-startup-20260804-173000.log",김재현/BE/SRE,"Read-only preflight: active DbUp journal public.kartsell_schema_versions contains 0032 and check_status includes Queued. Capabilities remain order/KIS/client publication OFF. Server-side dataset_manifest, model_version_registry, evidence_snapshot, and release_evidence_bundle contain no approved/frozen rows; no RunId/JobId/enqueue created. Blocked pending approved server-side VersionSet. Re-confirmed 2026-08-07: still no RunId/JobId exists anywhere in this workspace or its evidence trail; nothing changed on this row this session. Any future document that claims this row is RUNNING must cite a real RunId/JobId — do not restate the earlier (already-corrected) false claim."
V13-FE-001,S0,Cross,UI Vendor import boundary,COMPLETED,2026-08-09,"docs/CURRENT/V13-FE-001_KBX_V36_DESIGN_HARNESS_PROPOSAL.md; tools/validate_v16.py",FE Architect/QA,"Dependency 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. Warnings are retained (no full source archive; approved runtime evidence absent); no runtime test/build/migration claim is made."
V13-FE-001,S0,Cross,UI Vendor import boundary,COMPLETED,2026-08-09,"docs/CURRENT/V13-FE-001_KBX_V36_DESIGN_HARNESS_PROPOSAL.md; tools/validate_v16.py; frontend/src/shared/ui/adapter/tests/vendorBoundary.spec.ts",FE Architect/QA,"Dependency 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."
V13-FE-003,S0,Cross,UiAdapter Port 정의,COMPLETED,2026-08-09,"docs/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.ts",FE Architect/QA,"Dependency 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."
V13-FE-004,S0,Cross,PrimeVue/AG Grid Adapter 구현,COMPLETED,2026-08-09,"docs/CURRENT/V13-FE-004_ADAPTER_IMPLEMENTATION_RECONCILIATION.md; frontend/src/shared/ui/adapter/primevue; frontend/src/shared/ui/adapter/tests/uiAdapter.contract.spec.ts",FE Architect/QA,"Dependency 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."
V13-FE-005,S0,Cross,Ks* vendor-neutral components,COMPLETED,2026-08-09,"docs/CURRENT/V13-FE-005_KBX_FORM_COMPONENT_ADOPTION.md; frontend/src/shared/ui/components/KsFormGrid.vue; frontend/src/shared/ui/components/KsFormSection.vue; frontend/src/shared/ui/components/KsFormSpan.vue; frontend/src/shared/ui/components/KsValidationSummary.vue; frontend/src/shared/ui/components/tests/KsFormLayouts.spec.ts",FE Architect/QA,"Dependency V13-FE-004 is COMPLETED. Reimplemented only KBX presentation-only form components against existing K-ArtSell tokens; no KBX package, contracts, provider dependency, routing, permissions, or business policy imported. Actual evidence: targeted Vitest 2 files / 6 tests passed and pnpm typecheck exit 0 on 2026-08-09. Visual/AT/performance baseline remains outside this Slice."
V13-FE-006,S0,Cross,AppShell/Page layouts,COMPLETED,2026-08-09,"docs/CURRENT/V13-FE-006_LAYOUT_CONTRACT_RECONCILIATION.md; frontend/src/shared/ui/layouts/tests/layout.contract.spec.ts; frontend/src/shared/ui/layouts/AppShellLayout.vue; frontend/src/shared/ui/layouts/PageLayout.vue",UX/FE/QA/Security,"Dependency V13-FE-005 is COMPLETED. Preserved the existing slot-based layout rather than importing KBX's coupled workspace shell. Actual DOM contract evidence: 1 file / 2 tests passed, exit 0, 2026-08-09; verifies skip navigation, structural landmarks, default automation OFF boundary, and evidence/aside/footer separation. No visual/AT/E2E claim is made."
V13-FE-011,S6,Cross,T01 검색목록 화면 템플릿,IN_PROGRESS,TBD,"docs/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.log",UX/FE,"2026-08-09: Scope limited to adapter-neutral T01 composition: list body plus optional detail region through CrudWorkspaceLayout and read-only component catalogue visibility in the Design System menu; WBS workspace remains hidden. Actual execution evidence: targeted Vitest 2 files / 3 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."
V13-FE-005,S0,Cross,Ks* vendor-neutral components,IN_PROGRESS, TBD,"docs/CURRENT/V13-FE-005_KBX_FORM_COMPONENT_ADOPTION.md; docs/CURRENT/V13-FE-005_MODELS_LIST_VENDOR_BOUNDARY_SLICE_NOTE.md; docs/CURRENT/V13-FE-005_SHADOW_RUN_VENDOR_BOUNDARY_SLICE_NOTE.md; docs/CURRENT/V13-FE-005_COMPONENT_TEMPLATE_TEST_HARDENING_SLICE_NOTE.md; frontend/src/shared/ui/components/KsFormGrid.vue; frontend/src/shared/ui/components/KsFormSection.vue; frontend/src/shared/ui/components/KsFormSpan.vue; frontend/src/shared/ui/components/KsValidationSummary.vue; frontend/src/shared/ui/components/tests/KsCoreControls.contract.spec.ts; frontend/src/features/models/pages/ModelsList.vue; frontend/src/features/shadow-run/pages/ShadowRunList.vue; evidence/V13-FE-005/component-template-tests_20260813.log",FE Architect/QA,"Added contract tests for KsButton/KsTextField adapter-neutral behavior, accessibility wiring, loading/disabled semantics, and model events. Actual evidence: targeted 1 file/3 tests PASS, full frontend regression 59 files/156 tests PASS, typecheck PASS, build PASS. Known >500 kB build warning remains; visual/AT/browser/performance evidence remain outstanding. No completion claim."
V13-FE-006,S0,Cross,AppShell/Page layouts,IN_PROGRESS,TBD,"docs/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.log",UX/FE/QA/Security,"Navigation 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."
V13-FE-011,S6,Cross,T01 검색목록 화면 템플릿,IN_PROGRESS,TBD,"docs/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.log",UX/FE,"Scope 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."
V13-FE-012,S8,Cross,T02 상세조회 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Dependency 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."
V13-FE-013,S6,Cross,T03 등록편집 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Dependency 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."
V13-FE-014,S7,Cross,T04 MasterDetail 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Dependency 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."
V13-FE-015,S7,Cross,T05 검토승인 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Dependency 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."
V13-FE-016,S6,Cross,T06 Wizard 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Dependency 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."
V13-FE-017,S11,Cross,T07 Dashboard 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Dependency 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."
V13-FE-018,S8,Cross,T08 Batch운영 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Dependency 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."
V13-FE-019,S8,Cross,T09 대사예외 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Dependency 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."
V13-FE-028,S8,Cross,대사·정정 화면 적용,IN_PROGRESS,TBD,"docs/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.ts",FE/Ops,"Dependency 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."
V13-FE-020,S11,Cross,T10 버전거버넌스 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Dependency 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."
V13-FE-034,S7,Cross,Idempotency retry contract,IN_PROGRESS,TBD,"docs/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.ts",FE/BE/QA,"Existing 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."
V13-FE-036,S8,Cross,T12 작업 큐 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Added 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."
V13-FE-037,S7,Cross,T11 대량 입력 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA/Domain Owner,"Added 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."
V13-FE-021,S6,Cross,Vee-validate/Zod standard form,IN_PROGRESS,TBD,"docs/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.ts",FE Lead,"Added 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."
V13-FE-022,S6,Cross,Filter/page/tab URL state,IN_PROGRESS,TBD,"docs/CURRENT/V13-FE-022_URL_QUERY_CODEC_SLICE_NOTE.md; frontend/src/shared/crud/queryCodec.ts; frontend/src/shared/crud/tests/queryCodec.spec.ts",FE Lead/QA,"Dependency 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."
V13-FE-023,S6,Cross,AG Grid server-side contract,IN_PROGRESS,TBD,"docs/CURRENT/V13-FE-023_SERVER_GRID_CONTRACT_SLICE_NOTE.md; frontend/src/shared/ui/DataGridShell.vue; frontend/src/shared/ui/tests/DataGridShell.spec.ts",FE Lead/BE/QA,"Dependency 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."
V13-FE-035,S8,Cross,Data freshness/version standard,IN_PROGRESS,TBD,"docs/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.ts",FE/Data/QA,"KBX 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."
V13-FE-009,S0,Cross,OpenAPI-Zod 생성 전략 ADR,COMPLETED,2026-08-12,"docs/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.md",BE/FE Architect,"Dependency 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."
V13-FE-010,S0,Cross,PrimeVue unstyled/bootstrap 연결,COMPLETED,2026-08-12,"docs/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.ts",FE Lead/QA,"Dependency 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."
V13-FE-007,S0,Cross,11-state Matrix component,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA,"StandardStatePanel 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."
V13-FE-008,S0,Cross,금융 formatter 중앙화,COMPLETED,2026-08-12,"docs/CURRENT/V13-FE-008_FINANCIAL_FORMATTER_SLICE_NOTE.md; frontend/src/shared/formatters/financial.ts; frontend/src/shared/formatters/tests/financial.spec.ts",FE Lead/Quant/QA,"Dependency 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."
V13-FE-024,S6,Cross,Permission/Capability Guard integration,IN_PROGRESS,TBD,"docs/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.ts",FE/Security,"Dependency 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."
V13-FE-033,S7,Cross,ProblemDetails mapping,IN_PROGRESS,TBD,"docs/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.cs",FE/BE/QA,"KBX 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."
V13-FE-011,S6,Cross,T01 검색목록 화면 템플릿,IN_PROGRESS,TBD,"docs/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.ts",UX/FE/QA,"KBX 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."
V13-FE-023,S6,Cross,AG Grid server-side contract,IN_PROGRESS,TBD,"docs/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.log",FE Lead/BE/QA,"KBX 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."
V13-FE-038,S11,Cross,대량 화면 성능 budget,IN_PROGRESS,TBD,"evidence/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.vue",FE/SRE/QA,"AG 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."
1 WBS_ID Sprint Slice_ID Task Status Completion_Date Evidence_Link Owner Notes
2 AEG-X-001 S0 Cross Version Coverage Matrix 고도화 COMPLETED IN_PROGRESS 2026-08-04 2026-08-12 docs/contracts/platform/VERSION_COVERAGE_MATRIX.md PM/Architect ✅ Version matrix: v10/v12/v12.1 compatibility (Retained/Improved/Superseded 100%), Supersession registry, Breaking change assessment, Migration roadmap Source 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.
3 AEG-X-002 S0 Cross global.json 고도화 COMPLETED 2026-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.log DevOps 2026-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.
4 AEG-X-003 S0 Cross Architecture tests 고도화 COMPLETED 2026-08-04 tests/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.
5 AEG-X-004 S0 Cross DbUp 복구 rehearsal 고도화 COMPLETED 2026-08-06 docs/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.trx DBA/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.
6 AEG-X-005 S0 Cross Security auth 고도화 COMPLETED IN_PROGRESS 2026-08-04 TBD docs/decisions/ADR-SEC-001.md + tests/KArtSell.Integration.Tests/SecurityAuthenticationTests.cs (6 tests) docs/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.cs Security/BE ✅ ADR-SEC-001 produced (OIDC/JWT/DevelopmentHeader tiers), SecurityAuthenticationTests.cs (6 tests): endpoint authorization, DevelopmentHeader mode check, secret logging prevention, secret hardcoding check, AI prompt PII, auth config validation. Acceptance_Evidence verified: '비개발 무인증 접근 0, secret/log/prompt 노출 0' Actual 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.
7 AEG-X-006 S0 Cross Outbox publisher 고도화 COMPLETED 2026-08-04 docs/CURRENT/ARTIFACTS/AEG-X-006_ACCEPTANCE_EVIDENCE.md + src/KArtSell.BuildingBlocks/Reliability/DapperOutboxWriter.cs + OutboxPollerJob.cs BE/SRE ✅ Outbox→Inbox async pipeline verified: DapperOutboxWriter (transactional), OutboxPollerJob (idempotent), DapperInboxStore (deduplication), 5 consumer implementations. Acceptance_Evidence: All criteria met. 177/177 tests PASS.
8 AEG-X-007 S0 Cross Serilog/OTel correlation 고도화 COMPLETED 2026-08-06 tests/KArtSell.ArchitectureTests/PiiRedactionTests.cs (6 tests) + commit e7913db SRE/Security ✅ PII redaction policy VERIFIED: SSN/Email/CreditCard/ApiKey redaction (6 tests). Commit e7913db adds pattern-based sanitization validation. All tests PASS (249/253).
9 AEG-X-016 S12 Cross KIS 주문 제출 startup/CI/runtime 차단 고도화 IN_PROGRESS TBD docs/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.trx Security/Ops User-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.
23 AEG-V16-022 S6 Cross Optimistic command hook IN_PROGRESS TBD docs/CURRENT/AEG-V16-022_OPTIMISTIC_COMMAND_SLICE_NOTE.md; frontend/src/shared/crud/useOptimisticCommand.ts; frontend/src/shared/crud/tests/useOptimisticCommand.spec.ts FE Lead 2026-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.
24 AEG-V16-023 S6 Cross T01~T10 계약 회귀 IN_PROGRESS TBD docs/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.ts FE Lead 2026-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.
25 AEG-V16-024 S6 Cross FE accessibility Gate IN_PROGRESS TBD docs/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.png FE Lead 2026-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.
26 AEG-X-008 S0 Cross OpenAPI artifact 고도화 COMPLETED IN_PROGRESS 2026-08-04 TBD .gitea/workflows/openapi-gate.yml + docs/api/openapi.json docs/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.yml BE/FE Architect ✅ OpenAPI diff gate implemented: CI/CD automation detects breaking changes (3 checks: parameter removal, status code removal, field removal), blocks merge without approval, auto-comments on PR Approved 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.
27 AEG-VS-00-01 S0 VS-00 정책·범위·실패상태 계약 확정 COMPLETED 2026-08-06 docs/CURRENT/SLICE_SPECS/VS-00-SLICE_SPEC.md + commit e7913db PM/Architect ✅ SLICE_SPEC produced: VS-00-SLICE_SPEC.md (state transitions, RBAC, governance gates, DQ rules, compliance). Commit e7913db. 249/253 tests PASS.
28 AEG-VS-00-02 S0 VS-00 데이터 시점·스키마·정합성 계약 COMPLETED 2026-08-06 contracts/data/platform-data-contract.v1.json + commit e7913db Data 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.
29 AEG-VS-00-03 S0 VS-00 도메인 불변조건·상태전이 구현 COMPLETED 2026-08-06 tests/KArtSell.ModelOperations.UnitTests/PolicyTests.cs (13 tests) + commit e7913db BE/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.
30 AEG-VS-00-04 S0 VS-00 Vertical Slice API/Application/SQL 구현 COMPLETED 2026-08-04 src/KArtSell.Host/Features/ShadowRuns + commit f573a1e + Job 976 BE Lead WBS 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)
31 AEG-VS-00-05 S0 VS-00 Event/Job/Inbox·재처리 구현 COMPLETED IN_PROGRESS 2026-08-04 TBD docs/CURRENT/ARTIFACTS/AEG-VS-00-05_ACCEPTANCE_EVIDENCE.md + src/KArtSell.Host/Jobs/OutboxPollerJob.cs + DownstreamConsumerJob.cs docs/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.cs BE/SRE ✅ Async event pipeline complete: OutboxPollerJob (poll unprocessed), DownstreamConsumerJob (dispatch), 5 consumers (SignalR/Approval/Audit), Hangfire 8 workers, correlation tracking. Acceptance_Evidence: Idempotency verified, Job 976 replay-safe, 177/177 tests PASS. Source 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.
32 AEG-VS-00-06 S0 VS-00 Vue feature·Zod·Query·컴포넌트 구현 COMPLETED 2026-08-04 docs/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).
33 AEG-VS-00-07 S0 VS-00 회귀·관제·Runbook·Rollback 증거 COMPLETED 2026-08-04 docs/operational-runbook.md + PRODUCTION_READINESS.md + scripts/*.ps1 + commit ca2aeae QA/SRE Golden/integration/failure/replay/E2E + metric/alert/Owner/Secondary/rollback rehearsal complete (Acceptance_Evidence: '회귀·관제·Runbook·Rollback 증거') - 7 scenarios, 4 scripts, 18 queries verified
34 AEG-X-009 S1 Cross Source catalog 고도화 COMPLETED 2026-08-07 docs/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.cs Data 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.
43 AEG-VS-09-01 S4 VS-09 BuildEvidenceSnapshot BLOCKED TBD CLAUDE.md: Evidence requires Phase 1 results PM/Architect Gate 2 prerequisite. Blocked by Phase 1, which has not been started (confirmed 2026-08-07). No src/ implementation exists for this slice.
44 AEG-VS-10-01 S4 VS-10 매도 결정 엔진 구현 (GenerateSellDecision) COMPLETED 2026-08-07 docs/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).
45 AEG-VS-19-01 S5 VS-19 RunFrozenBacktest BLOCKED TBD CLAUDE.md: Requires evidence from Phase 1-4 PM/Architect Gate 3 prerequisite. Blocked by Phase 1, which has not been started (confirmed 2026-08-07). No src/ implementation exists for this slice.
46 AEG-VS-28-01 S2 VS-28 거래 실행 시스템 구현 (Trade Execution, KIS Integration) COMPLETED IN_PROGRESS 2026-08-07 TBD docs/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 Ops New 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.
47 AEG-VS-29-01 S2 VS-29 포트폴리오 대사 구현 (Portfolio Reconciliation) COMPLETED IN_PROGRESS 2026-08-07 TBD 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/EvaluationReconciliationPlannerTests.cs; commit b1e38ac (Phase 3 L, PR #28, merged to main); commit 4059828 (fix: missing model_operations.models table breaking every fresh DB, PR #29, merged to main same day) docs/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.cs BE Lead New row — no prior tracker entry existed for this slice. ✅ Backend implementation + tests complete: Sell Decision → Trade → Holdings reconciliation, cost-basis calculation, mismatch detection. 18/18 tests PASS run in isolation (2026-08-07). Note this slice's own merge (PR #28) shipped with a missing model_operations.models table that broke every fresh-database migration; that was caught and fixed same day in PR #29 — a reminder that this branch's fresh-install DbUp path had not actually been rehearsed before merge. ⚠️ No frontend UI yet — an attempt was started 2026-08-08 but the background agent building it failed (hit the session's monthly spend limit) before producing any committed code; not resumed this session. Renumbered from VS-14 to VS-29 on 2026-08-08 per docs/DECISIONS/ADR-WBS-001-slice-renumbering.md — VS-14 in WBS_MASTER.csv ('GenerateDailyRecommendations') was an unrelated, still-unimplemented slice and keeps its original number unchanged. 2026-08-08 (BE priority pass): DEBT-018 (outbox writes for TradeReconciled/ReconciliationMismatchAlert not co-transactional with the holding/log write) fixed — see TECH_DEBT_REGISTER.md; `dotnet build -c Release` clean, DB-backed tests still unverified (no reachable Postgres this session). Reclassified 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.
48 PHASE-1-SHADOW-RUN S0-S5 Cross 252+ Trading Day Shadow Run BLOCKED TBD docs/CURRENT/PHASE-1_SHADOW_RUN_STATUS_CORRECTION.md; docs/CURRENT/AEG-X-004_DBUP_EVIDENCE.md; docs/CURRENT/PHASE-1_REQUEUE_READINESS.md; docs/CURRENT/PHASE-1_EXECUTION_EVIDENCE_PLAN.md; docs/CURRENT/PHASE-1_PREFLIGHT_20260806.md; docs/CURRENT/PHASE-1_PRODUCTION_PREFLIGHT_20260806.md; evidence/AEG-X-004/production-readonly-preflight-20260806.md; db/migrations/0032_shadow_run_queued_status_contract.sql; logs/phase-1-execution.log; logs/host-startup-20260804-173000.log 김재현/BE/SRE Read-only preflight: active DbUp journal public.kartsell_schema_versions contains 0032 and check_status includes Queued. Capabilities remain order/KIS/client publication OFF. Server-side dataset_manifest, model_version_registry, evidence_snapshot, and release_evidence_bundle contain no approved/frozen rows; no RunId/JobId/enqueue created. Blocked pending approved server-side VersionSet. Re-confirmed 2026-08-07: still no RunId/JobId exists anywhere in this workspace or its evidence trail; nothing changed on this row this session. Any future document that claims this row is RUNNING must cite a real RunId/JobId — do not restate the earlier (already-corrected) false claim.
49 V13-FE-001 S0 Cross UI Vendor import boundary COMPLETED 2026-08-09 docs/CURRENT/V13-FE-001_KBX_V36_DESIGN_HARNESS_PROPOSAL.md; tools/validate_v16.py docs/CURRENT/V13-FE-001_KBX_V36_DESIGN_HARNESS_PROPOSAL.md; tools/validate_v16.py; frontend/src/shared/ui/adapter/tests/vendorBoundary.spec.ts FE Architect/QA Dependency 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. Warnings are retained (no full source archive; approved runtime evidence absent); no runtime test/build/migration claim is made. Dependency 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.
50 V13-FE-003 S0 Cross UiAdapter Port 정의 COMPLETED 2026-08-09 docs/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.ts FE Architect/QA Dependency 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.
51 V13-FE-004 S0 Cross PrimeVue/AG Grid Adapter 구현 COMPLETED 2026-08-09 docs/CURRENT/V13-FE-004_ADAPTER_IMPLEMENTATION_RECONCILIATION.md; frontend/src/shared/ui/adapter/primevue; frontend/src/shared/ui/adapter/tests/uiAdapter.contract.spec.ts FE Architect/QA Dependency 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.
52 V13-FE-005 S0 Cross Ks* vendor-neutral components COMPLETED IN_PROGRESS 2026-08-09 TBD docs/CURRENT/V13-FE-005_KBX_FORM_COMPONENT_ADOPTION.md; frontend/src/shared/ui/components/KsFormGrid.vue; frontend/src/shared/ui/components/KsFormSection.vue; frontend/src/shared/ui/components/KsFormSpan.vue; frontend/src/shared/ui/components/KsValidationSummary.vue; frontend/src/shared/ui/components/tests/KsFormLayouts.spec.ts docs/CURRENT/V13-FE-005_KBX_FORM_COMPONENT_ADOPTION.md; docs/CURRENT/V13-FE-005_MODELS_LIST_VENDOR_BOUNDARY_SLICE_NOTE.md; docs/CURRENT/V13-FE-005_SHADOW_RUN_VENDOR_BOUNDARY_SLICE_NOTE.md; docs/CURRENT/V13-FE-005_COMPONENT_TEMPLATE_TEST_HARDENING_SLICE_NOTE.md; frontend/src/shared/ui/components/KsFormGrid.vue; frontend/src/shared/ui/components/KsFormSection.vue; frontend/src/shared/ui/components/KsFormSpan.vue; frontend/src/shared/ui/components/KsValidationSummary.vue; frontend/src/shared/ui/components/tests/KsCoreControls.contract.spec.ts; frontend/src/features/models/pages/ModelsList.vue; frontend/src/features/shadow-run/pages/ShadowRunList.vue; evidence/V13-FE-005/component-template-tests_20260813.log FE Architect/QA Dependency V13-FE-004 is COMPLETED. Reimplemented only KBX presentation-only form components against existing K-ArtSell tokens; no KBX package, contracts, provider dependency, routing, permissions, or business policy imported. Actual evidence: targeted Vitest 2 files / 6 tests passed and pnpm typecheck exit 0 on 2026-08-09. Visual/AT/performance baseline remains outside this Slice. Added contract tests for KsButton/KsTextField adapter-neutral behavior, accessibility wiring, loading/disabled semantics, and model events. Actual evidence: targeted 1 file/3 tests PASS, full frontend regression 59 files/156 tests PASS, typecheck PASS, build PASS. Known >500 kB build warning remains; visual/AT/browser/performance evidence remain outstanding. No completion claim.
53 V13-FE-006 S0 Cross AppShell/Page layouts COMPLETED IN_PROGRESS 2026-08-09 TBD docs/CURRENT/V13-FE-006_LAYOUT_CONTRACT_RECONCILIATION.md; frontend/src/shared/ui/layouts/tests/layout.contract.spec.ts; frontend/src/shared/ui/layouts/AppShellLayout.vue; frontend/src/shared/ui/layouts/PageLayout.vue docs/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.log UX/FE/QA/Security Dependency V13-FE-005 is COMPLETED. Preserved the existing slot-based layout rather than importing KBX's coupled workspace shell. Actual DOM contract evidence: 1 file / 2 tests passed, exit 0, 2026-08-09; verifies skip navigation, structural landmarks, default automation OFF boundary, and evidence/aside/footer separation. No visual/AT/E2E claim is made. Navigation 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.
54 V13-FE-011 S6 Cross T01 검색목록 화면 템플릿 IN_PROGRESS TBD docs/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.log UX/FE 2026-08-09: Scope limited to adapter-neutral T01 composition: list body plus optional detail region through CrudWorkspaceLayout and read-only component catalogue visibility in the Design System menu; WBS workspace remains hidden. Actual execution evidence: targeted Vitest 2 files / 3 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. Scope 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.
55 V13-FE-012 S8 Cross T02 상세조회 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Dependency 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.
56 V13-FE-013 S6 Cross T03 등록편집 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Dependency 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.
57 V13-FE-014 S7 Cross T04 MasterDetail 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Dependency 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.
58 V13-FE-015 S7 Cross T05 검토승인 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Dependency 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.
59 V13-FE-016 S6 Cross T06 Wizard 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Dependency 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.
60 V13-FE-017 S11 Cross T07 Dashboard 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Dependency 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.
61 V13-FE-018 S8 Cross T08 Batch운영 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Dependency 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.
62 V13-FE-019 S8 Cross T09 대사예외 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Dependency 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.
63 V13-FE-028 S8 Cross 대사·정정 화면 적용 IN_PROGRESS TBD docs/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.ts FE/Ops Dependency 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.
64 V13-FE-020 S11 Cross T10 버전거버넌스 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Dependency 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.
65 V13-FE-034 S7 Cross Idempotency retry contract IN_PROGRESS TBD docs/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.ts FE/BE/QA Existing 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.
66 V13-FE-036 S8 Cross T12 작업 큐 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Added 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.
67 V13-FE-037 S7 Cross T11 대량 입력 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA/Domain Owner Added 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.
68 V13-FE-021 S6 Cross Vee-validate/Zod standard form IN_PROGRESS TBD docs/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.ts FE Lead Added 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.
69 V13-FE-022 S6 Cross Filter/page/tab URL state IN_PROGRESS TBD docs/CURRENT/V13-FE-022_URL_QUERY_CODEC_SLICE_NOTE.md; frontend/src/shared/crud/queryCodec.ts; frontend/src/shared/crud/tests/queryCodec.spec.ts FE Lead/QA Dependency 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.
70 V13-FE-023 S6 Cross AG Grid server-side contract IN_PROGRESS TBD docs/CURRENT/V13-FE-023_SERVER_GRID_CONTRACT_SLICE_NOTE.md; frontend/src/shared/ui/DataGridShell.vue; frontend/src/shared/ui/tests/DataGridShell.spec.ts FE Lead/BE/QA Dependency 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.
71 V13-FE-035 S8 Cross Data freshness/version standard IN_PROGRESS TBD docs/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.ts FE/Data/QA KBX 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.
72 V13-FE-009 S0 Cross OpenAPI-Zod 생성 전략 ADR COMPLETED 2026-08-12 docs/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.md BE/FE Architect Dependency 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.
73 V13-FE-010 S0 Cross PrimeVue unstyled/bootstrap 연결 COMPLETED 2026-08-12 docs/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.ts FE Lead/QA Dependency 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.
74 V13-FE-007 S0 Cross 11-state Matrix component IN_PROGRESS TBD docs/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.ts UX/FE/QA StandardStatePanel 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.
75 V13-FE-008 S0 Cross 금융 formatter 중앙화 COMPLETED 2026-08-12 docs/CURRENT/V13-FE-008_FINANCIAL_FORMATTER_SLICE_NOTE.md; frontend/src/shared/formatters/financial.ts; frontend/src/shared/formatters/tests/financial.spec.ts FE Lead/Quant/QA Dependency 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.
76 V13-FE-024 S6 Cross Permission/Capability Guard integration IN_PROGRESS TBD docs/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.ts FE/Security Dependency 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.
77 V13-FE-033 S7 Cross ProblemDetails mapping IN_PROGRESS TBD docs/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.cs FE/BE/QA KBX 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.
78 V13-FE-011 S6 Cross T01 검색목록 화면 템플릿 IN_PROGRESS TBD docs/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.ts UX/FE/QA KBX 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.
79 V13-FE-023 S6 Cross AG Grid server-side contract IN_PROGRESS TBD docs/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.log FE Lead/BE/QA KBX 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.
80 V13-FE-038 S11 Cross 대량 화면 성능 budget IN_PROGRESS TBD evidence/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.vue FE/SRE/QA AG 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.