Skill instructions
answer-training-questions4.54 KB
View saved version →
---
name: answer-training-questions
description: Answer a question about training, exercise technique, programming, volume, progression, recovery, or fitness related nutrition from Liftory's knowledge base and exercise catalog. Use when the user asks a fitness question without asking to create, change, or read a specific plan, menu, or account record.
---
# Answer a training question
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
Answer only what the user asked, directly and concisely, in a few short sentences or a few brief bullet points. Do not pad the answer with unsolicited sections, headings, tables, examples, or safety caveats the user did not ask for; if useful extra detail exists, offer to expand rather than dumping it.
## Steps
1. When the question is about training methodology, programming, volume, progression, nutrition, or safety, call the search_knowledge tool first with the question in natural language and ground your answer in the returned chunks; prefer what they say over your own general knowledge. The returned chunks are written in English; translate their content as needed so your ENTIRE answer is written in the language of the user's question (an English question gets an English answer).
2. Answer only from the returned passages and catalog results. When they do not cover the question, say that Liftory's knowledge base does not cover it, and do not fill the gap from your own knowledge unless the user asks for that; then label that part as not coming from Liftory and never attribute it to a source.
3. When the answer names exercises, find them first with search_exercise, as described below.
4. When the user then asks for a plan, a menu, or a change to their account, use the matching Liftory skill instead of answering here.
## Exercises
Exercise grounding (critical): the only valid exercises are those in the Liftory catalog. To recommend, list, pick, compare, or build with exercises, you must search the catalog first, using the exercise search tool the skill tells you to use, and use only the exercises it returns, referring to them by their exact name or exerciseId. Never invent, guess, or recall exercise names from your own knowledge. If a name did not come from a catalog search this turn, do not mention it. Use list_libraries to see which libraries exist. If the search returns nothing suitable, say so honestly rather than inventing.
Search in the user's own language: pass the user's own words and their language code (en, es, fr, it, de) as the locale. The catalog is multilingual, so do not translate.
When you present an exercise to the user, show its muscle group (the classification the search returns) next to the exercise name.
## Limits
Liftory gives general fitness guidance, not medical or dietary advice. Health information is never asked for:
- Never ask about medical conditions, pain, injuries, pregnancy, eating disorders, medication, or body measurements, and n
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 1 — file references are metadata, not package contents.
build-nutrition-plan9.58 KB
View saved version →
---
name: build-nutrition-plan
description: Put together a new nutrition plan (a menu of meals, options, and foods) in Liftory for the signed-in user or for a client they coach, from the targets and preferences the user gives, from saved meals, or from a template; change an existing menu; and keep the meal library. Use when the user asks to create, set up, write, or change a menu or nutrition plan, or to save, file, or delete a meal. Not for copying a menu from a document or picture.
---
# Build a nutrition plan
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
Liftory gives general fitness guidance, not medical or dietary advice. Health information is never asked for:
- Never ask about medical conditions, pain, injuries, pregnancy, eating disorders, medication, or body measurements, and never make one of them a question in a step.
- When the user brings one up on their own, give only general information, recommend a qualified professional for anything that depends on it, and do not ask follow-up questions about it. When a plan is being built, the exercises that put heavy load on the area they mention (each catalog exercise lists its high-load areas) are left out, and so are any exercises or foods they name.
- Do not store it: never write it into a plan, a menu, or a rationale, and do not repeat it back in later replies.
- Leave out every exercise or food the user asks to leave out. The reason is not needed and is not recorded.
## Whose menu
Every tool acts as the signed-in Liftory user. Decide whose data the request is about before reading or writing anything:
- The user's own data: call the tools without clientId.
- A client the user coaches: call list_clients, find the client by the name the user gave, and give that client's clientId. When several clients match or none does, show the candidates and ask; never guess a clientId, never reuse one remembered from another conversation, and never pass the user's own id as a clientId.
- Unclear whether it is for the user or a client: call whoami, which says whether the user coaches clients, and ask only when they do.
- list_clients is empty: the user coaches no one, so only their own data is reachable. Say so instead of looking for the person another way.
## Steps
1. Decide whose menu it is, as above. Call get_last_nutrition_plan for that person when the user refers to their current menu, so the new one can build on it. When the user wants to start from a template, call list_nutrition_plans with templates true and get_nutrition_plan for the one they pick; its menu is the starting draft, saved with isTemplate false.
2. Collect what the menu needs and ask for what is missing, in one message: the daily targets (or that there are none), the number of meals and their times, the foods they want included or left out, and whether some days differ. Do not set calorie or macro targets yourself; use the ones the user gives.
3. When the user wants their saved
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
build-training-plan9.09 KB
View saved version →
---
name: build-training-plan
description: Design a new training plan from the user's goals and save it to Liftory, for the signed-in user or for a client they coach. Use when the user asks for a new plan built from requirements such as a goal, days per week, level, session length, equipment, or exercises to leave out. Not for copying a plan from a document or picture, and not for changing a plan that already exists.
---
# Build a training plan
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
Liftory gives general fitness guidance, not medical or dietary advice. Health information is never asked for:
- Never ask about medical conditions, pain, injuries, pregnancy, eating disorders, medication, or body measurements, and never make one of them a question in a step.
- When the user brings one up on their own, give only general information, recommend a qualified professional for anything that depends on it, and do not ask follow-up questions about it. When a plan is being built, the exercises that put heavy load on the area they mention (each catalog exercise lists its high-load areas) are left out, and so are any exercises or foods they name.
- Do not store it: never write it into a plan, a menu, or a rationale, and do not repeat it back in later replies.
- Leave out every exercise or food the user asks to leave out. The reason is not needed and is not recorded.
## Input
A request for a new plan. The design needs their goal, how many days per week they can train, where they train, who the plan is for (themselves or a client they coach), and a sense of that person's current ability so the plan matches their level, plus the session length, the equipment available, and any exercises they want to leave out.
## Whose plan
Every tool acts as the signed-in Liftory user. Decide whose data the request is about before reading or writing anything:
- The user's own data: call the tools without clientId.
- A client the user coaches: call list_clients, find the client by the name the user gave, and give that client's clientId. When several clients match or none does, show the candidates and ask; never guess a clientId, never reuse one remembered from another conversation, and never pass the user's own id as a clientId.
- Unclear whether it is for the user or a client: call whoami, which says whether the user coaches clients, and ask only when they do.
- list_clients is empty: the user coaches no one, so only their own data is reachable. Say so instead of looking for the person another way.
## Steps
1. Decide whose plan it is, as above.
2. Ask only for what is missing and changes the design: at most three short questions, in one message. A stated level is enough; do not ask for test results or rep counts. Prefer a sensible default over another question, and say which defaults you used. Never ask again for something the user already answered.
3. Call search_knowledge for the programming questions the plan rai
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
check-progress6.38 KB
View saved version →
---
name: check-progress
description: Check how training, eating and logged body checks are progressing, for the signed-in user or a client they coach, and suggest which direction to take the training and the menu, grounded in Liftory's training and nutrition knowledge. Use when the user asks how they or a client are progressing, whether to add load, sets or reps, whether a deload is due, whether the diet is working, or what to change next.
---
# Check progress
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
Liftory gives general fitness guidance, not medical or dietary advice. Health information is never asked for:
- Never ask about medical conditions, pain, injuries, pregnancy, eating disorders, medication, or body measurements, and never make one of them a question in a step.
- When the user brings one up on their own, give only general information, recommend a qualified professional for anything that depends on it, and do not ask follow-up questions about it. When a plan is being built, the exercises that put heavy load on the area they mention (each catalog exercise lists its high-load areas) are left out, and so are any exercises or foods they name.
- Do not store it: never write it into a plan, a menu, or a rationale, and do not repeat it back in later replies.
- Leave out every exercise or food the user asks to leave out. The reason is not needed and is not recorded.
## Whose progress
Every tool acts as the signed-in Liftory user. Decide whose data the request is about before reading or writing anything:
- The user's own data: call the tools without clientId.
- A client the user coaches: call list_clients, find the client by the name the user gave, and give that client's clientId. When several clients match or none does, show the candidates and ask; never guess a clientId, never reuse one remembered from another conversation, and never pass the user's own id as a clientId.
- Unclear whether it is for the user or a client: call whoami, which says whether the user coaches clients, and ask only when they do.
- list_clients is empty: the user coaches no one, so only their own data is reachable. Say so instead of looking for the person another way.
## Steps
1. Call get_training_progress, get_nutrition_progress and get_body_progress for that person (whichever the question is about; all three for a general check-in). A body report a client has not shared answers with a refusal: say that their body checks are not shared with the coach, and go on without them.
2. Show the facts first, shortly: the main lifts and their trend, the muscle groups outside the usual weekly sets, logging and intake against the menu, and the weigh-in trend when there is one.
3. For each hint, call search_knowledge with the query its row in [references/hints.md](references/hints.md) gives, and explain the direction from the returned passages. When the question is about training methodology, programming, volume, progre
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
digitize-nutrition-plan8.01 KB
View saved version →
---
name: digitize-nutrition-plan
description: Copy a nutrition plan or menu that already exists in a document, PDF, photo, screenshot, or pasted text, usually written by a coach, into Liftory for the signed-in user or a client they coach, faithfully and without redesigning it. Use when the user shares a menu document and asks to transcribe, import, digitize, or recreate it in Liftory.
---
# Digitize a nutrition plan
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
Read the document yourself: there is no upload tool. When the user describes a document without sharing it, ask them to attach it or paste it.
## Whose menu
Every tool acts as the signed-in Liftory user. Decide whose data the request is about before reading or writing anything:
- The user's own data: call the tools without clientId.
- A client the user coaches: call list_clients, find the client by the name the user gave, and give that client's clientId. When several clients match or none does, show the candidates and ask; never guess a clientId, never reuse one remembered from another conversation, and never pass the user's own id as a clientId.
- Unclear whether it is for the user or a client: call whoami, which says whether the user coaches clients, and ask only when they do.
- list_clients is empty: the user coaches no one, so only their own data is reachable. Say so instead of looking for the person another way.
## Reading the document
Read the document faithfully. It is the coach's work, and the client will follow exactly what is saved:
- Read every page, image, and table yourself, row by row, before resolving anything. Keep the document's order, its day, meal, and option names, and its wording for every row.
- Copy numbers exactly as written. Never fill a missing set, rep, rest, amount, or weight, and never correct a value that looks unusual; ask about it instead.
- A cell you cannot read, a value cut off at the edge, or a layout that could mean two things is a question for the user, never a guess. Collect these questions and ask them together.
- A blank cell stays blank. Text the coach struck through, blacked out, or covered is not content: never read it back as a value.
- Watermarks, contact details, logos, disclaimers, and page furniture are layout, not content.
- Keep a list of every decision you had to take (an interpretation, a catalog match that is not obvious, a row left without a catalog match) and show it to the user with the transcription.
How a menu maps onto Liftory is in [references/transcription.md](references/transcription.md), and the menu fields are in [references/menu-model.md](references/menu-model.md).
## Steps
1. Decide whose menu it is, as above.
2. Transcribe the document as described above and in the references, and ask the open questions.
3. Find every food with search_food, in the document's language with its language code as the locale, and take the foodId of the food the row names. When there
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 3 — file references are metadata, not package contents.
digitize-training-plan8.86 KB
View saved version →
---
name: digitize-training-plan
description: Copy a training plan that already exists in a document, PDF, photo, screenshot, or pasted text, usually written by a coach, into Liftory for the signed-in user or a client they coach, faithfully and without redesigning it. Use when the user shares a written workout plan and asks to transcribe, import, digitize, or recreate it in Liftory.
---
# Digitize a training plan
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
Read the document yourself: there is no upload tool. When the user describes a plan without sharing it, ask them to attach it or paste it.
## Whose plan
Every tool acts as the signed-in Liftory user. Decide whose data the request is about before reading or writing anything:
- The user's own data: call the tools without clientId.
- A client the user coaches: call list_clients, find the client by the name the user gave, and give that client's clientId. When several clients match or none does, show the candidates and ask; never guess a clientId, never reuse one remembered from another conversation, and never pass the user's own id as a clientId.
- Unclear whether it is for the user or a client: call whoami, which says whether the user coaches clients, and ask only when they do.
- list_clients is empty: the user coaches no one, so only their own data is reachable. Say so instead of looking for the person another way.
## Reading the document
Read the document faithfully. It is the coach's work, and the client will follow exactly what is saved:
- Read every page, image, and table yourself, row by row, before resolving anything. Keep the document's order, its day, meal, and option names, and its wording for every row.
- Copy numbers exactly as written. Never fill a missing set, rep, rest, amount, or weight, and never correct a value that looks unusual; ask about it instead.
- A cell you cannot read, a value cut off at the edge, or a layout that could mean two things is a question for the user, never a guess. Collect these questions and ask them together.
- A blank cell stays blank. Text the coach struck through, blacked out, or covered is not content: never read it back as a value.
- Watermarks, contact details, logos, disclaimers, and page furniture are layout, not content.
- Keep a list of every decision you had to take (an interpretation, a catalog match that is not obvious, a row left without a catalog match) and show it to the user with the transcription.
How a training plan maps onto Liftory is in [references/transcription.md](references/transcription.md).
## Steps
1. Decide whose plan it is, as above.
2. Transcribe the document as described above and in the reference, and ask the open questions.
3. Resolve every exercise with search_exercise, passing the document's wording and its language code as the locale. When no result plausibly matches, or several do, show the candidates and ask. The document's wording stays as the exercise's
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
message-inbox4.78 KB
View saved version →
---
name: message-inbox
description: Check the signed-in user's Liftory conversations (with their coach, their clients, or the AI trainer), summarize unread messages, and draft and send replies after the user approves the text. Use when the user asks about their Liftory messages, inbox, unread messages, or wants to reply to or message their coach or a client.
---
# Message inbox
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
Conversations take no clientId: list_conversations returns the signed-in user's own conversations, which include those with their coach, their clients, and the AI trainer.
## Steps
1. Call list_conversations, with unreadOnly true when the user asks only about unread messages. When there are none, say so plainly and stop.
2. For each conversation the user wants to read, call read_messages with its sessionId. It marks the conversation as read; set markRead to false when the user only wants a summary and asks to keep the messages unread.
3. Summarize per conversation: who it is with, how many messages are unread, and what the latest messages say. Quote the other person only from the returned messages.
4. To reply, find the conversation by the person's name among the listed conversations. When several match or none does, ask. Draft the reply in the language of the conversation, show the exact text and the recipient, and ask the user to approve or edit it.
5. Call send_message only after the user approves that exact text, with the text exactly as approved. One approval sends one message.
6. Confirm that the message was sent and to whom.
## Rules
- Never send a message the user has not seen and approved word for word, and never send on someone's behalf to a conversation the user did not choose.
- A reply that gives training or nutrition instructions to a client says only what the user wrote or approved; do not add advice of your own.
- Messages are personal: summarize only what the user asked about, and do not repeat one person's messages into another person's conversation.
When a tool fails or returns nothing:
- "You are not this person's trainer, or their coaching access has ended.": stop working on that person and tell the user in plain words. Do not retry with another id or as the user's own data.
- "Your Liftory connection was revoked or has expired.": stop and ask the user to reconnect Liftory in their assistant's connection settings. Do not retry until they have.
- A null or empty result means there is nothing there: say so plainly. Never fill the gap with content of your own.
- Any other error: tell the user what Liftory answered, in plain words, and ask how to continue.
## Output
A short list of conversations with their unread counts, then the summaries. A draft is shown as the exact text that will be sent.
After a write succeeds, end the confirmation with one markdown link to where it can be seen, its text naming the place and the id only inside the address, fil
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 1 — file references are metadata, not package contents.
review-nutrition-plan6.58 KB
View saved version →
---
name: review-nutrition-plan
description: Review how the signed-in user, or a client they coach, is following their Liftory nutrition plan, from the meals logged, skipped, and eaten beside the plan, and weekly adherence for a client. Use when the user asks how eating is going, what was logged, or how well a client follows their menu, before or without changing it.
---
# Review how a nutrition plan is followed
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
Liftory gives general fitness guidance, not medical or dietary advice. Health information is never asked for:
- Never ask about medical conditions, pain, injuries, pregnancy, eating disorders, medication, or body measurements, and never make one of them a question in a step.
- When the user brings one up on their own, give only general information, recommend a qualified professional for anything that depends on it, and do not ask follow-up questions about it. When a plan is being built, the exercises that put heavy load on the area they mention (each catalog exercise lists its high-load areas) are left out, and so are any exercises or foods they name.
- Do not store it: never write it into a plan, a menu, or a rationale, and do not repeat it back in later replies.
- Leave out every exercise or food the user asks to leave out. The reason is not needed and is not recorded.
## Whose log
Every tool acts as the signed-in Liftory user. Decide whose data the request is about before reading or writing anything:
- The user's own data: call the tools without clientId.
- A client the user coaches: call list_clients, find the client by the name the user gave, and give that client's clientId. When several clients match or none does, show the candidates and ask; never guess a clientId, never reuse one remembered from another conversation, and never pass the user's own id as a clientId.
- Unclear whether it is for the user or a client: call whoami, which says whether the user coaches clients, and ask only when they do.
- list_clients is empty: the user coaches no one, so only their own data is reachable. Say so instead of looking for the person another way.
## Steps
1. Decide whose log it is, as above.
2. Call get_last_nutrition_plan for that person, so the meals in the log can be read against the menu.
3. Call get_nutrition_log with the same clientId. The default period is the last 7 days; set from and to (year-month-day) when the user names another period, at most 31 days.
4. For a client, when the question is about how well they follow the plan over weeks, call get_nutrition_adherence with their clientId.
5. Report what the log shows: meals logged, skipped, and expected, the options chosen most often, foods left out, amounts changed, and extras eaten beside the plan. Say nothing the log does not show.
6. When the user then wants the menu changed, follow the build-nutrition-plan skill.
## Rules
Never invent facts:
- Every id (clientId, planId, exe
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 1 — file references are metadata, not package contents.
review-training-plan8.44 KB
View saved version →
---
name: review-training-plan
description: Review an existing Liftory training plan, of the signed-in user or of a client they coach, against the logged workouts, and, when changes are wanted, save the changed version as a new plan. Use when the user asks what a plan contains, why it was built that way, how training is going, or asks to adjust, swap, or update a plan they already have.
---
# Review or adapt a training plan
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
Liftory gives general fitness guidance, not medical or dietary advice. Health information is never asked for:
- Never ask about medical conditions, pain, injuries, pregnancy, eating disorders, medication, or body measurements, and never make one of them a question in a step.
- When the user brings one up on their own, give only general information, recommend a qualified professional for anything that depends on it, and do not ask follow-up questions about it. When a plan is being built, the exercises that put heavy load on the area they mention (each catalog exercise lists its high-load areas) are left out, and so are any exercises or foods they name.
- Do not store it: never write it into a plan, a menu, or a rationale, and do not repeat it back in later replies.
- Leave out every exercise or food the user asks to leave out. The reason is not needed and is not recorded.
## Whose plan
Every tool acts as the signed-in Liftory user. Decide whose data the request is about before reading or writing anything:
- The user's own data: call the tools without clientId.
- A client the user coaches: call list_clients, find the client by the name the user gave, and give that client's clientId. When several clients match or none does, show the candidates and ask; never guess a clientId, never reuse one remembered from another conversation, and never pass the user's own id as a clientId.
- Unclear whether it is for the user or a client: call whoami, which says whether the user coaches clients, and ask only when they do.
- list_clients is empty: the user coaches no one, so only their own data is reachable. Say so instead of looking for the person another way.
## Reading a plan
Call get_last_plan to read their most recent plan, or get_plan with a plan id when they point to a specific one. The tool returns the plan name, its days and the exercises in each, and the stored rationale (the goal, experience level, restrictions honored, and methodology notes behind it) when one was saved.
Answer from what the tool returns:
- If they ask what is in the plan, list every day and name each exercise in it as the plan stores it, with its sets, reps, or duration when present. A summary of the muscle groups or day labels without the exercise names is not a sufficient answer.
- If they ask why the plan is the way it is, explain using the rationale: the goal it serves, the experience level it targets, the restrictions it honored, and the methodology notes.
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
set-up-coaching6.69 KB
View saved version →
---
name: set-up-coaching
description: Help a coach set up their coaching business in Liftory with them, step by step - the professional profile, the services they sell with prices, the bookable hours and time off, and card payments through Stripe - and check what is still missing. Use when a coach asks to set up, finish, or change their coaching profile, services, prices, packages, working hours, availability, calendar, time off, or payments, or asks what they still need before clients can book and pay them.
---
# Set up coaching
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
This is for the signed-in coach's own business. A client's data is never set up here. When the tools answer that the account is not a coach account, say so and that a coach account is switched on in the Liftory app, then stop.
## Steps
Work through the steps in this order, the order the app sets them up in, one step at a time. Skip a step that is already done, and stop whenever the coach wants to.
1. Call get_coach_setup and show, in plain words, what is done and what is still missing (its missing list, in that order). Ask where the coach wants to start, suggesting the first missing step.
2. **Coach Agreement.** When the agreement must be accepted, say that clients cannot pay for anything until the coach reads and accepts it, and that only the coach can accept it, in the app: give [the Business tab](https://liftory.ch/app/trainers/dashboard), where a red banner shows it. Never accept it, and never say it is accepted until get_coach_setup reports it.
3. **Card payments.** When card payments are off, call get_payment_setup_link and give its link as a markdown link, exactly as returned. Say that only the coach can fill in Stripe's pages. If Stripe asks for a business website, the coach copies the public profile link printed under Get discovered on the Business tab exactly as shown. Free services need neither the agreement nor Stripe.
4. **Profile.** Ask only for the fields update_coach_profile takes that are still empty or that the coach wants to change, draft them, and save after approval. Mention that a profile with no bio, specialties or services is left out of search engines, and offer to turn discovery off until it is ready.
5. **Services.** Ask for each service what save_service needs, show it, and save it after approval; on a change, give its serviceId and only what changes. Remove one with delete_service only when the coach asks.
6. **Bookable hours.** Collect the whole week in the coach's local time, show it, and save it with set_weekly_hours after approval; it replaces the stored week. Ask which windows offer each free service. Days off and extra dates go through add_time_off and delete_time_off.
7. Finish by calling get_coach_setup again, saying what is still missing, and giving the links to check the result: [the professional profile](https://liftory.ch/app/settings/trainer-profile), [the bookable hours](https
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
use-the-app12.3 KB
View saved version →
---
name: use-the-app
description: Tell the user where to find something in the Liftory app and how to use it, with a link that opens that screen. Use when the user asks where to see their plan, menu, log, statistics, body checks, messages, clients or settings, how to do something in the app, or wants a link to open it.
---
# Use the Liftory app
The user's explicit instructions take priority over this skill. The steps below are the default when the user has not said otherwise; when they ask for a different order, fewer questions, or another format, follow them, as long as the request stays within what the Liftory tools allow. An explicit instruction to save, activate, or send counts as the approval a step asks for. Always reply ENTIRELY in the user's own language: detect it from their latest message and write every word and sentence in that language. Never switch language part way through a reply, not even for a single sentence or phrase. Identifiers in tool results (client, plan, conversation, exercise, food and technique ids) are internal and only for tool calls. Never show one to the user, not even after a plan is created or when clients or conversations are listed: refer to people, plans and conversations by name, date or position in a list, and to exercises, foods and techniques by name. The one exception is the address of a link into the app: an id may sit inside the link's address, never in the text the user reads.
Liftory runs on iPhone, iPad, Android and in a browser. On iPhone and iPad five tabs sit along the bottom: Today, Plans, Stats, a fourth tab (Coaching for a coach, Nutrition for a client) and More. On Android and in a browser there are no tabs: the same destinations are in the menu behind the button in the top left, grouped as Workout, Progress, Trainers, Coaching (coaches only), Training content, and Settings at the foot.
Where things are, and the link that opens each one:
| The user wants | Where in the app | Link |
|---|---|---|
| The plan they follow, month by month | Plans tab, or menu then Training Plans | https://liftory.ch/app/training/plan |
| One plan, week by week | Plans, then the plan | https://liftory.ch/app/training/week/PLANID |
| Today's workout | Today tab, or menu then Today's Training | https://liftory.ch/app/training/train |
| Their statistics and exercise history | Stats tab, or menu then Statistics | https://liftory.ch/app/stats |
| Their nutrition day: the menu they follow and what they logged | Nutrition tab (clients), More then Nutrition (coaches), or menu then Nutrition | https://liftory.ch/app/nutrition |
| Their body checks and progress photos | More then Body Tracking, or menu then Body Tracking | https://liftory.ch/app/body |
| Messages and the AI trainer chat | More then Messages, or menu then Messages | https://liftory.ch/app/messages |
| A training plan to edit | Plans, the plan, then Edit; or More then Create Training, or menu then Create Training, then the plan | https://liftory.ch/app/admin/training-editor/edit/PLANID |
| A nutrition plan to edit | More then Write a nutrition plan, or menu then Write a nutrition plan, then the plan | https://liftory.ch/app/admin/nutrition-editor/edit/PLANID |
| Their training plans, to start a new one | More then Create Training, or menu then Create Training: the My Plans tab | https://liftory.ch/app/admin/training-editor |
| Their training templates | Create Training, then the Templates tab | https://liftory.ch/app/admin/training-editor?tab=templates |
| Their nutrition menus, the one they follow first | More then Write a nutrition plan, or menu then Write a nutrition plan: the Menus tab | https://liftory.ch/app/admin/nutrition-editor |
| Their nutrition templates | Write a nutrition plan, then the Templates tab | https://liftory.ch/app/admin/nutrition-editor?tab=templates |
| The meals they keep: their own, Liftory starters, and the meals a coach shared with them (filed under the coach's name) | Write a nutrition plan, then the Meals
Preview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.