Skip to content
All articles

What clean Markdown extraction can still leave out

Inspect provenance, structure, warnings and truncation before relying on extracted Markdown.

Ouros editorial team

Clean Markdown is easier to read than a crowded web page. It is not proof that every important part of the page survived. Check the source, structure, links and completeness before turning extracted text into a decision or a new instruction.

Read for missing meaning

Imagine a public page that presents a table of supported platforms, a warning below it and a button that reveals additional conditions. A text conversion might retain the platform names but lose which condition belongs to which platform. It might capture the visible page without the hidden content. A tidy result can therefore be misleading even when each retained sentence is accurate.

Use this order of review:

  1. Keep the original source URL and enough context to find the relevant section again.
  2. Compare the main headings with the question you meant to answer.
  3. Check whether tables, warnings, link targets and footnotes retain their relationships.
  4. Read any warnings and truncation information attached to the result.
  5. Return to the source for an important claim, especially one that depends on layout or interactive content.

CommonMark explains the plain-text structures that Markdown can represent. It does not promise that an arbitrary web page converts without loss. A heading is useful structure; it is not a completeness certificate.

Inspect an existing result without starting new work

This small JavaScript helper reads Markdown only from an operation that reports completion. It makes no request and does not authenticate or extract a page:

export function readCompletedMarkdown(operation) {
  if (operation?.state !== "completed") {
    throw new Error("Inspect the existing operation before using its result.");
  }
  if (typeof operation.result?.markdown !== "string") {
    throw new Error("The completed operation has no Markdown text.");
  }
  return {
    markdown: operation.result.markdown,
    warnings: operation.result.warnings,
    truncated: operation.result.truncated,
  };
}

The helper accepts an empty Markdown string because empty text and a missing text field are different cases. After calling it, inspect the returned warnings and truncation value. Do not interpret an absent warning as evidence that the source was compared or that all content was captured.

The accompanying reference distinguishes access failures from operation states:

401 authentication_required: authentication is missing.
402 subscription_required: required paid Zilch access is missing.
reserved: inspect the existing operation.
completed: inspect the result, warnings and truncation.
failed: inspect the saved error before retrying.
cancelled: no completed result is available.

This is reference text, not a captured response or a set of commands. Zilch extraction is paid separately. A free inspection helper works on data you already hold; it does not grant access to the extraction service.

Keep extracted text out of the instruction channel

A page can contain instructions that are meaningful to its readers, or malicious text aimed at an agent. Neither becomes your authorization to run a command, upload a file or change an account. OWASP describes this crossing of trust boundaries in its prompt-injection guidance.

Keep the source text distinct from your own request. Attribute short excerpts, label your interpretation and verify consequential claims against the original. If the result is incomplete, preserve the existing operation identity before deciding what to do next. A second request may repeat paid work without repairing the underlying limitation.

The useful outcome is not “the conversion looks clean.” It is “the parts needed for this task are present, attributable and understood.”

Sources

Put it to use