{"record":{"id":"7a27d29894786032","repo":"openai/codex","slug":"invalid-field-reason","errorCode":null,"errorMessage":"invalid {field}: {reason}","messagePattern":"invalid (.+?): (.+?)","errorType":"exception","errorClass":"SkillParseError","httpStatus":null,"severity":"error","filePath":"codex-rs/skills/src/parser.rs","lineNumber":39,"sourceCode":"\n/// Validated metadata parsed from a `SKILL.md` frontmatter block.\n#[derive(Debug, Clone, PartialEq, Eq)]\npub struct ParsedSkillFrontmatter {\n    pub name: String,\n    pub description: String,\n    pub short_description: Option<String>,\n}\n\n/// Error produced while parsing or validating `SKILL.md` metadata.\n#[derive(Debug, Error)]\npub enum SkillParseError {\n    #[error(\"missing YAML frontmatter delimited by ---\")]\n    MissingFrontmatter,\n    #[error(\"invalid YAML: {0}\")]\n    InvalidYaml(#[source] serde_yaml::Error),\n    #[error(\"missing field `{0}`\")]\n    MissingField(&'static str),\n    #[error(\"invalid {field}: {reason}\")]\n    InvalidField { field: &'static str, reason: String },\n}\n\n/// Parses and validates the metadata frontmatter from `SKILL.md` contents.\npub fn parse_skill_frontmatter_metadata(\n    contents: &str,\n    default_name: impl FnOnce() -> String,\n) -> Result<ParsedSkillFrontmatter, SkillParseError> {\n    let frontmatter = extract_frontmatter(contents).ok_or(SkillParseError::MissingFrontmatter)?;\n\n    let parsed: SkillFrontmatter = match serde_yaml::from_str(&frontmatter) {\n        Ok(parsed) => Ok(parsed),\n        Err(original_error) => match repair_frontmatter_scalar_fields(&frontmatter) {\n            // Some third-party skills use prose like `description: Build for AWS: ECS`\n            // or `argument-hint: <duration: e.g. 7d>`. Keep the repair line-oriented\n            // so unrelated invalid YAML still surfaces.\n            Some(repaired_frontmatter) => {\n                serde_yaml::from_str(&repaired_frontmatter).map_err(|_| original_error)","sourceCodeStart":21,"sourceCodeEnd":57,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/skills/src/parser.rs#L21-L57","documentation":"Error \"invalid {field}: {reason}\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/skills/src/parser.rs:39 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}