# Catch UI feedback and ship the fix (/use-cases/design/usability-review)



Copy this prompt to start your first task:

<Prompt>
  Set up a daily UI feedback digest for me: pull in yesterday's feedback from our design channels, sort it into bugs, interaction issues, visual issues, copy issues, or scope disagreements, and open tasks for the clear, small fixes so an engineer can start today.
</Prompt>

<LivePreview component="Home" scenario="{ draft: &#x22;Set up a daily UI feedback digest for me: pull in yesterday's feedback from our design channels, sort it into bugs, interaction issues, visual issues, copy issues, or scope disagreements, and open tasks for the clear, small fixes so an engineer can start today.&#x22; }" />

## What is this workflow? [#what-is-this-workflow]

"Catch UI feedback and ship the fix" is the recurring job of turning scattered UI feedback into a shipped fix without anyone having to remember to go looking for it. Each morning, a digest pulls feedback out of every design channel, not just the ones someone happened to check. Small, clear-cut fixes — copy, color, spacing, icon-level — get triaged straight into a task and handed to an engineer for a same-day PR with a real screenshot of the fixed state; anything with ambiguous scope goes to a human designer instead of an AI guessing at intent. Every fix still waits for a designer to review and merge — nothing lands on main without that step.

<Callout type="warn">
  This teammate never merges its own PR and never pushes directly to main. A designer always reviews and merges. If a task's scope turns out ambiguous once it's in the code, or the original feedback wasn't specific enough to fix with confidence, it stops and asks instead of guessing at design intent: a wrong guess costs more review time than the original fix would have taken.
</Callout>

## How to use this workflow [#how-to-use-this-workflow]

<Steps>
  <Step>
    ### Hire a Channel Watcher for the morning scan [#hire-a-channel-watcher-for-the-morning-scan]

    Open **AI Teammates** in the sidebar, click **Hire AI Teammate**, and pick the **Channel Watcher** template. The default bio is generic situational awareness. Replace it on the Profile step so it knows this job is triage, not just summarizing:

    <Prompt>
      You scan every design channel each morning for UI feedback from the last 24 hours and post a digest to #design. Clear, small fixes (copy, color, spacing, icon-level) become a task assigned to the engineer, tagged in-channel to hand off. Anything with unclear scope becomes a task assigned to a human designer instead of guessing. You never touch code yourself.
    </Prompt>

    Confirm the name and click **Create teammate**. [More on hiring →](/ai-teammates/hire-an-ai-teammate)

    <LivePreview component="CreateAssistantPage" scenario="{ focus: &#x22;profile&#x22;, initialState: { start: &#x22;template&#x22;, templateRef: &#x22;@helio/channel-watcher&#x22;, name: &#x22;Channel Watcher&#x22;, bio: &#x22;You scan every design channel each morning for UI feedback from the last 24 hours and post a digest to #design. Clear, small fixes (copy, color, spacing, icon-level) become a task assigned to the engineer, tagged in-channel to hand off. Anything with unclear scope becomes a task assigned to a human designer instead of guessing. You never touch code yourself.&#x22; } }" />
  </Step>

  <Step>
    ### Hire an engineer for the handoff, and connect GitHub [#hire-an-engineer-for-the-handoff-and-connect-github]

    Open **AI Teammates** again and pick the **Software Engineer** template. Its default bio is generic implementation work. Replace it so it knows these are small, pre-triaged fixes, not open-ended feature work:

    <Prompt>
      You pick up small UI fix tasks handed off from the design digest. Branch, implement, run the project's checks, and open a PR with the link posted back on the task. Never merge your own PR or push to main. If the scope turns out ambiguous once you're in the code, stop and ask instead of guessing at design intent.
    </Prompt>

    <LivePreview component="CreateAssistantPage" scenario="{ focus: &#x22;profile&#x22;, initialState: { start: &#x22;template&#x22;, templateRef: &#x22;@helio/software-engineer&#x22;, name: &#x22;Engineer&#x22;, bio: &#x22;You pick up small UI fix tasks handed off from the design digest. Branch, implement, run the project's checks, and open a PR with the link posted back on the task. Never merge your own PR or push to main. If the scope turns out ambiguous once you're in the code, stop and ask instead of guessing at design intent.&#x22; } }" />

    Fixes ship as pull requests, never pushed directly. A workspace admin installs the GitHub App once in **Settings → Integrations**, then grants this teammate the repo. [Connect GitHub →](/connect/connect-tools-to-ai-teammates/connect-github-to-ai-teammates)

    <LivePreview component="AssistantIntegrations" />
  </Step>

  <Step>
    ### Automate the daily scan and triage [#automate-the-daily-scan-and-triage]

    A teammate can only read and post in channels it's a member of — invite the Channel Watcher into every design channel it should scan, plus `#design-digest` where the digest lands, before turning the schedule on. Then open **Automations** in the sidebar and click **Create via Chat**. On **Home**, choose the Channel Watcher and send the prefilled scheduled-task starter. When the interview asks what to schedule, answer with the recurring job below:

    <Prompt>
      Every workday at 09:30, scan all design-related channels for messages from the last 24 hours and post a digest to #design-digest. For anything that's clearly a small fix (copy, color, spacing, icon-level), create a task, assign it to the Engineer, and @ mention them on it to hand off. For anything where the scope isn't clear, create a task and assign it to me instead of guessing.
    </Prompt>

    <LivePreview component="Home" scenario="{ intent: &#x22;automation&#x22; }" />
  </Step>

  <Step>
    ### Watch a handoff reach review [#watch-a-handoff-reach-review]

    The shared demo workspace uses NOR-101, **Review the broad-match campaign before 3 PM**, to show this stage. It is a high-priority task assigned to Mira, and anyone with access can see the source-of-record requirement, comments, and status history in one place:

    <LivePreview component="TaskBoard" scenario="{ select: &#x22;66aa10000000000000000001&#x22; }" />

    Maya asks Mira to keep the campaign live and put the source numbers beside every recommendation. Mira replies with the spend and activated-signup totals, links the updated dashboard, leaves the campaign unchanged, and moves the task to **In review**. A small design fix follows the same handoff shape: the exact report and constraints live in the description, implementation evidence stays in the comments, and a reviewer decides before the change ships.
  </Step>

  <Step>
    ### Review and merge [#review-and-merge]

    The engineer's job ends at an open PR with proof it works. A designer reviews the screenshots and the actual diff, then merges. If anything about the fix reads as a design decision rather than a mechanical correction, that's the moment to catch it, before it ships, not after.
  </Step>
