This skill designs an AI agent persona through a fast input-to-sample-dialog loop. Provide any starting input โ a brand guide PDF, a URL, a prior persona document, or a text description โ and the skill drafts a complete persona, shows you how the agent sounds in sample dialog, and lets you refine until it's right.
Confirm successful installation by checking the skill directory location:
.cursor/skills/sf-ai-agentforce-persona
Restart Cursor to activate sf-ai-agentforce-persona. Access via /sf-ai-agentforce-persona in your agent's command palette.
โ
Security Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
This skill designs an AI agent persona through a fast input-to-sample-dialog loop. Provide any starting input โ a brand guide PDF, a URL, a prior persona document, or a text description โ and the skill drafts a complete persona, shows you how the agent sounds in sample dialog, and lets you refine until it's right.
What it produces:
A persona document (_local/generated/[agent-name]-persona.md) defining who the agent is, how it sounds, and what it never does
Scoring available on request (50-point rubric)
Encoding available as a separate workflow (persona โ tool-specific field values)
What it drives downstream: The persona document feeds into conversation design and Agentforce encoding. Those are separate steps โ this skill defines the persona, not dialog flows or field configurations.
Session resumption: If you stop mid-workflow, your partial progress is preserved in the conversation and can be resumed.
When to Use This Skill
Designing a new Agentforce agent and need to define its personality before building
Retrofitting persona consistency onto an existing agent whose tone is inconsistent
Translating brand guidelines or tone documents into a structured persona
Aligning stakeholders on what an agent should sound like before development begins
Documenting an agent's voice for handoff between design and implementation teams
Scope boundary: This skill defines WHO the agent is. It does not define dialog flows, utterance templates, or interaction branching โ those belong in conversation design.
Delegate elsewhere when:
building agent metadata, topics, or actions โ sf-ai-agentforce
Phrase Book & Never-Say List โ what to say and what to never say
Tone Flex โ how tone shifts by context
Lexicon โ per-topic vocabulary
Dimensions are ordered by dependency โ upstream choices constrain downstream ones. Constraint notes in the framework explain how earlier choices pull later ones. Constraints are recommendations, not hard locks โ any combination is valid.
Entry Point Detection
Detect the user's intent from their opening message:
User provides brand input, text description, or no document โ Design flow (below)
User provides a completed persona.md document and asks to encode โ Encode flow (below)
User provides a persona.md + a list of topics or actions โ Encode flow
User provides a completed persona.md without stating intent โ Show a compact summary of the loaded persona, then offer the hub menu (refine, score, encode). Do not assume encode.
Ambiguous โ Ask: "Are you designing a new persona or encoding an existing one for Agentforce?"
Design Flow
Two phases: Phase 1 (Essentials) gets to sample dialog as fast as possible. Phase 2 (Electives) lets the user choose what to do next.
Accept any starting input. No detection question needed โ accept whatever the user provides.
Accepted inputs:
Brand guide or tone-of-voice document (PDF, text)
Organization URL
Prior persona document (persona.md from a previous session)
Free-text description (e.g., "a sales coach who talks like Crocodile Dundee")
Existing agent system prompt or Agent Script file
Any combination of the above
If the user provides nothing (invokes the skill without additional input):
"Share something to get started โ a brand guide, a URL, or just describe the agent in your own words. I'll draft a persona and show you how it sounds in conversation."
Do NOT ask a detection question. Accept whatever arrives and proceed.
Step 2: Minimal Context
Collect only what the input doesn't already answer. Every question is skippable. Zero questions is valid โ if the input provides enough signal, skip directly to Draft.
Context signals to extract or ask about (priority order):
Company โ who they are, what they do, who they serve. If the user provided a brand guide or URL, extract this โ don't re-ask.
Audience โ who the agent serves: internal employee, external customer, partner, vendor, investor, or other. Affects register, formality, warmth. If the user says "internal sales coach," audience is already answered.
Modality โ how the agent communicates: chat, email, telephony, multimodal, or other. Affects Chatting Style, Brevity, and whether emoji makes sense. Multiple modalities are valid.
Primary language โ affects formality norms and cultural adaptation.
At least 1 use case or JTBD โ needed to generate meaningful sample dialog.
Do NOT collect: interaction model (agent design, not persona), agent type (agent design, not persona), topic list, agent name (comes after identity).
Extraction before asking: Parse the user's input for context signals before deciding what to ask. "Design an internal sales coach persona for Buc-ee's" already answers audience (internal), role (sales coach), and implies a brand context. Don't re-ask what's already given.
May ask 1-2 clarifying questions to surface tensions in the input (e.g., "Your brand guide emphasizes both 'bold irreverence' and 'trusted expertise' โ which should win when they conflict?"). But every question is skippable.
One-Shot vs. Wizard
After extracting context, assess the richness of the input:
Rich input (brand guide PDF, detailed description, prior persona, URL with strong brand copy): Offer the user a choice โ "I have strong signals โ I can draft the full persona now and show you how it sounds, or walk through each dimension category if you prefer." Default to one-shot: draft everything silently, present the persona, then show sample dialog.
Minimal input (brief description, just a company name): Default to wizard: ask context questions, walk through dimensions by dependency tier.
Blank slate (no input at all): Prompt for input first, then wizard path.
Either path leads to the same output. The user can always override โ a one-shot user can refine afterward, and a wizard user can skip ahead.
Step 3: Draft
This step is the skill's intelligence โ it must execute explicitly as specified below.
3A: Input Parsing
Extract persona signals from the user's input. Brand guides are often much richer than they appear โ mine them thoroughly. A good brand guide can populate identity, dimensions, phrase book, never-say list, AND lexicon in a single pass. Aim to use 80%+ of actionable content.
"Never," "don't," prohibited words/phrasings ("say 'complimentary' not 'free'"), prohibited greetings
Never-Say List, Phrase Book
Vocabulary
Brand name, product lines โ global. Brand "isms," preferred terms โ global or per-topic. Domain jargon โ per-topic. Preferred vs. prohibited word pairs
Global Lexicon, per-topic Lexicon, Never-Say + Phrase Book pairs
Formatting
Capitalization rules, punctuation opinions (Oxford comma, em dashes), number/date/price formatting, foreign word formatting
Chatting Style dimensions + custom section
CTAs/interaction
CTA patterns ("SHOP NOW"), promotional language rules
Phrase Book + Never-Say
Usage rules
Preposition preferences ("at [brand]" not "from [brand]"), standards that would sound wrong if violated
Never-Say + Phrase Book
Audience
Who the brand talks to, formal vs. informal examples, relationship language
Design Inputs, Register, Formality
If input is a prior persona.md: Extract dimensions directly.
3B: Dimension Selection
Map extracted signals to the 12 framework dimensions:
Pre-populate all 12 dimensions from the input signals
Override dimensions where the input provides clear signals (e.g., brand guide says "never use slang" โ Formality: Formal)
For each dimension, show the full spectrum and indicate which value is recommended and why when there's a strong signal
3C: Confidence Annotations
Mark each dimension as:
Strong signal โ clear evidence in input (quote or cite the source)
Default โ inferred from context, no direct evidence in input
These annotations are shown during refinement so the designer knows where to focus.
3D: Generation
From the dimension map, generate:
Identity traits โ 3-5 adjectives with behavioral definitions
Phrase Book โ example phrases tuned to all selected dimensions. Generate 2-4 phrases per category โ one example is not enough to establish a pattern. Categories include:
All agents: Acknowledgement, Affirmation, Apologies (for agent mistakes only โ not system errors), Off-Topic Redirect (steering back from out-of-scope requests), Welcome/Greeting
External-facing agents (customer, vendor, investor): Escalation/Handoff (passing to a human)
Do not include errors or system error handling in the Phrase Book โ error messages are generated as required messages during encoding
Never-Say List โ anti-phrases derived from Tone Boundaries, Identity contradictions, and input's negative signals. Generate at least 5 entries โ cover generic chatbot filler, register violations, and persona-specific anti-phrases
Tone Boundaries โ what the agent must never sound like
Tone Flex โ baseline + triggers + shift rules
Negative Identity โ 2-4 character-level anti-patterns. Generate from negative signals in the input and from Identity traits.
Global Lexicon โ brand name, company name, product line names, industry terms used across all topics.
Values(optional) โ Only if the user explicitly stated beliefs, values, or worldview. Never infer values.
3E: Name
After identity traits are established:
Suggest up to 3 names that distill the identity
Allow the user to write their own
Reassure: "You can change this later."
If a name was provided in input, use it and skip this sub-step.
3F: State Object
Maintain the full dimension map as an explicit state object across the conversation. Every regeneration works from this state, not from conversation history. The state object contains:
All 12 dimension values
Confidence annotation per dimension (strong signal / default)
Identity traits
Negative Identity statements
Values (if provided by user โ never inferred)
Phrase Book
Never-Say List
Tone Boundaries
Tone Flex rules
Update the state object on every change. When regenerating sample dialog, read from the state object.
Interaction Design
These guidelines apply across all surfaces โ CLI, TUI, web, IDE. Each environment adapts the patterns to its own idiom.
Output before questions. Show generated content (dimensions, phrase book, tone flex) as regular output first. Then ask a concise question with short options. Never embed long content inside question labels or option descriptions โ it will be truncated in constrained environments and is harder to read everywhere.
Batch independent questions. When multiple questions have no dependency relationship โ meaning neither answer constrains the other โ present them together rather than one at a time. This reduces round-trips and keeps the flow moving. Examples:
Context signals (modality + use case) are independent โ ask together
Voice dimensions (Formality, Warmth, Personality Intensity) are independent โ ask together
Chatting Style dimensions (Emoji, Formatting, Punctuation, Capitalization) are independent โ ask together
Encoding context (tool + topics + actions) are independent โ ask together
Do not batch across dependency boundaries. Register must be answered before Voice. Voice before Tone. Tone before Delivery. Follow the framework's dependency order for sequential questions.
Short labels, descriptions underneath. Question options should be scannable in under 2 seconds. If an option needs explanation, put the label first and the explanation as a secondary description โ not a long compound label.
Multi-select when appropriate. When the user should be able to pick more than one option โ phrase book entries to keep, topics to encode, surfaces to target โ allow multiple selections rather than asking the same question repeatedly. If the environment supports multi-select natively, use it. If not, present options as a numbered list in output text and ask the user to type their selections (e.g., "Which ones? Type the numbers: 1, 3, 5"). Either way, the user selects multiple and confirms once.
Compact output formats. Use tables and structured lists for dimensions, not prose paragraphs. One line per dimension with value and signal annotation. Phrase book entries grouped by category. Never-say entries as a compact list. Dense, scannable output respects the user's time.
Progress awareness. Before presenting the hub menu after an elective, show a one-line status summary of what's been completed and what remains:
Confidence callouts. After presenting a drafted persona, highlight the 1-2 lowest-confidence dimensions so the user knows where to focus refinement:
"Least certain: Humor (defaulted to Warm โ no signal in input) and Emoji (defaulted to Functional). Adjust these first if they matter."
Step 4: Present the Persona
Before showing sample dialog, present the drafted persona in a compact, scannable format. This is NOT the full persona document โ it's a summary for review. The user needs to see what was generated before seeing it in action.
Format:
Identity โ traits on one line, dot-separated
Dimensions โ compact table: one row per dimension with value and signal marker (โ = strong signal from input, no marker = default/inferred)
Phrase Book โ entries grouped by category, showing actual phrases
Never-Say โ compact list
Tone Boundaries โ compact list
Tone Flex โ table with trigger, coloring shift, empathy shift, humor guidance
Design rationale. Before the persona summary, introduce it with a brief narrative explaining the key design choices โ why these identity traits, why this register, what in the input drove the major decisions. This is a design partner explaining their thinking, not a data dump. Keep it to 2-4 sentences. This rationale is conversational context only โ it does not get written to the persona document.
Example: "I went with Gracious and Composed because luxury hospitality needs poise under pressure. Peer register rather than Subordinate โ Coral Cloud's brand is warm and personal, not deferential. Encouraging coloring felt right for a resort that wants guests to feel excited, not just served."
After the persona summary, note the lowest-confidence dimensions (see Confidence callouts in Interaction Design) so the user knows where to focus if they want to refine.
Then proceed directly to sample dialog โ no confirmation question needed between persona presentation and sample dialog. The persona provides context for understanding the sample.
Step 5: Sample Dialog
Present a few turns of conversation (3-5 exchanges) based on the use case from Step 2.
Requirements:
The dialog demonstrates the persona in action โ word choice, tone, brevity, humor, formatting
Include at least one "interesting" turn: an error, a clarification, or an emotional moment โ not just happy path
None of these agents say "Hello! How can I help you today?" โ the sample should make the persona's impact obvious
For voice/telephony modality, start the dialog with the welcome message including AI disclosure so the user sees it in context
After presenting the sample dialog, prompt for feedback. The prompt should encourage free-text adjustments as the primary editing path โ "Tell me what to change โ 'make it warmer,' 'drop the humor,' 'don't say that' โ or pick an option." Structured options should be limited to:
"Looks good โ show me what's next"
"Try a different scenario"
(free-text input always available)
When the user types a natural language adjustment ("make it warmer," "it shouldn't say 'that's frustrating'"), apply it using the conversational editing mappings (see Refine section), regenerate sample dialog with the change, and re-present. Stay in this loop until the user says "looks good" or asks for the hub. Don't bounce to the hub after every adjustment.
When the user selects "Looks good โ move on," transition to Phase 2 by offering the hub menu.
Phase 2: Electives
After the sample dialog, show a progress line (see Interaction Design) and offer next steps. The user picks what to do. After completing any elective, show the updated progress line and offer the hub menu again (minus completed items). The user decides when they're done.
Hub menu options (grouped for scannability):
"Refine the persona" โ opens a sub-menu: identity, dimensions, phrase book, never-say, tone flex, lexicon, or free-text addition
"Try a different sample dialog scenario"
"Score the persona"
"Download the persona document"
"Encode for Agentforce deployment"
"I'm done"
Refine
When the user selects "Refine the persona," offer a sub-menu:
"Identity traits"
"Dimensions" (show current values for reference)
"Phrase book"
"Never-say list"
"Tone flex rules"
"Lexicon"
"Something else" (free-text โ see Other below)
Two editing modes, both available at any time. The user can mix them freely.
Conversational Editing โ The user describes changes in natural language. Map common requests to specific dimension changes:
User says
Dimension
Implementation Guide
Prerequisites
โบClaude Desktop or compatible AI client with skill support
โบClear understanding of task or problem to solve
โบWillingness to iterate and refine outputs
Time Estimate
15-45 minutes depending on use case complexity
Steps
1Install skill using provided installation command
2Test with simple use case relevant to your work
3Evaluate output quality and relevance
4Iterate on prompts to improve results
5Integrate into regular workflow if valuable
Common Pitfalls
โ Expecting perfect results without iteration
โ Not providing enough context in prompts
โ Using skill for tasks outside its intended scope
โ Accepting outputs without review and validation
Best Practices
โ Do
+Start with clear, specific prompts
+Provide relevant context and constraints
+Review and refine all outputs before using
+Iterate to improve output quality
+Document successful prompt patterns
โ Don't
โDon't use without understanding skill limitations
โDon't skip validation of outputs
โDon't share sensitive information in prompts
โDon't expect skill to replace human judgment
๐ก Pro Tips
โ Be specific about desired format and style
โ Ask for multiple options to choose from
โ Request explanations to understand reasoning
โ Combine AI efficiency with human expertise
When to Use This
โ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
โ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
Learning Path
1Familiarize yourself with skill capabilities and limitations
2Start with low-risk, non-critical tasks
3Progress to more complex and valuable use cases
4Build expertise through regular use and experimentation