.omo/evidence/20260727-senpi-task-always-steer/06-self-review.md
send-schema.ts owns the public input schema; send.ts owns task_send routing; renderers.ts owns control-tool rendering; the new test owns the always-steer public contract.deliver_as makes invalid delivery modes unrepresentable in TaskSendInput.assertNever.any, suppression, non-null assertion, or ignored diagnostic was added.validateParams was simplified from three parameters to one.Command:
bun run packages/omo-senpi/plugin/skills/programming/scripts/typescript/check-no-excuse-rules.ts <14 changed TypeScript files>
Result: No violations in 14 file(s).
The self-review found that the control-layer SendManager, SendResultDetails, and renderer still carried unreachable interrupt/no-op variants after the public option was removed. Those dead public-control variants were removed while preserving the lower-level manager/steering interrupt API used by internal lifecycle and adversarial tests.