A module defining nodes could not be run directly: the decorator refused `__main__` while the module body was still executing, so a `if __name__ == "__main__"` self-check beside the nodes was impossible and the checks had to live in a separate pytest file. The refusal now fires where the generated body is written — document() and shims(), both, since sync writes the document first — and the decorator hands the function back as it always did. Syncing a __main__-defined node is still refused, with the same words. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Hra4ndWMCLU5F3KjUuVAc