This prompt is designed for product teams building human-in-the-loop (HITL) agent handoffs. Use it when your orchestrator has determined that a role transition is necessary, but policy, risk level, or regulation requires explicit user consent before the handoff executes. The prompt generates a clear, user-facing message that explains why the change is happening, what the new role will access, what the user should expect, and how they can approve or decline. This is not a prompt for deciding whether a handoff should occur. That decision belongs to your orchestrator logic and role transition validation prompts. This prompt handles the communication layer: turning a machine-level handoff decision into a trustworthy user interaction.
Prompt
Role Transition User Approval Prompt Template

When to Use This Prompt
Defines the specific job-to-be-done, ideal user, and operational boundaries for the Role Transition User Approval Prompt Template.
The ideal user is an AI product engineer or platform developer integrating this prompt into an agent harness. The required context includes the current role name, the proposed role name, the reason for the transition, the new role's capabilities and data access scope, and the user's available actions (approve, decline, ask questions). You must also provide the system's transparency policy level—whether the system should disclose technical details or keep the explanation high-level. This prompt is essential for regulated deployments, high-risk actions, financial services, healthcare workflows, and any product where transparency and user control are non-negotiable.
Do not use this prompt when the handoff is low-risk, purely internal, or already covered by a blanket user agreement. Do not use it to decide if a handoff is safe—that's the job of a Role Transition Validation Prompt. Do not use it for agent-to-agent handoffs where no user is in the loop. If your product operates in a jurisdiction requiring specific consent language (e.g., GDPR, HIPAA), you must review the generated message against your legal requirements. This prompt produces the message text; your application must handle the consent capture, timeout, and escalation logic. Always log the generated message, the user's response, and the timestamp for audit trails.
Use Case Fit
Where the Role Transition User Approval Prompt works, where it fails, and what you must have in place before using it in production.
Good Fit: Regulated Human-in-the-Loop Workflows
Use when: a role transition grants elevated permissions, accesses sensitive data, or changes the scope of AI authority in a regulated domain (healthcare, finance, legal). Guardrail: embed the approval prompt inside a review queue that logs consent, timestamps the decision, and prevents the transition from executing until a human explicitly approves.
Good Fit: User-Facing Multi-Agent Systems
Use when: backend agent handoffs change what the user experiences—different persona, different capabilities, or different data access. Guardrail: surface the approval request in the user's primary interface with clear language about what is changing and why, and provide a one-click opt-out that preserves the current session state.
Bad Fit: Fully Autonomous Background Handoffs
Avoid when: role transitions are internal implementation details with no user-visible impact and no permission escalation. Guardrail: use a silent handoff protocol instead. Adding user approval to invisible transitions creates friction without safety benefit and trains users to click through consent dialogs.
Bad Fit: High-Frequency Sub-Second Transitions
Avoid when: agents switch roles multiple times per second in a real-time pipeline where human latency would break the system. Guardrail: batch related transitions under a single approval scope defined at session start, or use pre-authorized role maps with hard boundaries that the orchestrator enforces programmatically.
Required Input: Role Capability Manifest
Risk: the approval prompt cannot explain what the new role will access unless the system has a machine-readable capability declaration. Guardrail: require a structured manifest listing tools, data scopes, output formats, and explicit limitations for every role before generating approval language. Validate the manifest against actual permissions at runtime.
Operational Risk: Consent Fatigue
Risk: users bombarded with frequent approval requests will blindly approve without reading, defeating the safety purpose. Guardrail: implement session-scoped pre-approval for predictable transitions, rate-limit approval prompts, and track consent-click velocity. Escalate to a human reviewer if approval patterns suggest fatigue or automation.
Copy-Ready Prompt Template
Paste this prompt into your application to generate a user-facing approval request when a role transition requires human consent.
This template produces a structured approval request that explains why a role change is needed, what the new role will access, and what the user should expect. It is designed for human-in-the-loop agent handoffs where transparency and consent are required before the system transitions control to a different sub-agent with elevated permissions or different data access scope. Replace every square-bracket placeholder with live data from your orchestrator and session state before sending the prompt to the model.
textYou are generating a user-facing approval request for a role transition in an AI-assisted application. Your output must be clear, honest, and actionable. Do not minimize risks or overpromise capabilities. Generate an approval request using the following inputs: CURRENT_ROLE: [CURRENT_ROLE_NAME] CURRENT_ROLE_DESCRIPTION: [CURRENT_ROLE_DESCRIPTION] PROPOSED_ROLE: [PROPOSED_ROLE_NAME] PROPOSED_ROLE_DESCRIPTION: [PROPOSED_ROLE_DESCRIPTION] TRANSITION_REASON: [WHY_TRANSITION_IS_NEEDED] NEW_ACCESS_SCOPE: [WHAT_DATA_OR_TOOLS_THE_NEW_ROLE_CAN_ACCESS] ACCESS_SCOPE_DIFFERENCE: [WHAT_CHANGES_FROM_CURRENT_ACCESS] EXPECTED_OUTCOME: [WHAT_THE_USER_SHOULD_EXPECT_AFTER_TRANSITION] OPT_OUT_PATH: [HOW_THE_USER_CAN_DECLINE_AND_WHAT_HAPPENS_IF_THEY_DO] REGULATORY_CONTEXT: [APPLICABLE_REGULATIONS_OR_COMPLIANCE_NOTES_OR_NONE] OUTPUT_SCHEMA: { "approval_request": { "title": "string (brief heading for the approval dialog)", "summary": "string (one-sentence explanation of what is changing)", "whats_happening": "string (plain-language description of the role transition)", "why_now": "string (reason the transition is needed at this point)", "what_changes": { "new_capabilities": ["string (list of new actions the role can take)"], "new_data_access": ["string (list of data categories the role can access)"], "limitations": ["string (list of what the role still cannot do)"] }, "risks_and_considerations": ["string (honest list of risks, limitations, or things to watch)"], "opt_out": { "available": true, "how_to_decline": "string (specific action the user takes to decline)", "what_happens_if_declined": "string (what the system will do instead)" }, "regulatory_note": "string or null (compliance disclosure if applicable)", "consent_language": "string (explicit consent statement the user must agree to)" } } CONSTRAINTS: - Use plain language suitable for a non-technical user. - Do not hide risks behind optimistic language. - If REGULATORY_CONTEXT is not NONE, include a specific compliance disclosure. - The consent_language field must be a clear, standalone statement that can be presented next to an 'I Agree' button. - If OPT_OUT_PATH indicates no opt-out is available, set opt_out.available to false and explain why. - Never claim the new role can do something not listed in NEW_ACCESS_SCOPE. - If the transition involves personal, financial, health, or legal data, add a specific warning in risks_and_considerations.
Adapt this template by adjusting the OUTPUT_SCHEMA fields to match your application's approval dialog design. If your product requires multi-language support, add a [LOCALE] placeholder and include translation instructions in the constraints. For regulated deployments, ensure the REGULATORY_CONTEXT field is populated from your compliance layer and that the generated regulatory_note is reviewed by a human before display. Always log the full prompt, the generated approval request, and the user's consent decision for audit purposes. If the model produces an approval request that minimizes risks or omits the opt-out path, reject the output and retry with a stronger constraint on honesty and completeness.
Prompt Variables
Each placeholder required by the Role Transition User Approval Prompt Template. Validate these before sending to prevent malformed approval requests, missing consent language, or incorrect role scope disclosure.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CURRENT_ROLE_NAME] | Identifies the role the user is currently interacting with before the transition | customer_support_triage_agent | Must match an active role ID in the orchestrator registry; reject if role is not in the current session state |
[PROPOSED_ROLE_NAME] | Specifies the target role the system wants to activate after user approval | billing_dispute_specialist | Must exist in the capability manifest with declared tools and permissions; reject if role is deprecated or disabled |
[TRANSITION_REASON] | Explains why the role change is necessary in plain, user-facing language | Your issue requires access to billing records that the current assistant cannot retrieve | Must be non-empty and under 300 characters; reject if it contains internal system identifiers or technical jargon without translation |
[NEW_ROLE_CAPABILITIES] | Lists what the proposed role can access, view, or modify after transition | View billing history, process refunds, update payment methods | Must be an explicit, bounded list; reject if capabilities exceed the role's declared permission scope in the capability manifest |
[NEW_ROLE_LIMITATIONS] | States what the proposed role explicitly cannot do to set accurate user expectations | Cannot modify subscription tiers, cannot access chat history from other departments | Must include at least one limitation; reject if limitations contradict declared capabilities or if the list is empty |
[DATA_ACCESS_DISCLOSURE] | Describes what user data the new role will have access to during the session | Your last 12 months of billing transactions and current payment method on file | Must be specific about data categories and time boundaries; reject if disclosure is vague or omits regulated data types such as PII or financial records |
[OPT_OUT_INSTRUCTION] | Provides the user with a clear action to decline the transition and stay with the current role | Reply 'no' or 'stay here' to continue with your current assistant | Must include explicit opt-out language; reject if opt-out path is missing, ambiguous, or requires the user to take action outside the current conversation surface |
[EXPECTED_EXPERIENCE_CHANGE] | Sets expectations for how the interaction will feel different after the role switch | The new assistant will introduce itself and may ask you to re-confirm your account details for security | Must describe a concrete, observable change; reject if it promises capabilities the target role does not have or if it implies the transition is invisible when it is not |
Implementation Harness Notes
How to wire the Role Transition User Approval Prompt into an application so it runs reliably in production.
This prompt is not a standalone chat interaction; it is a synchronous gate inside a multi-agent orchestration pipeline. The application must invoke it immediately after the orchestrator decides a role transition is necessary but before the handoff executes. The prompt receives the proposed transition details, the current session context, and the user's communication preferences, and it returns a structured approval request payload. The calling system is responsible for rendering this payload to the user, capturing the user's decision, and enforcing the outcome—either proceeding with the handoff or routing to the opt-out path. Because this prompt governs a human-in-the-loop control point, the harness must treat it as a blocking operation with a defined timeout and a safe default behavior (typically: deny the transition if no user response is received).
The implementation should wrap the model call in a validation layer that checks the output against a strict JSON schema before the approval request is shown to the user. Required fields include transition_summary, new_role_name, new_role_access_list, expected_behavior_change, consent_prompt_text, opt_out_instructions, and transparency_notice. If the model returns malformed JSON, missing required fields, or an opt_out_instructions field that is empty or vague, the harness should retry once with a repair prompt that includes the validation error. After two failures, the system must escalate to a fallback approval template (a pre-reviewed static message) and log the incident for prompt debugging. For regulated deployments, add a human review queue step: any approval request where the new_role_access_list includes scopes marked as sensitive in the application's policy config must be reviewed by a human operator before the user ever sees it. This prevents the model from accidentally promising access it shouldn't.
Model choice matters here. The prompt requires instruction-following precision and structured output reliability, not creative fluency. Use a model with strong JSON mode or structured output support (e.g., GPT-4o with response_format, Claude 3.5 Sonnet with tool-use-as-structured-output, or equivalent). Set temperature low (0.0–0.2) to minimize variation in consent language. Log every invocation: the input context hash, the model version, the raw output, the validation result, the rendered approval text shown to the user, the user's decision, and the timestamp. This audit trail is essential for compliance reviews and for debugging cases where users report confusing or misleading transition messages. Wire the user's decision back into the orchestrator as a boolean gate (transition_approved: true/false) with the timestamp and any user-provided notes. If the user opts out, the orchestrator must route to the opt_out_path specified in the original transition plan, not silently continue. The prompt is the gate; the harness enforces it.
Expected Output Contract
The JSON schema, field descriptions, and pass/fail validation rules your application should enforce when processing the output of the Role Transition User Approval Prompt Template.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
transition_id | string (UUID v4) | Must parse as a valid UUID v4. Reject if null or malformed. | |
current_role | string | Must match a role identifier from the active [ROLE_REGISTRY]. Reject if unknown. | |
proposed_role | string | Must match a role identifier from the active [ROLE_REGISTRY]. Reject if same as current_role. | |
reason_for_transition | string | Must be non-empty and contain a task-based or state-based justification. Flag for human review if generic. | |
new_capabilities_granted | array of strings | Each string must map to a declared capability in the proposed role's manifest. Reject if empty or contains unknown capabilities. | |
data_access_scope_change | string (enum) | Must be one of: 'expanded', 'restricted', 'equivalent'. Reject if not in enum. | |
user_consent_required | boolean | Must be true for any transition involving expanded data access. Reject if false when data_access_scope_change is 'expanded'. | |
consent_language | string | Must contain a clear opt-in request and an opt-out path. Flag for human review if missing opt-out language. |
Common Failure Modes
What breaks first when deploying role transition approval prompts in production, and how to guard against each failure before it reaches a user.
Approval Bypass via Role Confusion
What to watch: The model skips the approval step entirely because it misinterprets the transition as routine or the user's casual language ('sure, go ahead') as explicit consent. This is especially dangerous when the new role has elevated permissions. Guardrail: Require a structured, unambiguous consent token (e.g., 'I approve the role change to [ROLE_NAME]') and validate it before executing the handoff. Do not treat conversational affirmatives as consent.
Insufficient Disclosure of New Role Capabilities
What to watch: The approval prompt describes the new role in vague terms ('admin role') without listing the specific tools, data access, or actions it will have. Users approve without understanding the scope, creating a consent gap. Guardrail: Dynamically populate the prompt with the new role's capability manifest. Require the model to list at least the top three highest-risk permissions before requesting approval.
Opt-Out Path Is Missing or Unclear
What to watch: The prompt presents the role transition as inevitable or frames the opt-out so weakly that users feel they cannot refuse. In regulated deployments, this creates a compliance violation. Guardrail: Include an explicit, equally weighted opt-out path with clear language ('You can decline this change. Your current session will continue with [CURRENT_ROLE] limitations.'). Test that the model honors a decline without nagging or re-prompting.
Context Leakage in Transition Justification
What to watch: The approval prompt inadvertently exposes sensitive context from the current session—PII, internal reasoning, or tool outputs—while explaining why the role change is needed. Guardrail: Sanitize the justification payload before it reaches the approval prompt. Use a separate summarization step that strips sensitive fields and only retains the task-level reason for the transition.
Model Hallucinates Permissions or Safeguards
What to watch: The model generates a reassuring but false description of the new role's limitations ('this role cannot access your account data') when no such restriction exists in the actual role definition. Guardrail: Ground all capability and limitation statements in a machine-readable role manifest. If the manifest does not explicitly state a limitation, the prompt must instruct the model to say 'limitations are not fully enumerated' rather than inventing them.
Approval Prompt Drift in Long Sessions
What to watch: After many conversation turns, the model shortens or omits required approval elements—transparency language, opt-out paths, or capability disclosure—because the system prompt's priority decays in long contexts. Guardrail: Inject a compact, high-priority approval checklist as a prefix to every transition prompt. Validate the output against required fields (consent language, capabilities, opt-out) before showing it to the user.
Evaluation Rubric
Score each criterion on a pass/fail basis before deploying the Role Transition User Approval Prompt. Use this rubric in automated eval harnesses or manual QA reviews to ensure the approval request is safe, transparent, and actionable.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Role Change Justification | Output explains why the role transition is needed in plain, non-technical language. | Vague rationale, missing explanation, or uses internal system jargon the user cannot understand. | LLM-as-judge: check for presence of a 'reason' sentence that does not contain internal role IDs or tool names. |
New Role Scope Disclosure | Output lists what the new role will access, see, or do on the user's behalf. | Omits data access details, over-promises capabilities, or describes scope in ambiguous terms. | Schema check: [ACCESS_SCOPE] field is populated and contains at least one concrete data category or action. |
User Expectation Setting | Output states what the user should expect to happen next after approval, including any wait time or required actions. | No next-step description, or describes an automated sequence that will happen without user visibility. | LLM-as-judge: verify presence of a future-tense statement describing the immediate outcome of approval. |
Consent Capture Language | Output includes an explicit yes/no or approve/deny question with clear opt-in mechanics. | Approval is implied, pre-checked, or buried in a wall of text without a clear call to action. | Regex match: output must contain a direct question ending in '?' and a binary choice indicator like 'Approve' or 'Deny'. |
Opt-Out Path Clarity | Output describes how the user can decline and what happens if they do, including fallback behavior. | No decline path mentioned, or decline path leaves the session in an undefined state. | LLM-as-judge: check for a conditional statement describing the consequence of a negative response. |
Transparency for Regulated Context | Output includes a note on data handling, retention, or auditability when [REGULATED_DOMAIN] is true. | Omits compliance-relevant language in a regulated context, or makes unsubstantiated claims about data deletion. | Conditional eval: if [REGULATED_DOMAIN]=true, assert output contains a sentence about logging, retention, or review. |
Tone and Readability | Output uses a helpful, neutral tone at a 8th-10th grade reading level without manipulative language. | Uses dark patterns, urgency pressure, or legalistic language that obscures the choice. | Readability score check: Flesch-Kincaid grade level between 8 and 10. Sentiment analysis: neutral to slightly positive. |
Hallucination-Free Output | Output contains no invented features, permissions, or guarantees not present in [NEW_ROLE_DESCRIPTION] or [ACCESS_SCOPE]. | Mentions capabilities not listed in input variables, or fabricates security promises. | Groundedness check: extract all capability claims and cross-reference against allowed input fields. Flag any claim with no source match. |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Use the base prompt with a simple string template and no backend validation. Replace [ROLE_TRANSITION_DETAILS] with a hardcoded description of the old role, new role, and reason. Skip structured output requirements and accept plain text responses.
Watch for
- Model generating approval language that sounds binding without actual consent capture
- Missing opt-out path when the user says no
- Overly technical explanations that confuse non-technical users
- No distinction between informational notice and actionable consent request

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us