Imperative contract guard

repo                         nodes handlers  clean baseline  live nonlive allowlist
------------------------------------------------------------------------------------------------------
omniclaude                       3        6      0        4     2       6 <ROOT>/allowlists/omniclaude.yaml

Blocking LIVE imperative violations:
- omniclaude/nodes/node_planted_effect/handlers/handler_planted.py: hybrid (live)
  - hardcoded topic 'onex.evt.planted.thing.v1' not in contract

Blocking LIVE freestanding imperative violations:
- src/omniclaude/planted_imperative_io.py: imperative (live)
  - L5 [live] raw HTTP call 'requests.post' bypasses contract transport
  - L5 [live] hardcoded inference param 'max_tokens=64' in dict literal

Reported non-live imperative smells:
- omniclaude/nodes/node_git_effect/handlers/handler_shell_heredoc.py: hybrid (dead)
- omniclaude/nodes/node_git_effect/handlers/handler_shell_redirect.py: hybrid (dead)
- omniclaude/nodes/node_git_effect/handlers/handler_shell_scope.py: hybrid (dead)
- src/omniclaude/nodes/node_golden_chain_publish_effect/persist.py: hybrid (dead)
- src/omniclaude/services/ci_relay/publisher.py: hybrid (dead)
- src/omniclaude/services/linear_relay/dedup_adapter.py: hybrid (dead)