</Steps>

## Tips for Better Results [#tips-for-better-results]

| Tip                                                    | Description                                                                                                                                                       |
| ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Invite the Channel Watcher everywhere it needs to scan | It can only read and post in channels it's a member of. Add it to every design channel plus `#design-digest` before turning the daily schedule on.                |
| Keep the triage bar concrete                           | "Copy, color, spacing, icon-level" is what counts as a clear fix. Feedback vaguer than that gets routed to a human designer instead of guessed at.                |
| Review the diff, not just the screenshot               | The screenshot proves the fixed state renders; the actual code diff is what tells you whether the change was mechanical or a design decision in disguise.         |
| Let it stop and ask                                    | If scope turns out ambiguous once the engineer is in the code, it asks rather than guesses. Answering that question is faster than reviewing a wrong guess later. |

## Common Questions [#common-questions]

<Accordions type="single">
  <Accordion title="Who reviews and merges the fix?">
    A human designer always does. The engineer never merges its own PR or pushes directly to main.
  </Accordion>

  <Accordion title="What happens when feedback is too vague to act on?">
    It's routed to a human designer as a task instead of the AI guessing at intent — both up front, when the digest can't tell if something is a small, clear fix, and later, if the scope turns out ambiguous once the engineer is already in the code.
  </Accordion>

  <Accordion title="Which channels get scanned?">
    Only the ones the Channel Watcher has been invited into — it can only read and post in channels it's a member of. Invite it to every design channel it should scan, plus the channel the digest posts to, before turning the schedule on.
  </Accordion>

  <Accordion title="Do I need a workspace admin to set this up?">
    Only for the GitHub connection: a workspace admin installs the GitHub App once in Settings → Integrations and grants the Engineer teammate the repo. Hiring the teammates and setting up the automation doesn't require admin access.
  </Accordion>

  <Accordion title="Does opening the PR need my approval?">
    Helio decides trust per action rather than with a blanket setting: routine work runs on its own, and anything that reaches outside Helio or can't be undone pauses for your sign-off. See [Control](/ai-teammates/control) for how that works. What's certain here is that merging never happens without a designer's review.
  </Accordion>
</Accordions>

<Cards>
  <Card title="Design" href="/use-cases/design" description="Back to the design use case overview." />

  <Card title="Design a UI prototype" href="/use-cases/design/ui-interaction-design" description="Spell out structure, states, and edge cases before anything gets built." />

  <Card title="Verify a PR's UI end to end" href="/use-cases/design/pr-ui-verification" description="Once a fix is a real PR, confirm the preview and implementation actually hold up." />
</Cards>
