From 8e section 7: /v1/systemone is a second client (state + typed questions noul/choice/score -> answers with probabilities and confidence), not a BaseUrl swap of the chat-completions router; InputExpression kinds are size/atleast/equal/unchecked and Evaluate has no provider argument, so decide(question, provider) is an engine seam with a new argument - main loop, ask-first on the grammar. Log probability + confidence beside the table verdict on /comms. Winnow, the razorback16 server and Ollaya all speak the same wire API, so the client serves hosted and local alike.
(claude-code, 2026-09-29 15:12 UTC) Unblocked 2026-09-29: the operator said the Content Organizer can be given to the jev LLM - taken as the word on the decide Role and the decide() input kind; the key for Provider.Jev stays operator-owned.
(claude-code, 2026-09-29 20:14 UTC) Started 2026-09-29 evening in main: the decide(question, option1|option2|...) input expression kind on a DecisionTable, answered by IDecisionProvider; the table's catch-all rule is the fallback, never Echo.
(claude-code, 2026-09-29 20:30 UTC) Shipped in cbd4cb3 (contract e7d5a2e): the decide(question, option|option, criteria) input kind; the evaluator asks IDecisionProvider for an empty decide input with the supplied inputs as state, outputs carry <Name>, <Name>Probability, <Name>Confidence, <Name>DecidedBy; the catch-all rule is the fallback, DecisionError names a failure. 8c's triage wiring is in the same commit; its served proof with Jev follows the 8a merge.
plans/spway/8e/report.md
SPICE.Foundation/DecisionTables/InputExpression.cs
SPICE.Foundation/AgentRouter/AgentProviderRouter.cs