{"id":10077,"plugin_id":"plugin_asdk_app_6a60a89a6bec81918b6155f03f66681a","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T22:56:21.191Z","digest":"43359147dfee892e962e71c031b1f52fcb3118522d4b903a4dd675663c3cac6c","against":null,"payload":{"name":"scenario-creator","description":"Create ToughTongue AI practice scenarios (cold call, sales roleplay, coaching) via the ttai MCP server. Classifies the scenario type, applies type-specific authoring rules, gathers context from URLs, transcripts, or other connected tools, validates against a checklist, and creates the scenario with ttai:create_scenario. Use when the user says \"create a scenario\", \"build a practice scenario\", \"make a roleplay for...\", \"I have a call in 30 minutes, help me rehearse\", or provides a brief, company info, or call transcripts for scenario creation.","included_files":[{"relative_path":"references/cascade-tts.md","size_in_bytes":10045},{"relative_path":"references/coaching.md","size_in_bytes":11699},{"relative_path":"references/cold-call.md","size_in_bytes":14598},{"relative_path":"references/demo.md","size_in_bytes":9200},{"relative_path":"references/sales-roleplay.md","size_in_bytes":10897},{"relative_path":"references/scenario-fields.md","size_in_bytes":9104}],"skill_md_contents":"---\nname: scenario-creator\ndescription: >\n  Create ToughTongue AI practice scenarios (cold call, sales roleplay, coaching)\n  via the ttai MCP server. Classifies the scenario type, applies type-specific\n  authoring rules, gathers context from URLs, transcripts, or other connected\n  tools, validates against a checklist, and creates the scenario with\n  ttai:create_scenario. Use when the user says \"create a scenario\", \"build a\n  practice scenario\", \"make a roleplay for...\", \"I have a call in 30 minutes,\n  help me rehearse\", or provides a brief, company info, or call transcripts\n  for scenario creation.\n---\n\n# Scenario Creator\n\nCreate production-ready ToughTongue AI scenarios and push them live through the\nttai MCP server. Classify → load rules → gather context → draft → validate →\n`ttai:create_scenario` → return the practice link.\n\n## Prerequisites\n\n- The **ttai** MCP server must be connected. Tool references below use the\n  `ttai:` server prefix (e.g. `ttai:create_scenario`); some agents surface\n  these as `mcp__ttai__create_scenario`. If the tools are missing, tell the\n  user to install the ToughTongue plugin or add the MCP server (see the repo\n  README) with a `TTAI_PAT` token from\n  <https://app.toughtongueai.com/developer>.\n\n## Workflow\n\n### Step 1: Establish account context\n\nCall `ttai:list_organizations` first.\n\n- If the user belongs to organizations and the scenario is for a team, pass the\n  chosen `org_id` on every subsequent tool call.\n- If no organizations, or the scenario is personal practice, omit `org_id`.\n- If ambiguous, ask which context to create in.\n\n### Step 2: Classify scenario type\n\n| Type | AI plays | Reference file |\n|------|----------|----------------|\n| **Cold Call / SDR** | The outbound caller (user plays the lead) | [references/cold-call.md](references/cold-call.md) |\n| **Sales Roleplay** | The prospect (user practices selling) | [references/sales-roleplay.md](references/sales-roleplay.md) |\n| **Coaching** | The trainer/mentor (teaches via exercises) | [references/coaching.md](references/coaching.md) |\n| **Demo** | The AI SDR / product demo agent | [references/demo.md](references/demo.md) |\n| **Other** | Anything else (interview, support, negotiation) | [references/scenario-fields.md](references/scenario-fields.md) only |\n\nDecision signals:\n\n- \"cold call\", \"outbound\", \"lead qualification\", \"AI calls the customer\",\n  \"SDR call\" → Cold Call / SDR\n- \"practice selling\", \"objection handling\", \"prospect roleplay\", \"pitch practice\",\n  \"prep me for this meeting\" → Sales Roleplay\n- \"coach\", \"train my team\", \"teach\", \"onboarding\", \"framework\" → Coaching\n- \"demo my product\", \"AI SDR demo\", \"show prospects\", \"browser demo\",\n  \"slide demo\", \"product walkthrough\" → Demo\n\nIf ambiguous, ask ONE question: \"Should the AI play the caller/seller, the\nbuyer/prospect, a coach/trainer, or a product demo agent?\"\n\nRead [references/scenario-fields.md](references/scenario-fields.md) (always)\nplus the matching type reference.\n\n### Step 3: Gather context\n\n- **URLs provided** (company site, product page, LinkedIn): fetch them. Extract\n  company name, product, target audience, key features, pricing model. Fold\n  into the `ai_instructions` CONTEXT section and `user_friendly_description`.\n- **Other connected tools**: if the user references meetings, CRM records, call\n  transcripts, or documents available through other MCP servers (calendar,\n  Gong, Notion, ...), pull the relevant details and use them as scenario\n  context — real names, real objections, real positioning beat invented ones.\n- **Pasted material** (transcripts, briefs, positioning docs): mine it for the\n  persona, objections, and vocabulary the scenario should reproduce.\n\n### Step 4: Clarifying questions (minimal)\n\nOnly ask when the answer is not obvious from the brief. Otherwise use defaults:\n\n| Question | Ask when | Default |\n|----------|----------|---------|\n| Language & voice | Locale unclear from context | `en-US`, defaults from [references/scenario-fields.md](references/scenario-fields.md) |\n| Call sub-type (cold call) | Warm/cold/follow-up unclear | Warm lead |\n| Coaching pattern | Coaching type only | Pattern A (Situation-First) |\n| Public or private | Team/enterprise use implied | `is_public: true` |\n\n### Step 5: Draft the scenario payload\n\nBuild a JSON payload matching the `ttai:create_scenario` input schema (load\nthe tool schema before calling). Author these fields, in order of importance:\n\n1. `name` — short, descriptive display title.\n2. `ai_model_config` — set explicitly based on scenario type. See the \"When\n   to use which\" table in [references/scenario-fields.md](references/scenario-fields.md).\n   Cold call and slide-demo scenarios use Landmass/cascade-01 (requires TTS,\n   STT, LLM fields). Sales roleplay uses Galaxy/medium. Coaching and\n   browser-demo use Ocean/medium-stable.\n3. `ai_instructions` — the core field, 500+ words, structured with `##`\n   sections per the type reference. For Landmass/cascade scenarios, also load\n   [references/cascade-tts.md](references/cascade-tts.md) and include the\n   voice-pipeline blocks (output rules, transcription-error handling, natural\n   speech style, SSML emotion tags if Cartesia).\n4. `user_instructions` — what the human should know before starting:\n   situation → what to expect → how to succeed → tips.\n5. `rubrik` — evaluation criteria. CRITICAL: evaluate the correct party\n   (cold call rubrics evaluate the LEAD; sales rubrics evaluate the REP;\n   demo rubrics produce a buyer intelligence report).\n6. `user_friendly_description` — 1-2 public-facing sentences.\n7. `strategy`, `tools_config`, `session_analysis`, `appearance` — per the\n   type reference and [references/scenario-fields.md](references/scenario-fields.md) defaults.\n8. `is_recording: true` for voice scenarios; `is_public` per Step 4.\n\nDo NOT set `id` — `ttai:create_scenario` rejects it (that is\n`ttai:update_scenario`'s job).\n\n### Step 6: Validate\n\nRun the universal checklist, plus the type-specific checklist from the\nreference file:\n\n- [ ] `name`, `ai_instructions`, `user_friendly_description` present\n- [ ] `ai_model_config` set explicitly per the \"When to use which\" table\n- [ ] `ai_instructions` structured with `##` sections; no unresolved\n      placeholders except intentional `{{ dynamic_vars }}`\n- [ ] `tools_config.tools.end_session` enabled with `add_to_system_prompt: true`\n- [ ] `session_analysis.is_auto_analysis: true` and `is_auto_submit: true`\n- [ ] `rubrik` evaluates the correct party, categories with weights\n- [ ] Cascade scenarios (Landmass): voice-pipeline blocks from\n      [cascade-tts.md](references/cascade-tts.md), `strategy.welcome_instructions`\n      (directive form, never quoted speech), conductor wrap-up message,\n      `appearance.language_code` matches locale\n- [ ] Every dynamic variable `{{ var }}` has a documented missing-value fallback\n\n### Step 7: Create\n\nCall `ttai:create_scenario` with the payload (and `org_id` if applicable). On\nvalidation errors, fix the named field and retry — do not strip features to\nforce it through.\n\n### Step 8: Return links\n\nReport back with:\n\n- **Practice link**: `https://app.toughtongueai.com/run/<scenario_id>`\n- **Embed link** (if the user builds apps): `https://app.toughtongueai.com/embed/<scenario_id>`\n- What was created (type, persona, evaluation focus) in 2-3 sentences.\n- For private scenarios: mention `ttai:create_scenario_access_token` mints\n  1-hour access tokens for sharing.\n\n## Quick path: `ttai:generate_scenario`\n\nFor a fast draft without hand-authoring, the `ttai:generate_scenario` tool\ngenerates `ai_instructions`, `user_instructions`, and a description\nserver-side from a name and context document. Use it when the user wants\nspeed over control, then review the output and create via\n`ttai:create_scenario`. Prefer full authoring for anything the user will run\nwith a team.\n\n## Pitfalls\n\n- **Never stack questions** in voice-agent turns — one question per turn is the\n  #1 authoring rule for natural calls.\n- **Never quote the opening line** in `welcome_instructions` — use directive\n  form (\"Start with: ... Then STOP and wait.\"). Quoted text is delivered\n  robotically and restarts on interruption.\n- **Wrong rubric target** — a cold-call rubric that scores the AI caller\n  instead of the lead produces useless reports.\n- **Missing end_session guidance** — without explicit timing rules the agent\n  either never hangs up or hangs up mid-conversation.\n- The API token stays server-side; never embed `TTAI_PAT` in anything you\n  generate for the user's app.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}