The things that help you read
Text, headings, tables, supported images, links, and CSS layouts. A report can still have hierarchy, color, typography, and a distinctive point of view.
AI-GENERATED HTML / A READER’S GUIDE
A reading page should not need permission to run your life.
Not automatically. AI can generate harmful code as well as useful pages. On share/artifacts, submitted scripts and forms are removed, and published HTML is isolated from the main app with browser-enforced restrictions. This reduces code-execution risks; it does not verify the page’s claims or make every link trustworthy.
These protections apply to HTML published through share/artifacts—not every HTML file you download or open elsewhere.
01 / KEEP THE EXPLANATION. LIMIT THE BEHAVIOR.
Text, headings, tables, supported images, links, and CSS layouts. A report can still have hierarchy, color, typography, and a distinctive point of view.
Submitted JavaScript, forms, embedded pages, objects, workers, refresh redirects, and API connections. A report cannot use these to collect input or run a live workflow.
Supported HTTPS images and fonts, including CSS background images, can still contact outside hosts. A static page is not necessarily an offline page.
02 / A SMALL, CHECKABLE EXAMPLE
This example combines two lines of report content with a click handler, script, password field, and embedded page. The text below is displayed as code, never executed.
<h3 onclick="alert('clicked')">Weekly update</h3>
<p>9 of 12 tasks complete.</p>
<script>alert('running')</script>
<form><input type="password"></form>
<iframe src="https://example.com"></iframe><h3>Weekly update</h3>
<p>9 of 12 tasks complete.</p>The heading and paragraph remain. The click handler, script, form controls, and iframe are removed.
The output is checked against the same sanitizer used for publishing. This excerpt shows the remaining body content; normal document metadata is added separately.
03 / MORE THAN ONE CHECK
A DOM-based allowlist sanitizer removes unsupported elements and dangerous attributes before the page is stored for delivery. It is not a promise that every sentence or destination link is safe.
Published HTML is served from a separate content origin inside a sandboxed frame. It is not inserted into the trusted app’s document. Your report’s design and code are kept apart from the account interface.
A Content Security Policy blocks submitted scripts, form submissions, API connections, nested frames, objects, and workers. The empty iframe sandbox adds another boundary around the published document.
script-src 'none'
connect-src 'none'
form-action 'none'
frame-src 'none'
object-src 'none'
worker-src 'none'
base-uri 'none'This is a selection of the content-page policy, not the full header. Separate directives allow supported images, fonts, and CSS. These restrictions concern submitted HTML; the platform’s own trusted controls are separate.
04 / WHAT YOU SHOULD STILL CHECK
Want to limit the audience? Use private sharing. Do not put passwords, API tokens, or unrelated private source material into a published report.
05 / BEFORE YOU SHARE
Need forms, live calculations, or API-connected dashboards? Use a full application with the appropriate security design. Compare a static artifact with a web app.
MAKE SOMETHING WORTH READING
Your agent can make a useful report without scripts or forms. Start with a worked example, bring your approved context, and review the page before publishing.