{"id":94805,"plugin_id":"plugin_asdk_app_6a3a995dbb348191af64a75893577d60","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-13T12:08:20.840Z","digest":"3e33fcf7e502e99d2264d2643c8dd470bb775cd85816d740b495b0ebe5bb5acc","against":null,"payload":{"description":"Compare supported Persona app voices on the same brief and help the user choose one to keep. Use for voice auditions, character-style comparisons, or testing two or three personas before committing. Do not use for a simple request to activate one persona or for creating custom personas.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":266}],"name":"persona-voice-audition","skill_md_contents":"---\nname: persona-voice-audition\ndescription: Compare supported Persona app voices on the same brief and help the user choose one to keep. Use for voice auditions, character-style comparisons, or testing two or three personas before committing. Do not use for a simple request to activate one persona or for creating custom personas.\n---\n\n# Persona Voice Audition\n\nUse one brief to make the differences between supported voices easy to assess.\n\n## Inputs\n\nUse the user's sample text or question, intended audience, and requested voices.\nIf no sample is supplied, use a short everyday question. Default to two or three\nvoices when the user leaves the selection open; honor an explicit selection.\n\n## Workflow\n\n1. Establish the shared brief, language, length, and facts that each sample must\n   preserve. Reuse these constraints throughout the comparison.\n2. Resolve each requested voice against the registered `activate-persona`\n   `personaId` enum. Offer a supported alternative for an unavailable character\n   without silently substituting it. If the user requests buttons, call\n   `display-persona-picker` with an optional `reason`, then wait for a visible\n   activation result or an explicit choice.\n3. Call `activate-persona` with one supported `personaId` and an optional\n   `reason`. Use `structuredContent.activePersona.label` and `.instruction` to\n   produce a clearly labeled sample. Complete each activation before starting\n   the next; concurrent calls would make the current voice ambiguous.\n4. Compare the samples for clarity, character, and audience fit. Ground the\n   comparison in the actual wording and invite the user's preference. Keep\n   subjective preference distinct from factual accuracy.\n5. When the user chooses, activate that persona if it differs from the latest\n   successful activation. Identify the voice that remains active while they\n   decide; do not claim all sampled voices are active together.\n\n## Deliverable and boundaries\n\n- Return comparable samples, a brief recommendation tied to the user's goal,\n  and the chosen active voice once confirmed.\n- Preserve the conversation language unless the user explicitly requests another.\n- Treat a failed call or missing `activePersona` as an unsuccessful activation;\n  report it before proceeding with that voice.\n- Use model-visible tool results and conversation context. Do not read private\n  widget state, expose widget-only suggested prompts, or claim the widget tracks\n  auditions. Keep choices within this conversation and honor requests to stop.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}