Removed the sign_convention field from the template model, templates.yml and its header comment, and from the select_conventions output in grammar/terms.py. Whether an entry carries a sign-convention paragraph depends on its COCOS transformation type, which a name's parse does not yield, so the consumer decides it where the entry is known. Folded the duplicate _load_conventions_yaml into _load_yaml and gave the conventions refusals their own asserted messages.

Measure: rg finds no sign_convention or _load_conventions_yaml in the registry code (no matches); the gate files run 44 passed, 5 xfailed against 42 passed, 5 xfailed at base (no added failures, EXIT=0). With sign_convention re-added to the TemplateEntry model the refusal test fails (test_template_entry_carrying_sign_convention_is_refused, EXIT=1).