# How to get feedback on an AI-generated prototype

An assistant can produce a clickable prototype in minutes. Getting useful feedback on it takes longer. A screenshot loses the interactions, a zip file never gets opened, and "looks good 👍" in chat doesn't tell anyone what to change. Here's a workflow that gets specific feedback and feeds it back to the agent.

## 1. Make it one self-contained HTML file

Reviewers should open a link and see the real thing. That works when the prototype is **a single HTML file** with its CSS, JavaScript and images inlined, or loaded from absolute `https://` URLs.

- If the assistant wrote one file, you're done.
- If it built a React or Vue app, have the bundler emit one file. With Vite that's `vite-plugin-singlefile`. See [single-file HTML builds](https://ollav.app/guides/single-file-html-builds).
- Avoid relative paths like `src="assets/logo.png"`. Nothing else gets uploaded with the file, so they won't load.

## 2. Share a live link, not a picture

Upload the file to Ollav: drag it onto https://app.ollav.app, or let your agent do it with the `share_html` MCP tool or one curl call:

```bash
curl -F "file=@prototype.html" -H "Authorization: Bearer $OLLAV_API_KEY" -H "X-Ollav-Client: agent" https://app.ollav.app/api/documents
```

You get a stable link. Workspace members can open it straight away, and you can share a single document with an outside reviewer as a guest.

## 3. Ask for feedback on elements, not in a thread

Ask reviewers to **click the thing they're talking about** and comment there. Each comment is pinned to that element, so "this" always means something. Make the request specific:

- "Comment on anything that would stop you finishing checkout."
- "React 👍 on comments you agree with instead of repeating them."
- "Resolve your own comment if a later version fixes it."

Reactions keep the noise down: five people agreeing is one comment with 👍 5, not five replies.

## 4. Feed the comments back to the agent

The agent that built the prototype can read the feedback directly. `get_review` returns the open threads as Markdown, each with the text of the element it's pinned to, so the agent can find it in the source:

```text
Read the open comments on the Ollav prototype, fix them, publish a new version
and resolve what you fixed.
```

Under the hood that's `get_review` → edit → `publish_new_version` → `resolve_comment`. The link stays the same and earlier comments are kept and marked as being on an older version.

## 5. Repeat until it's quiet

Each round, reviewers reload the same link. When `get_review` comes back empty, you're done. The link and the full discussion stay with the work, for whoever picks it up next.

## Checklist

- One HTML file, everything inlined or absolute
- Shared as a live link with the right visibility (workspace by default)
- Reviewers comment on elements and react instead of repeating
- The agent reads open threads, ships a new version, resolves what it fixed

[Connect your agent](https://ollav.app/docs/agents) · [Get started](https://app.ollav.app/signin)
