d5f47d1a18
Phase 2 of RFC #351 — adapter tries frontmatter first (zero LLM cost), falls back to runtime.extract() when frontmatter is missing/invalid. - tryFrontmatterMeta(): parse → validate → schema.safeParse - Happy path stores body (no frontmatter) in CAS - Fallback stores full raw in CAS + LLM extract - 5 tests covering both paths Refs #351