approve_roleplay_handoff
ChatGPTAuthorizes a hand-off for the signed-in user so the opened web-app link can start the call. Paired with the browser open on the Start click. App-only.
create_voice_simulation
ChatGPTCreates a voice roleplay the user can practise against — a character with a role, a personality and a stance — generated from one written brief. That brief is the entire input: there is no interview step and no follow-up questions, and nothing outside it reaches the roleplay. Generation is asynchronous, so the call returns a "generating" status and a nopressure_simulation_id straight away while a card builds in the chat, showing progress and then the finished simulation with a Start button for the user. The card, edit and practice-session tools take that id. Formerly create_hyperrealistic_simulation, the name earlier NoPressure skills use. When an older skill requests that creation action, use create_voice_simulation. How the NoPressure tools fit together is documented in skill://nopressure/SKILL.md.
get_last_session_status
ChatGPTPolls for the recorded session being watched. App-only.
get_onboarding_answers
ChatGPTReturns what the signed-in user said about themselves in the short questionnaire shown when they connected NoPressure — their role, why they are trying it, what they mainly want to practise, and how often they expect to — as plain text. Read it as context next to this chat and your own memory of the user; what the user says now outweighs it, and a question it already answers needs no asking. An answer that was skipped or not answered, or a question the version the user saw did not ask, tells nothing. How the NoPressure tools fit together is documented in skill://nopressure/SKILL.md.
get_practice_feedback_context
ChatGPTReads one recorded practice session for ChatGPT to assess: the transcript, the simulation's core challenge and the situation the user was shown, both roles, the language, and any feedback already saved for it. Instructions for this case come back as text beside it: the assessment rubric, or how to present feedback already saved. Use the roleplay_session_id the practice-session card sent; ids are opaque, never guess one. How feedback on a practice session is given is documented in skill://nopressure-feedback/SKILL.md.
get_practice_feedback_status
ChatGPTPolls for ChatGPT's feedback on a recorded session being saved. App-only.
get_roleplay_setup_status
ChatGPTPolls simulation generation. App-only.
get_simulation_card
ChatGPTRenders the start card for a simulation that already exists: its scene image, title, description, and the Start button that launches the voice roleplay. This is how a user runs one they already have — to retry it, or after editing it. A simulation is reusable and every run produces its own session and debrief, which is what makes progress across attempts comparable; a second simulation of the same situation would instead generate a different character. The card is the output — the result itself carries only the id back. Fails while the simulation is still generating, and permanently if its generation failed — in which case a new simulation is needed. How the NoPressure tools fit together is documented in skill://nopressure/SKILL.md.
get_simulation_data
ChatGPTReturns everything editable about a simulation: the title and the card blurb the user sees, plus its content — the roleplay character (their role, beliefs, interests, mindset, opening line) and the situation as each side is given it. What comes back is exactly what update_simulation_data takes back. Scene art and voice are not part of it. Fails while the simulation is still generating, and permanently if its generation failed — in which case a new simulation is needed. How the NoPressure tools fit together is documented in skill://nopressure/SKILL.md.
record_agentic_workflow
ChatGPTSaves a note in NoPressure about a recurring practice workflow the user already set up in ChatGPT, so NoPressure provides relevant practice in the workflows they set up; the user can change it on their My account page. It does not create, schedule, run or stop the workflow: ChatGPT does that. Call it only once the workflow really exists, with its name, trigger, a high-level description of what it does and the current focus areas; the user's name is not needed. Call it again whenever the focus areas change, not merely because a run happened. How the NoPressure tools fit together is documented in skill://nopressure/SKILL.md.
record_onboarding_step
ChatGPTRecords progress through the NoPressure onboarding the user started, as high-level steps, so NoPressure knows which setup steps are done and the user can later continue the onboarding from that step; the user can see it on their My account page. Only during that onboarding, once per turn before the reply's final text. Each step is one sentence naming a high-level step, e.g. "Picked a goal" or "Offered a rehearsal", never the user's words, names, details of their situation or anything read from their sources. The first call omits onboarding_session_id and returns one to pass on every later call. Set outcome when the turn ended in a simulation created, a cheatsheet given, feedback given or a workflow recorded; the first outcome completes the onboarding. Stop once the user is simply practising, says not now, or turns to something unrelated.
save_practice_feedback
ChatGPTSaves the feedback ChatGPT wrote for one recorded practice session. One result per session: an identical retry returns the stored result, and different content is refused rather than overwritten. Source, rubric version and save time are assigned by the server. An assessed result needs recorded user speech; otherwise save insufficient_evidence. How feedback on a practice session is given is documented in skill://nopressure-feedback/SKILL.md.
save_practice_questionnaire
ChatGPTSaves what the user chose in the practice questionnaire: the rating, and once given, their optional comment and follow-up consent or their Skip. Any contact email comes from the signed-in account. App-only.
show_practice_questionnaire
ChatGPTRenders the practice questionnaire for one recorded session: a 1–5 rating, then an optional comment and follow-up consent, all chosen and submitted by the user in the card. Unrelated to the onboarding questionnaire. Called once per session in a chat, after the feedback is saved or found already saved; the coaching is written below the card, never inside it. The result carries the session id; the saved answers stay in the card. How feedback on a practice session is given is documented in skill://nopressure-feedback/SKILL.md.
show_practice_session
ChatGPTRenders a card that follows a roleplay the user has just started. The watch runs forward from the moment of this call — it matches a session that begins after it, rather than an earlier attempt at the same simulation. The result carries a monitoring status and nothing more. Once the session is saved, the card offers Continue in chat, which sends its roleplay_session_id into the conversation for feedback; the card then shows it is waiting until that feedback is saved. The nopressure_simulation_id has to be the exact one that was given — ids are opaque, so a guessed one either fails to resolve or watches a different simulation. Formerly monitor_last_simulation_session, the name earlier NoPressure skills use. When an older skill asks for that tool, use show_practice_session. How the NoPressure tools fit together is documented in skill://nopressure/SKILL.md.
update_simulation_data
ChatGPTWrites an edited simulation back — its title, its card blurb, and its content. The write is whole-object: what is sent replaces what is stored, so any value not carried over is lost, and content rebuilt from scratch loses the generated detail that makes the character behave like a person. An edit is therefore what get_simulation_data returned with the specific values the user asked about changed in place. Scene art and voice sit outside this call and stay as they were, so writing a new gender changes the text while the portrait and the voice keep the ones the character was cast with — a different gender needs a new simulation. How the NoPressure tools fit together is documented in skill://nopressure/SKILL.md.