Prompts that work
Eight prompts taken from the module guides the wizard inlines into your setup checklist, each naming the skill that answers it.
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
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
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
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
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 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
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.
The handoff
Two files come out of the run — a standing brief the agent reads every session, and a one-time setup checklist with every module's guide inlined into it.
This site as text
An index at /docs/llms.txt, everything in one file at /docs/llms-full.txt, a Markdown twin at every documentation address, and /SKILL.md — with no MCP server behind any of it.