Epic: #1974
Three providers independently extract std::any::type_name::<T>() and format schema prompts:
zeph-llm/src/provider.rs:561
zeph-llm/src/openai/mod.rs:571
zeph-llm/src/claude/mod.rs:834
Extract shared helper: fn schema_prompt<T: JsonSchema>() -> (String, serde_json::Value).
Acceptance Criteria:
Complexity: Small | Effort: 1h
Ref: TYPE-03