pub fn parse_skill_block(text: &str) -> Option<(&str, &str, Option<&str>)>
Parse a skill block from text (pi-compatible). Returns Some((name, body, user_message)) if the text is a skill block.