Skill instructions
build-bid1.53 KB
View saved version →
---
name: build-bid
description: Turn a priced Exayard takeoff into a bid the customer can edit, export and send. Use when the customer asks to make, write or send a bid, quote or proposal for a project.
---
# Build a bid
## Steps
1. **Find the project.** If the customer says "this" or "the selected", call `get_selection` first. Otherwise
use `list_projects` and `get_project`.
2. **Check the prices.** Call `get_takeoff_summary`. If the quantities are not priced yet, price them first
(`build_priced_boq`). If any line has no price, tell the customer before going on; never invent one.
3. **Propose the bid.** Call `propose_bid_build` with kind "bid", and any notes the customer asked to include.
Its card shows **Approve**, and only the customer's press builds the bid. Stop and wait. You never build it
yourself.
4. **Open it.** When the bid is ready, the customer presses **Open** to write, change options, share or export in
the bid editor. To read an existing bid, use `list_documents` and `get_document`.
5. **Export.** For a PDF or Word file, call `export_document` and give the customer the download link.
6. **Share.** Sharing a bid with a client is done in the bid editor, which asks the customer to confirm. Never
share it any other way.
## Rules
- A bid only states quantities and prices the tools returned.
- If a step is refused because of the account's plan or its AI usage, pass on the message and its link as given,
and say nothing more about plans or prices.
- Plain words to the customer: no record ids and no tool names.
check-price1.29 KB
View saved version →
---
name: check-price
description: Look up what the company's own suppliers charge for a product in its Exayard catalog, lowest first. Use when the customer asks what their suppliers charge, for the best price on a product, or to check a price on a quote.
---
# Check a price
## Steps
1. **Find the product.** If the customer says "this" or "the selected", call `get_selection` first. Otherwise
call `search_products` with the product in the customer's words (size, material and grade if they gave them).
If several products match, show the closest few and ask which one.
2. **Get the price.** Call `get_best_price_for_product` for the chosen product, with the quantity if the customer
gave one.
3. **Report.** Give the best price, the unit and the supplier, then the other suppliers' prices on file. If no
supplier has a price, say so and give the catalog cost when there is one. If the customer compared it with a
price they were quoted, say how far apart the two are.
## Rules
- Prices come only from tool results, in the currency and units in the customer's settings. These are the
prices the company has on file from its own suppliers, not market prices; never call them that. If nothing is
found, say so; never guess a price.
- Plain words to the customer: no record ids and no tool names.
compare-revisions1.45 KB
View saved version →
---
name: compare-revisions
description: Compare two revisions of a plan set in Exayard and show which sheets changed and what measured items moved. Use when new drawings arrive, for "what changed in revision B", "check the addendum" or "which sheets are different".
---
# Compare two revisions
## Steps
1. **Find the project.** If the customer says "this" or "the selected", call `get_selection` first. Otherwise
use `list_projects` and `get_project`.
2. **Get the new drawings in.** If the newer revision is not in the project yet, call `add_plan_set`: the
customer adds the files on the upload card. Wait until the card shows the sheets are read.
3. **Compare.** Call `compare_drawing_revisions`. It matches sheets by sheet number and reports each one as new,
unchanged, changed or not checked, with the measured items on the changed sheets.
4. **Report.** Lead with the count of changed sheets, then list them by sheet number and title. Name the measured
items that sit on changed sheets, since their quantities may need a new takeoff. To see the changes drawn on
the sheets, the customer presses **Open**, or you call `home`.
5. **Next step.** If quantities may have changed, offer a new takeoff of the changed sheets. That goes through
the proposal card and the customer's **Approve**, as every takeoff does.
## Rules
- Report "not checked" sheets as not checked; never call them unchanged.
- Plain words to the customer: no record ids and no tool names.
price-takeoff1.51 KB
View saved version →
---
name: price-takeoff
description: Price the quantities of an Exayard takeoff with supplier prices, cost books and the company's own price lists. Use when the customer asks to price a takeoff, cost out quantities, or build a priced bill of quantities.
---
# Price a takeoff
## Steps
1. **Find the takeoff.** If the customer says "this" or "the selected", call `get_selection` first. Otherwise
use `list_projects` and `get_project`, then `get_takeoff_summary` to confirm there are measured quantities. If
there are none, offer to take off the plans first.
2. **Price it.** Call `build_priced_boq`. A small set comes back priced in the turn. A larger one shows a card
with **Approve**: stop there and let the customer press it. You never start a large pricing run yourself.
3. **Report.** Give the total and the biggest lines. Every price shows where it came from (a supplier, a cost
book, or the company's own price list); keep that with the number.
4. **Gaps.** If a line has no price, say so and leave it blank. Never invent a price.
5. **Changes.** Lines, quantities, prices and markups are changed in the line items table: the customer presses
**Open** on the card, or you call `home`.
## Rules
- Prices and totals come only from tool results, in the currency and units in the customer's settings.
- If a step is refused because of the account's plan or its AI usage, pass on the message and its link as given,
and say nothing more about plans or prices.
- Plain words to the customer: no record ids and no tool names.
setup1.95 KB
View saved version →
---
name: setup
description: Set up Exayard in this chat. Use right after the plugin is installed, or when the customer says "set up Exayard", "connect Exayard", "get started" or asks how to begin.
---
# Set up Exayard
The goal: the customer is signed in, their company is set up the way Exayard's own setup does it (company name,
trades, pricing location), and they know how to start. Keep it to a few short messages.
## Steps
1. **Connect.** Call `get_profile`. If the customer is not signed in yet, tell them to connect their Exayard
account when asked, then call `get_profile` again.
2. **Show the company setup.** Call `get_company_setup`. It shows a card with the company's setup, the same
settings Exayard's web app has, and the customer makes every change in that card:
- **No company yet:** ask what the company is called; they type it in the card and press Create.
- **Trades:** ask them to tick the kinds of work they do.
- **Pricing location:** ask them to search for their city, region or country, so prices match where they work.
Units and currency sit in the same card if they want to change them.
- **Several companies:** the card lists their companies. Ask which one this chat should work in; they pick it
in the card, or you call `choose_company` with the name they say. Then show the setup again.
- **Not an admin:** the card shows the settings without editing. Say only an admin of the company can change
them, then go on to step 3.
Read back what the card's summary says in one short list and ask "Is this right?" Never change a setting
yourself and never ask for or pass a company id.
3. **Start.** Say "Add a plan set to start." and call `add_plan_set` so the upload card is ready.
## Rules
- Ask only for what the setup does not already answer. If everything is already set, skip to step 3.
- Do not talk about Exayard plans, prices, credits, trials or upgrades.
- Plain words to the customer: no record ids and no tool names.
take-off-plans2.22 KB
View saved version →
---
name: take-off-plans
description: Measure and count everything drawn on a plan set with Exayard, for every trade alike. Use when the customer asks for a takeoff, for quantities from drawings, or to measure or count what is on their plans.
---
# Take off a plan set
Exayard reads each sheet and returns every drawn area, run and symbol, in the sheet's own words. The takeoff is
general: every trade is measured the same way, and no kind of item is singled out or left out.
## Steps
1. **Find the plans.** If the customer says "this" or "the selected", call `get_selection` first. If they name a
project, use `list_projects` and `get_project`. If there are no plans yet, call `add_plan_set`: it shows the
upload card, and the customer adds the files there. Wait until the card shows the sheets are read.
2. **Look at the set.** Call `list_pages` for the sheets. For "what is in these plans?" or "anything missing?",
call `get_set_brief`, and `list_findings` for the open questions.
3. **Propose.** Call `propose_analysis` with what the customer asked for, in their words. If they did not narrow
it, leave the request empty: that measures everything drawn on the chosen sheets. The proposal card shows what will be measured and what it
will use from the customer's account.
4. **Stop and wait.** The customer presses **Approve** or **Change** on the card. You never start the takeoff
yourself. If they ask for a change, call `propose_analysis` again with it.
5. **Report.** The card shows progress and settles into a result line. Then call `get_takeoff_summary` and give
the totals by sheet and by the drawing's own item names, in the customer's units, with how many items need a
look. To see or fix the takeoff, the customer presses **Open** on the card, or you call `home`.
6. **Explain.** For "why is this one so big?" or "where did this number come from?", call `get_selection` if they
point at something, then `explain_measurement`.
## Rules
- Never invent or round away a quantity; report what the tools return.
- If a step is refused because of the account's plan or its AI usage, pass on the message and its link as given,
and say nothing more about plans or prices.
- Plain words to the customer: no record ids and no tool names.