# 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.