{"id":94802,"plugin_id":"plugin_asdk_app_6a3a995dbb348191af64a75893577d60","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-13T12:08:20.729Z","digest":"97491e23a8d1a559b8051b515ae9a48a984c3637e670c8bdf4b9d44fafdabb65","against":null,"payload":{"description":"Rewrite and refine user-supplied text in a supported Persona app voice while preserving its facts and purpose. Use for character-themed invitations, announcements, messages, or iterative style editing. Do not use for voice comparisons, simple persona activation, or sending or publishing the finished text.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":268}],"name":"persona-rewrite-workshop","skill_md_contents":"---\nname: persona-rewrite-workshop\ndescription: Rewrite and refine user-supplied text in a supported Persona app voice while preserving its facts and purpose. Use for character-themed invitations, announcements, messages, or iterative style editing. Do not use for voice comparisons, simple persona activation, or sending or publishing the finished text.\n---\n\n# Persona Rewrite Workshop\n\nTurn supplied writing into usable copy with a consistent character voice.\n\n## Inputs\n\nUse the source text, desired persona, audience, purpose, and any length or tone\nconstraints already provided. Ask for the source if absent. Ask about missing\naudience or purpose only when it would materially change the rewrite.\n\n## Workflow\n\n1. Identify facts and commitments to preserve, including names, dates, amounts,\n   links, requested actions, and the strength of any promises. Resolve ambiguous\n   details with the user instead of filling them with invented facts.\n2. Resolve the desired voice against the registered `activate-persona`\n   `personaId` enum. If the user leaves the voice open, suggest a fitting\n   supported option. Use `display-persona-picker` with an optional `reason` only\n   when they request a chooser; wait for their selection or a visible activation.\n3. Call `activate-persona` with the selected supported `personaId` and an optional\n   `reason`, unless the latest model-visible result already activates it. Apply\n   `structuredContent.activePersona.instruction` to the draft. Report an error\n   or missing `activePersona` without claiming successful activation.\n4. Rewrite for the audience and purpose. Use character diction and rhythm while\n   keeping dates, instructions, and other actionable details easy to find.\n   Preserve the source meaning; change facts only when the user requests it.\n5. Compare the draft with the source for omissions and altered commitments.\n   Present the draft, then refine it using feedback about clarity, length, or\n   character intensity. Do not require a feedback round for a finished request.\n\n## Deliverable and boundaries\n\n- Return clean, copy-ready text. Mention unresolved factual gaps or significant\n  requested meaning changes separately when they affect use of the draft.\n- Preserve the conversation language unless another language is requested.\n- Treat character voice as a writing style, without implying endorsement or\n  inventing an identity for the message's sender.\n- Generate and revise in chat. Do not claim the app edits documents, sends\n  messages, publishes copy, or saves drafts across conversations.\n- Use model-visible activation results; do not depend on private widget state\n  or widget-only suggestions. Honor later changes of voice or requests to stop.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}