Move pure role utilities (decorateRole, withDryRun, onFail, schemaDefaults)
into @uncaged/workflow-util-role. extractMetaOrThrow stays in role-llm
since it depends on LLM capabilities.
Dependency graph (no cycles):
util-role → workflow
role-llm → workflow, util-role
committer → workflow, util-role, role-llm
Closes#15