# Prompts that work

> Eight prompts taken from the module guides the wizard inlines into your setup checklist, each naming the skill that answers it.

Page: https://sdk.chatfuel.com/docs/agents/prompts
Markdown: https://sdk.chatfuel.com/docs/agents/prompts.md

Every module but `core` ships a `handoff.md` whose numbered first tasks the wizard inlines into
your setup checklist. These are eight of them, rewritten as prompts you can paste, each with the
skill that answers it.

## A new view [#a-new-view]

```
Wire saved views into the deals command palette. Lift useSavedViews() out of
SavedViewsMenu into DealsWorkspace, map its views into the command context, and
point applySavedView at the same patch({ view, filter }) the menu already uses.
Decide whether the menu keeps its own copy of the hook or takes the list as a prop.
```

Answered by `chatfuel-deals`. `lib/commands.ts` already builds the group and the palette already
has an icon for it; the workspace passes an empty list because the hook lives where it cannot see
it.

```
Add search to the live chat list, over textInputFilter. Put the filter in
chatListStore's vars and let chatListQueryVars and chatListSubscriptionVars build
both sets of variables from it — the query and the ChatListUpdates subscription
have to run on identical filters.
```

Answered by `chatfuel-livechat`. Going through both builders is what makes that identity
structural instead of a thing to remember.

## A new module [#a-new-module]

```
Add a module called notes: src/modules/notes/ with an index.tsx exporting
moduleDescriptor (id, title, icon, a lazy Component). Import only react, ~ui, ~api
and its own files, take routing from props, and never touch window.location.
```

Answered by `chatfuel-core`, whose `playbooks/customize.md` names where a module lives and the
import boundary that keeps it local, and by [Write a module of your own](/docs/guides/build-a-module)
for the registration tables. `moduleDescriptor` is a fixed name — the wizard regenerates
`src/modules/index.ts` from it.

```
Give the notes module a second screen. The path segment after the module id is the
`view` prop and the screen state goes in `params`, so /notes/archive?q=… is one
screen with a filter, not two modules.
```

Answered by `chatfuel-core`. A module moves within itself with `setView` and crosses to another
one with `navigate`, both handed to it as props.

## A design change [#a-design-change]

```
Retune the palette: change the accent ramp in src/vendor/ui/styles/tokens.css and
nothing else. No component carries a dark: variant and none hardcodes a color, so
both themes move from that one file.
```

Answered by `chatfuel-core`: the rebranding section of its `playbooks/customize.md` is the short
version, and [Change how it looks](/docs/guides/customize-the-design-system) is the long one.

```
Add a status colour legend to the bookings calendar toolbar, shown when
color=status is on. lib/status.ts has every tone; the toolbar is in
components/calendar/.
```

Answered by `chatfuel-bookings`.

## An operation against the API [#an-operation-against-the-api]

```
Add attachment upload to the live chat composer. The REST upload goes through the
dev proxy's /chatfuel/api/* route with the uploadFile helper in src/vendor/api,
then the Send*Attachment mutations. Read the "Sending" section of the skill's
guide.md first.
```

Answered by `chatfuel-livechat` with `chatfuel-core` for the upload route.

```
Resolve the ad ids in Ads Optimization to real ads: currentUser.metaAdAccounts and
MetaAdAccount.ads(botID, platforms, first, after) carry names, thumbnails, statuses
and spend. Read references/ads.md first — the ads hang off the signed-in person's
Facebook login, not off the bot, and there is no lookup by id.
```

Answered by `chatfuel-ads-optimization`.

Both of those write a new operation, and the rule for that is in your checklist already: copy the
starting point from the relevant skill's `examples/operations.graphql`, then validate it against
the bundled schema with `chatfuel-core`'s validator before running it live. Production
introspection is off, so `references/schema.graphql` inside `chatfuel-core` is the only schema
there is.
