Why
A hub's prose often contains example code. Today nothing checks those snippets stay valid — a doc can show a function call that no longer compiles. (Inspired by drift's @example validation, generalized to Surface's freeform hubs.)
What
Validate fenced code blocks in hub prose against the repo: compile / type-check them and report stale examples as a finding. Deterministic — no LLM.
Open questions
- Per-language strategy (tsc / rustc --edition / py compile / go vet) and how to scope a snippet's imports/context.
- Opt-in per code block (e.g. a language-tagged fence + a marker) vs all fences.
- Whether this is a
lint finding or a separate surf examples command.
Likely starts with one language (TS or Rust) behind a flag; advisory first.
Why
A hub's prose often contains example code. Today nothing checks those snippets stay valid — a doc can show a function call that no longer compiles. (Inspired by drift's
@examplevalidation, generalized to Surface's freeform hubs.)What
Validate fenced code blocks in hub prose against the repo: compile / type-check them and report stale examples as a finding. Deterministic — no LLM.
Open questions
lintfinding or a separatesurf examplescommand.Likely starts with one language (TS or Rust) behind a flag; advisory first.