Files
KArtSell.Aegis/docs/CURRENT/AEG-X-016_KIS_HARD_OFF_SLICE_NOTE.md
T
kjh2064 3f293d8aa8
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s
V13-FE-006: consolidate approved UI and contract hardening
2026-08-13 02:41:00 +09:00

2.5 KiB

AEG-X-016 — KIS order-submission hard-off

Scope

  • WBS ID: AEG-X-016; Requirement / API / DB / Job / UI / Test: REQ-KIS-OFF / Cross / Cross / Cross / Cross / Cross.
  • Dependency / Gate: AEG-X-005 (completed) / ALL.
  • Acceptance: zero external KIS order calls; capability override audit and kill switch pass.

Source / Assumption / Unknown / Decision Required

  • Source: AGENTS.md hard prohibition on automatic orders/KIS submission; CapabilityOptions startup validation; TradeEndpoints, TradeHandlers, KisTradeExecutionService, TradeStatusPollingJob, and Program recurring-job registration.
  • Assumption: the user's instruction is an unconditional hard-off, not a feature flag. Buy, sell, poll, and settlement calls must remain blocked even if an environment value attempts to enable a capability.
  • Unknown: there is no approved release that authorizes re-enabling KIS. This change supplies no activation path.
  • Decision Required: a future enablement would require a separately approved release, complete capability/kill-switch audit, and revised WBS evidence; it is out of scope.

Actual evidence and remaining acceptance

  • dotnet test tests/KArtSell.Integration.Tests/KArtSell.Integration.Tests.csproj -c Release --filter FullyQualifiedName~KisTradingHardOffTests --logger "trx;LogFileName=KisTradingHardOffTests_20260809.trx" --results-directory evidence/AEG-X-016
  • Result: passed 1/1; artifact: evidence/AEG-X-016/KisTradingHardOffTests_20260809.trx; SHA-256: F41D1DF823F91705D322A629B08ADF0BBA03EA1BEFA01DEF47E00C9DAFF2470D.
  • The test invokes submit, status, cancel, and settlement on the concrete KIS adapter and asserts that every call throws the hard-off exception before its HTTP handler is called (zero external calls).
  • The submit/poll/settlement handlers guard before any database write or adapter access, and Program removes the historic trade-status-polling recurring job.
  • CreateTradeEndpoint and ListTradesEndpoint are marked [DontRegister]; trade routes are not production-registered while KIS/order capability remains OFF.
  • Architecture guard KIS_trade_endpoints_must_remain_unregistered_while_capability_is_off passed as part of KArtSell.ArchitectureTests: 17/17 tests passed on 2026-08-12.
  • Post-change unit evidence: KArtSell.ModelOperations.UnitTests 51/51 PASS and KArtSell.SignalEngine.UnitTests 18/18 PASS.
  • Not complete: endpoint-level disabled response and a startup configuration-override audit remain to be executed before the full WBS acceptance is claimed.