---
title: Frame block
description: W4b fixture — bordered media frame wrapping one media child (author-shaped).
---

## Overview

This guide exercises the closed-dialect `:::frame` media frame end-to-end.

::image-figure{src="https://example.com/assets/diagram.png" alt="Architecture diagram W4B3_FRAME_IMAGE_CANARY"}

_**Architecture overview** — W4B3_FRAME_CAPTION_CANARY_

::video{provider="youtube" id="dQw4w9WgXcQ" title="W4B3_FRAME_VIDEO_CANARY"}

::drawing{paths="[&#x22;M10 10 L60 60 L110 10 Z&#x22;]"}

_Freehand sketch_

:::frame{caption="ok" src="smuggled"}
Invalid extra attrs stay inert rather than rendering a frame shell: W4B3_FRAME_INVALID_CANARY.
:::

:::frame{caption="Not media"}
The exact-one media invariant also rejects prose children: W4B3_FRAME_STRUCTURE_INVALID_CANARY.
:::

Shared prose after the frames remains on every surface: W4B3_FRAME_SHARED_PROSE.

## Related pages

- [/](../index.md)
- [/guides/blocks-showcase](./blocks-showcase.md)
- [/guides/copy-page-off](./copy-page-off.md)
- [/guides/getting-started](./getting-started.md)
- [/guides/no-page-title-toc](./no-page-title-toc.md)
- [/guides/prompt-block](./prompt-block.md)
- [/guides/recipe-in-guide](./recipe-in-guide.md)
- [/guides/single-entry-toc](./single-entry-toc.md)
- [/guides/visibility-audience](./visibility-audience.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
