Skill instructions
answer-form-messages2.43 KB
View saved version →
---
name: answer-form-messages
description: Use when someone asks about messages, enquiries, bookings or sign-ups that came in through their Sitelas website's forms, such as "any new messages from my site?", "who contacted me this week?" or "help me reply to the catering enquiry". Reads the site's inbox and contact records and drafts replies. It never sends anything.
---
# Answer form messages
Every Sitelas form saves what visitors submit to the site's inbox. You can read those messages, look up the person behind them, and draft a reply for the site owner to send themselves. Sitelas does not send email for you.
If the person's own instructions conflict with anything below, follow the person.
## Read the inbox
1. If you don't know which site, call `list_sites`. If there are several, ask which one, or check each one when they asked about "my sites".
2. Call `list_submissions`. Summarise newest first, one line each: who, what they want, when, and whether it is unread. Group by form when a site has several, such as bookings and the newsletter.
3. To open a message in full, call `read_submission`. This marks it as read. `list_submissions` doesn't.
## Withheld messages
On the Free plan, a site past its monthly reading allowance still receives and stores every message. The sender and content are just withheld (`locked: true`). Say plainly that the message arrived and was kept, and when. Never suggest it was lost, and don't try to reach its content through any other tool. You can mention that the plan is managed in their Sitelas dashboard. Don't quote prices or push an upgrade.
## Who is this person?
`list_contacts` shows everyone who has submitted a form on the site. Pass a person's `email` to get their record and everything they have sent. Use them for questions like "has this person written before?" or "who are my most recent leads?".
## Draft a reply
Open the message with `read_submission` and write the reply yourself, in the site owner's voice (`get_site` with `include: ["brief"]` has it). Answer what was actually asked, and leave clear placeholders for facts you don't know, such as prices, dates or availability.
Present the draft for the owner to copy and send from their own email. Never say a reply has been sent.
## Keep it private
Form messages contain other people's personal details. Quote only what the owner needs, and don't paste a sender's details into anything public, such as the website itself, unless the owner explicitly asks.
Referenced files: 1 — file references are metadata, not package contents.
build-a-website4.17 KB
View saved version →
---
name: build-a-website
description: Use when someone asks for a new website, landing page, portfolio or one-page site on Sitelas, such as "build me a site for my bakery" or "make a portfolio for my photography". Picks a designer-made template that fits, customizes every word and image for this business, checks the result, and shares a private preview before anything goes live.
---
# Build a website
Sitelas sites start from a designer-made template and are then customized for this business. A site still showing the template's sample business looks to the person like nothing was built. So customizing and checking come before sharing.
If the person's own instructions conflict with anything below, follow the person. If they say "just build it", stop asking questions and build from what you have.
## 1. Understand the brief
You need three things: what the business or person is, the look and feel they want, and the one thing a visitor should do (call, book, enquire, buy elsewhere, read).
If the request gives you almost nothing ("a bakery"), ask one or two short questions first. Otherwise, start building.
## 2. Pick the template
Call `find_templates` with what you parsed: `audience`, plus `register_hint` (the mood) and `conversion_goal` when you know them. It returns the templates ranked for this brief.
- Use the best match unless something in its `antiCases` describes this person. In that case, skip it.
- A match score under about 50% means no template fits well. Say so, name the closest one and ask how to proceed.
- If the person wants to browse, call `find_templates` with `mode: "browse"`. Add `audience` to see one shelf, or `slugs` for the full detail of a shortlist.
## 3. Create the draft
Call `create_site_from_template` with `template_slug`, `site_name` and `brand_overrides`. Carry the brief's colours, and its fonts when it names a mood. If the template comes from a different line of work (for example a law-firm template used for a coaching business), also pass `page_slugs` so page addresses don't say "/attorneys".
The result includes a `manifest` listing every editable piece of text and every image. Work from it. Don't call `get_site` or `get_page` straight after creating.
## 4. Customize in one pass
- **Words:** one `patch_nodes` call covering every piece of template copy on every page, plus the header brand name. Write specific copy that the brief supports. Where you'd have to invent a fact (founding year, prices, an address), use a clear placeholder like "[your phone number]" rather than making one up.
- **Images:** one `replace_images_from_search` call for every image in the manifest. Start each query from its `suggested_query` and make it specific to this business. Never type an image URL from memory. If the person attached their own photo, put it in place with `place_attached_image`.
- **Palette:** if the brief's mood is very different from the template's, call `set_theme` with the new `colors` as well.
- **What they asked for:** build it on this first pass. If they named a contact form, prices or opening hours, they should be on the page you share.
## 5. Check your work
Call `read_rendered_page` on each page you built. Look for names, prices, phone numbers, addresses, FAQ answers or form options that still belong to the template's sample business, and fix them. They are your unfinished work, not the person's problem. Use `screenshot_page` only when the question is about how the page looks.
## 6. Share the preview and ask
Share the preview link (`preview-….sitelas.com`) and say that the real address stays empty until they choose to publish. Add a short list, at most four items, of guesses you made that the brief didn't settle, and invite corrections. Mention that they can also edit by hand at their site's `/edit` address.
Then ask whether to publish. Publish only on a clear yes, using `publish`, and never describe the site as live until that call has returned. Publishing is free and can be undone with `undo` (`what: "last_publish"`).
## How to talk while you work
Describe what you're making ("starting from a warm editorial layout that suits a bakery", "writing the menu section") and leave tool names out. If asked which template you started from, say so plainly.
Referenced files: 1 — file references are metadata, not package contents.
edit-and-publish4.6 KB
View saved version →
---
name: edit-and-publish
description: Use when someone wants to change a website they already have on Sitelas — copy, images, colours, sections, pages, navigation or SEO — or wants to publish, unpublish or undo a publish. Every change lands on a private draft. The live site changes only when the person explicitly says to publish.
---
# Edit and publish a Sitelas site
Every edit writes to the site's draft. The live address keeps showing the last published version until `publish` runs. Publishing changes what the public sees, so it needs the person's explicit go-ahead every time.
If the person's own instructions conflict with anything below, follow the person.
## Find the site and what's on it
- Call `list_sites` if you don't know which site they mean. If they have several, ask which one.
- Call `get_site` with `include: ["brief"]` before writing copy or changing the design, so new work matches the site's existing voice, colours and fonts.
- Call `get_page` to find the exact pieces of text and images to change. Before any change to the header or footer structure, call `get_page` with `view: "structure"` to see how it's nested.
## Make the change with the narrowest tool
| They want | Use |
| -------------------------------------------------- | -------------------------------------------------------------------------------- |
| Change words, links, button text or an image | `patch_nodes`, all changes in one call |
| Swap several photos | `replace_images_from_search` |
| Use a photo they attached | `place_attached_image`, naming the spot from `get_page` |
| Use their own photo that isn't attached | `get_editor_link` with `image_target`: a one-time link that adds it to that spot |
| Add a section | `add_section` |
| Remove or reorder things | `remove_nodes`, `move_nodes` |
| Add, copy, rename or delete a page | `add_page` (with `copy_of` to copy), `update_page`, `delete_page` |
| Change colours or fonts site-wide | `set_theme` |
| Blog posts, projects, team members and other lists | `list_content_items`, `add_content_item`, `edit_content_item` |
| How a list of them shows: order, count, card look | `patch_nodes` on the list (see `lists` in `get_page`), `set_card_design` |
| Search titles and descriptions | `update_seo` |
A new page doesn't appear in the menu on its own. Add a menu link with `insert_nodes`, or tell the person it isn't linked yet. Rename a page's address only with `update_page`, which also updates links and redirects the old address.
Use `delete_page`, `delete_content_item` and `delete_site` only when the person has asked for that deletion. Confirm before deleting a whole site.
## Show the change, then ask
1. Call `read_rendered_page` on the page you changed and confirm the change is there.
2. Share the preview link. Say plainly that the live site still shows the previous version.
3. Ask whether to publish.
## Publishing
- Call `publish` only after a clear yes, such as "publish it" or "make it live". "Change X" is not permission to publish X.
- To publish or take down a single page on a site that is already live, use `publish` or `unpublish` with its `page_slug`.
- Use `unpublish` (take the site offline) and `undo` with `what: "last_publish"` (go back to the previous published version) only when the person asks for exactly that.
- If `publish` is refused because of their plan (`billing_gate`), pass the message on as it is. Never take another site offline to make room.
- After publishing, give the live address and stop. Don't publish again unless they ask.
If they'd rather make a small change themselves, `get_editor_link` gives them the visual editor for the right page.
When you give someone a one-time photo link, Sitelas can't tell you when they have used it. When they say they're done, check the spot's image in `get_page` before saying it worked. If `place_attached_image` answers `placed: false`, the photo didn't come through: give them the link it returns instead of trying again.
Referenced files: 1 — file references are metadata, not package contents.
get-started2.18 KB
View saved version →
---
name: get-started
description: Use when someone has just connected Sitelas, opens with a greeting or "what can you do?", or says they need a website without saying what for. Finds out whether they already have a Sitelas site and gets them to a first concrete step in one turn.
---
# Get started with Sitelas
Sitelas builds and hosts real websites from this conversation. Connecting it changes nothing on the person's screen, so many people never send a first request. This skill turns that silence into one concrete next step.
If the person's own instructions conflict with anything below, follow the person.
## What to do
1. Call `list_sites`. It is read-only and tells you which situation you are in.
2. **No sites yet.** Say in a sentence that you can build and publish a real website from this chat. Then ask one question: what is the site for? Offer two or three one-line examples close to what you know about them, for example:
- "A one-page site for my bike repair shop, warm and hand-made, with a contact form."
- "A portfolio for my wedding photography, dark and minimal."
- "A page for my book club with a sign-up form."
Do not ask for a brief, a sitemap or a list of requirements. One sentence back from them is enough to start. When it arrives, use the `build-a-website` skill.
3. **Sites already exist.** Name them, with their address and whether each is live or still a draft. Offer the next real action that fits:
- a draft that is ready → offer to publish it (`edit-and-publish`)
- new form messages → offer to read them (`answer-form-messages`)
- a live site → offer an edit, a health check (`review_site`), or a custom domain (`launch-on-a-domain`)
Keep the whole reply to a few lines. Don't list every capability or name tools.
## Boundaries
- Sitelas edits only sites hosted on Sitelas. If they want to change a WordPress, Wix or Squarespace site, say so plainly and don't call any tool.
- Sitelas doesn't export code to host elsewhere, and it doesn't draw logos or illustrations. It uses stock photography from Pexels, or images the person provides.
- Sitelas doesn't take payments or run a shop, bookings or a newsletter service. Those stay with the person's own providers.
Referenced files: 1 — file references are metadata, not package contents.
launch-on-a-domain2.98 KB
View saved version →
---
name: launch-on-a-domain
description: Use when someone wants their Sitelas website on their own domain ("put it on mybakery.com", "connect my domain"), wants to check why a domain isn't working, or wants the site ready for search engines and analytics (titles and descriptions, sitemap, Google Analytics or Search Console). Walks through DNS one step at a time and reports exactly what the person needs to change at their registrar.
---
# Launch on your own domain
A Sitelas site always has a `….sitelas.com` address. The person can point a domain they own at it. You set the domain up on Sitelas and give them the exact DNS records. They add those records at their registrar themselves, because you can't reach their registrar.
If the person's own instructions conflict with anything below, follow the person.
## Connect a domain
1. Find the site with `list_sites` and confirm which domain they mean: the bare domain (`example.com`), `www.example.com`, or a subdomain (`shop.example.com`).
2. Call `set_custom_domain`. Relay its `dns_instructions` and `next_step` as they are. For a bare domain that is usually an A record plus a `www` CNAME; for a subdomain, a single CNAME. Don't rewrite the record values.
3. Tell them the records usually take 5 to 30 minutes to take effect after they're saved, sometimes longer.
4. When they say the records are in, call `check_custom_domain` with the `domain`.
- **Verified and published:** give them the `https://` address.
- **Verified but the site was never published:** the domain will show nothing until the site is published. Say so and offer to publish. Call `publish` only after a clear yes.
- **Not verified yet:** show the `expected_records` next to what they entered so they can see the mismatch. Usually it's the wrong host, the wrong target, or an old record that needs removing.
`check_custom_domain` without a domain shows what is already attached. Use `remove_custom_domain` only when they ask to remove a domain.
A custom domain is a Pro feature on Sitelas. If a call returns `billing_gate`, pass its message on as it is. Don't quote prices or try to sell a plan, and carry on with anything else they asked for.
## Ready for search engines and sharing
- `update_seo` sets each page's search title, description and share image. Without a page, it sets site-wide defaults: language, business type, address, phone, logo, and verification tags for Google Search Console, Bing, Meta or Pinterest. `get_site` shows the current values first.
- Every published site serves its sitemap at `/sitemap.xml` on its live address. That is the address to submit in Search Console.
- `set_tracking_codes` adds the owner's own Google Analytics, Google Tag Manager, Meta Pixel or Plausible ID. Ask them for the ID; never invent one.
- `review_site` lists problems worth fixing before they share the site widely, such as leftover sample text, missing titles or broken links.
These settings change the draft. Like any edit, they reach the live site only when the person says to publish.
Referenced files: 1 — file references are metadata, not package contents.