Claude Code Self-Assessment Advisor
lhfer/claude-howto-zh-cn
Quizzes you on Claude Code in a quick or deep mode, scores your level across 10 topics and recommends what to learn next, in Chinese.
A skill your agent uses to design an AI agent persona — identity, voice, tone, behavioral style, guardrails — and encode it into Agent Script (.agent files) or Agentforce Builder field values.
$ npx skills add forcedotcom/sf-skills --skill agentforce-persona-generate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install forcedotcom/sf-skills agentforce-persona-generate --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/agentforce-persona-generate .claude/skills/agentforce-persona-generate && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "agentforce-persona-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/agentforce-persona-generate into .claude/skills/agentforce-persona-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentforce-persona-generate", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/forcedotcom/sf-skills/tree/main/skills/agentforce-persona-generateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add forcedotcom/sf-skills --skill agentforce-persona-generate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install forcedotcom/sf-skills agentforce-persona-generate --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/agentforce-persona-generate .agents/skills/agentforce-persona-generate && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agentforce-persona-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/agentforce-persona-generate into .agents/skills/agentforce-persona-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentforce-persona-generate", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill agentforce-persona-generate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install forcedotcom/sf-skills agentforce-persona-generate --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/agentforce-persona-generate .cursor/skills/agentforce-persona-generate && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "agentforce-persona-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/agentforce-persona-generate into .cursor/skills/agentforce-persona-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentforce-persona-generate", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/forcedotcom/sf-skills.git --path skills/agentforce-persona-generate--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add forcedotcom/sf-skills --skill agentforce-persona-generate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install forcedotcom/sf-skills agentforce-persona-generate --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/agentforce-persona-generate .gemini/skills/agentforce-persona-generate && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "agentforce-persona-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/agentforce-persona-generate into .gemini/skills/agentforce-persona-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentforce-persona-generate", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install forcedotcom/sf-skills agentforce-persona-generateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add forcedotcom/sf-skills --skill agentforce-persona-generate -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/agentforce-persona-generate .github/skills/agentforce-persona-generate && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "agentforce-persona-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/agentforce-persona-generate into .github/skills/agentforce-persona-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentforce-persona-generate", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill agentforce-persona-generate -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install forcedotcom/sf-skills agentforce-persona-generate --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/agentforce-persona-generate .opencode/skills/agentforce-persona-generate && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "agentforce-persona-generate" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/agentforce-persona-generate into .opencode/skills/agentforce-persona-generate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentforce-persona-generate", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
agentforce-persona-generateA skill your agent uses to design an AI agent persona — identity, voice, tone, behavioral style, guardrails — and encode it into Agent Script (.agent files) or Agentforce Builder field values.
Agentforce Persona Generate is an agent skill from forcedotcom/sf-skills. Use to design an AI agent persona — identity, voice, tone, behavioral style, guardrails — and encode it into Agent Script (.agent files) or Agentforce Builder field values. Runs four sequenced phases (DRAFT, REFINE, SCORE, ENCODE) plus five spokes (NAME, FILL OUT, ADJUST, CHECKLIST, WORKSHOP). Supports greenfield (brand input to a starter .agent file) and brownfield (audit an existing .agent file and re-encode persona fields only), with a 100-point evaluation rubric. Trigger when a user designs a new agent…
Its SKILL.md is about 6.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 27 other files, including scripts, reference files and assets (for example `assets/checklist-template.md`, `assets/persona-encoding-template.md` and `assets/persona-template.md`).
It sits in Education, covering Brand strategy and identity and Quizzes and assessments. It works with Salesforce. The repository describes itself as: Salesforce's curated collection of agent skills for building applications. Optimized for Agentforce Vibes, compatible with all AI tools. The licence is Apache-2.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5164d9. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteAskUserQuestionGlobGrepFrom allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Agentforce Persona Generate loads about 6.9k tokens when it runs, and up to ~57k if it reads all its reference files. Until then it costs about 239 tokens; SKILL.md has 2,974 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from forcedotcom/sf-skills at commit e5164d9, republished under its Apache-2.0 licence (© forcedotcom). 2,974 words, ~6,926 tokens.
.claude/skills/agentforce-persona-generate/SKILL.md (or your agent's skills folder). This skill also uses 24 other files; get the full folder from GitHub.This skill designs an AI agent persona for Salesforce Agentforce. It walks through four sequenced phases (DRAFT → REFINE → SCORE → ENCODE) and offers five spokes (NAME, FILL OUT, ADJUST, CHECKLIST, WORKSHOP) you can run any time after DRAFT.
What it produces:
persona/[agent-name]/persona.md) — who the agent is, how it sounds, what it never doespersona/[agent-name]/sample-dialog.md) — the persona in actionpersona/[agent-name]/evaluation.md) — 100-point rubric, gap analysis, recommendationspersona/[agent-name]/checklist.md) — what's filled in, what's missingpersona/[agent-name]/workshop-outline.md) — stakeholder questions, dimension cards.agent file, OR Agentforce Builder field valuesSession resumption: If you stop mid-phase, your progress is preserved in the conversation and can be resumed.
.agent file's persona consistency (brownfield)Scope boundary: This skill defines WHO the agent is. It does not define dialog flows, subagents, actions, routing, or variables — those are agent design (use agentforce-generate). The encoding output for Use Case A produces an .agent skeleton with placeholders for those structures; the user fills them in.
Read references/persona-framework.md for the full framework. It defines:
Attributes are ordered by dependency. Identity → Personification → Register → Voice → Tone → Delivery → Chatting Style. Constraint notes recommend natural pairings; any combination is valid.
Attribution for the external sources this skill draws on is in references/attributions.md.
Before anything else, ask the user which lane they're on. The two lanes diverge significantly downstream.
Welcome. Two ways to use this skill:
- Starting fresh — design a persona from scratch using brand input, audience details, and channel. Greenfield.
- Auditing an existing agent — review and improve a
.agentfile you already have. Brownfield.Which one?
Set a mode flag in state: greenfield or brownfield.
Brownfield triggers:
.agent file → load via scripts/parse_agent_yaml.py (read-only)Greenfield triggers:
.agent skeleton with placeholders for subagents/actions/routingPhases are sequenced — order matters. Spokes orbit the hub, available any time after DRAFT, in any order. The hub is presented after every phase or spoke exit.
SEQUENCED PHASES (linear pipeline):
DRAFT → REFINE → SCORE → ENCODE
↑
(loop back via phases or spokes if SCORE finds gaps)
SPOKES (radiate from the HUB; any time after DRAFT):
⊙ NAME — pick or confirm the agent's name
⊙ FILL OUT — phrase book, never-say, lexicon, immutable content
⊙ ADJUST — subagent + action persona calibrations (gated)
⊙ CHECKLIST — "What's filled in?" — completeness gap analysis
⊙ WORKSHOP — stakeholder workshop outlineThe HUB suggests the next default but lets the user pick anything, including re-running the phase or spoke they just exited.
DRAFT applies "start small": Identity Traits before dimensions. The user can exit DRAFT after the start-small checkpoint and return later via spokes or re-enter DRAFT.
Accept any starting input. No detection question — accept whatever the user provides.
Accepted inputs:
.agent file (brownfield mode)If the user provides nothing:
"Share something to get started — a brand guide, a URL, or just describe the agent in your own words."
These four are required:
Channel — pick exactly one:
Channel constrains Brevity defaults (SMS → Terse, Telephony → Concise, web/mobile chat → Moderate, email → Expansive) and rich-text features. Multi-channel + dynamic personas is a roadmap item — for this version, one channel.
Company / Brand — extract from input or ask. Who they are, what they do.
Audience — who the agent serves: employees, customers, partners, mixed.
≥1 Use case — drives REFINE's sample dialog. If the user can only name one, that's enough.
Conditional context — apply each rule; ask only when its condition fires:
regulated_industry = true and ask about legal/compliance constraints.Do NOT collect: subagents, actions, routing structure, or agent name (NAME is its own spoke).
Working title detection: If the user refers to the agent by a working title in input ("the quoting agent," "Flex 2.0"), capture it as display_name_placeholder in state. NAME spoke uses this as a default.
Extraction before asking: Parse input for context signals before asking. "Design an internal sales coach for Buc-ee's" already answers audience (internal), role (sales coach), and brand. Don't re-ask.
This step is the start-small anchor. Generate:
Identity Traits anchor everything that follows.
After Identity Traits + Negative Identity are locked, write the persona document to disk as it stands and announce the off-ramp:
"We have enough to ship a minimal persona. Here's what it has so far:
- Identity: [traits]
- Negative Identity: [anti-patterns]
- Channel: [channel]
- Company / Audience: [values]
- Use case: [first use case]
Want to keep going through Personification and the rest of the dimensions, or stop here and pick from the hub?"
If the user stops here, dimensions get framework defaults derived from Identity + Channel. The persona document is on disk; the user can see exactly what they've got.
Personification slots in right after Identity. It determines whether the rest of the dimensions are doing character work or transactional work.
| Position | Description | Pulls |
|---|---|---|
| Talking System | Functional, predictable, no character. Fades into the background. ATM, ticketing kiosk, transactional service. | Reading Level low; Humor None; Personality Intensity Reserved; Pronouns "the agent" or brand-name only. |
| Familiar Thing | A recognizable category of helper, lightly characterized. "Service Agent," "Coding Assistant." | Personality Intensity Moderate; Pronouns: "I" + name OK. |
| Personal Assistant | A characterized, named agent with a recognizable voice. Talks in first person; identity traits show through. | Personality Intensity Reserved or Bold; Pronouns: "I" + name standard. |
Auto-suggest from Identity Traits; the user confirms or overrides.
Walk the dependency chain: Register → Voice (Formality, Warmth, Personality Intensity, Reading Level) → Tone (Emotional Coloring, Empathy Level + Tone Boundaries, Tone Flex) → Delivery (Brevity, Humor) → Chatting Style (Emoji, Formatting, Punctuation, Capitalization).
Brevity defaults are bound to channel — SMS → Terse, Telephony → Concise, web/mobile chat → Moderate, email → Expansive. Override only when a strong signal warrants.
For each dimension:
strong = strong signal from input; no marker = default)Generate at the end of Step 5:
Cross-cutting verbatim guardrail: Never alter content the designer marks as immutable (legal disclaimers, brand-defined terminology). If a phrase book entry or lexicon term conflicts with immutable content, the immutable content wins.
Persona document is on disk. State carries:
display_name_placeholder (working title from input, if detected)name_decision: pendingPresent the HUB.
Generate sample dialog and let the user iterate.
Use the Use cases captured in DRAFT step 2 as scenario seeds. Generate 3-5 exchanges that:
For voice/telephony channels, start with the welcome message including AI disclosure so the user sees it in context.
After presenting the sample dialog:
"Tell me what to change — 'make it warmer,' 'drop the humor,' 'don't say that' — or pick:
- Looks good — back to the hub
- Try a different scenario
- (free-text always available)"
When the user types a natural-language adjustment, apply it via the mapping table in references/refinement-mappings.md (e.g., "warmer" → Warmth +1, also consider Empathy +1), regenerate the sample with the change held single-axis, and re-present. When ambiguous, apply the primary mapping and narrate the change so the user can correct.
Diff-Based Regeneration — After a single-dimension change:
Contrasting Response Comparison — If the user asks ("show me two ways this agent could respond"), generate one user utterance from a captured use case + two contrasting agent responses varying along one dimension or trait (not multiple axes). Update state from the user's choice.
Sample dialog written to persona/[agent-name]/sample-dialog.md. Persona document updated if dimensions shifted. Present the HUB.
Apply the 100-point rubric. Two entry points:
.agent file, system prompt, topic instructions, or combination)Key principle: Score the substance, not whether they used the framework's vocabulary. "Personality guidelines" = Identity. "Communication rules" = dimensions. "Banned phrases" = Never-Say. Map first, then score.
For brownfield mode, parse the .agent file via scripts/parse_agent_yaml.py (read-only). Walk:
system.instructions, system.messages.welcome, system.messages.errorMap by substance, not label. Mark inferred mappings: "inferred — [source label]." Absence of a framework concept ≠ zero score; score what's present. The common-label-mapping table is in references/scoring-rubric.md.
Apply the 100-point rubric in references/scoring-rubric.md — 11 scoring categories, the brownfield per-subagent / per-action sub-scoring rules, and the percentage bands (90-100 production-ready, 75-89 strong foundation, 50-74 needs revision, <50 significant gaps). Score the substance, not the vocabulary.
For each gap surfaced:
Evaluation written to persona/[agent-name]/evaluation.md. Total presented as percentage (90-100 production-ready, 75-89 strong foundation, 50-74 needs revision, <50 significant gaps). Present the HUB; suggested next is FILL OUT or ADJUST if gaps exist, ENCODE if scores are passing.
Generate valid encoding output for Agent Script (default) or Agentforce Builder.
If name_decision is still pending, pause ENCODE and route the user to the NAME spoke first. Reason: Agent Script's config.agent_label is required; encoding with a placeholder silently inherits the working title (e.g., "the quoting agent"), which the user may not notice before deploy.
After NAME completes, ENCODE resumes.
1. Confirm channel (single value from state).
2. Confirm authoring tool:
- Greenfield: default = Agent Script.
→ "Encode for Agent Script (default), or switch to Agentforce Builder?"
- Brownfield, source is Agent Script: default = Agent Script.
→ "Stay on Agent Script (recommended)?"
- Brownfield, source is Builder: default = Builder, but offer the upgrade path.
→ "Stay on Builder, or switch to Agent Script (recommended for per-subagent encoding granularity)?"
3. Generate comprehensive persona block (always):
- system.instructions — full persona content
- system.messages.welcome — in-character welcome
- system.messages.error — in-character error
4. Subagent-level encoding? Three answers:
- "I have subagents defined" → enumerate them, generate per-subagent reasoning.instructions
- "I don't have subagents yet" → skip; output is global-only (Use Case A)
- "Generate examples" → infer 2-3 plausible subagents, label as examples
5. Action-level encoding? Same three answers; generates progress_indicator_message per action.
6. Voice encoding? Only if channel is telephony or multimodal-with-audio.
- Voice recommendations from references/voice-catalog.json
- Per-voice fine-tuning starting points (Speed, Stability, Similarity)
- AI disclosure in welcome message
- Pronunciation dictionary for brand terms
7. Diff (brownfield only): annotated proposed-new-file + diff summary.The skill never invents subagents, actions, variables, or routing. Architecture stays the user's call.
Read references/persona-encoding-guide.md for the full field-by-field guide (block order, formatting rules, Builder field char limits, progress_indicator_message placement, channel adjustments). Operational essentials:
.agent) — valid Agent Script syntax per forcedotcom/sf-skills/skills/developing-agentforce/. Greenfield: emit a minimal valid skeleton (system with full persona + in-character welcome/error, config, language, start_agent stub, one placeholder subagent) — a working starting point the user fleshes out; never invent subagents/actions/variables/routing. Brownfield: preserve the existing structure and modify only persona-bearing fields (system.instructions, system.messages.welcome/error, per-subagent system:/reasoning.instructions:, per-action progress_indicator_message:). Write to persona/[agent-name]/[agent-name].agent.persona/[agent-name]/builder-fields.md.When source was a .agent file, generate two artifacts:
persona/[agent-name]/persona-diff.md — annotated proposed-new-file. Each persona-bearing field shown with the proposed new content + an inline rationale ("changed because: tone-flex called for empathy bump in escalation").The diff explicitly excludes routing, subagent structure, action contracts.
Encoding artifact written. Present the HUB.
Spokes are accessory work, available any time after DRAFT, in any order, repeatable.
"Does this agent get a name? Some agents work better unnamed (transactional services, talking systems, agents whose identity is the brand itself). Others benefit from a distinct name. What's right for this one?"
If a working title was detected in DRAFT (display_name_placeholder set):
"I picked up '[working title]' from your input. Confirm it, or pick from suggestions?"
If yes (named):
Apply naming principles from the framework:
Tech_Assist_Agent_v2_Internal_Test are NOT persona names.If no (unnamed): set name_decision: unnamed or brand-as-name. Display name in encoding becomes either the brand name or null per user choice.
State update: name_decision ∈ {named, unnamed, brand-as-name}. Display name populated.
"You're in FILL OUT. What would you like to work on?
- Phrase book additions
- Never-say expansions
- Lexicon additions (global or per-subagent)
- Immutable content marking
- I'm done with this spoke (Pick one; you'll come back here after each, or pick multiple by listing.)"
For each sub-activity, present current state and gather additions/edits. Update the persona document on exit.
Gated: only offered when subagents or actions exist (declared by user, or detected from a source .agent file in brownfield mode).
"You're in ADJUST. What would you like to work on?
- Per-subagent persona adjustment (e.g., 'in escalation subagent, drop humor to zero')
- Per-action loading text (in voice)
- I'm done with this spoke"
Per-subagent adjustments encode as Agent Script system: overrides or reasoning.instructions calibrations.
Per-action loading text encodes as progress_indicator_message strings.
Reads the persona document; produces a markdown checklist marking each element as [+] present, [-] missing, or — not applicable. Definitions pulled directly from the framework.
Output template at assets/checklist-template.md. Each suggested next step is quotable (e.g., "go to NAME", "go to FILL OUT, add Lexicon") so the user can paste back rather than retype.
Useful before SCORE for a quick gap scan, and before ENCODE for a readiness check.
Write to persona/[agent-name]/checklist.md.
Generate a stakeholder-facing outline for a customer's internal workshop. Output supports FigJam / whiteboard formats.
Question generation policy (read references/workshop-question-policy.md for the full rules):
Use scenario seeds from references/workshop-scenario-seeds.md for would-you-rather pairs.
Output template at assets/workshop-outline-template.md. Output to persona/[agent-name]/workshop-outline.md.
Quality over coverage. Better to ask 4 great questions than 12 generic ones.
After every phase or spoke exit, present the HUB. Not a flat menu — the suggested next step is rendered as a labeled primary recommendation with rationale, above the rest.
HUB
Suggested next:
→ [SUGGESTED] — [one-line rationale grounded in current state]
Or do something else:
Phases:
→ REFINE [state-aware annotation, e.g., "re-run; iterate on dialog"]
→ SCORE ["how good is it?"]
→ ENCODE [gating note if name_decision pending]
Spokes:
⊙ NAME [annotation: "name_decision pending" or "current: [name]"]
⊙ FILL OUT [annotation: what's empty, e.g., "Lexicon empty"]
⊙ ADJUST [annotation: gated reason if not available]
⊙ CHECKLIST ["what's filled in?"]
⊙ WORKSHOP ["stakeholder workshop outline"]
Exit:
→ I'm doneSuggestion logic:
name_decision: pending and ENCODE was attempted → suggest NAME, then resume ENCODEThe skill produces:
persona/[agent-name]/persona.md) — DRAFT. Updated by other phases/spokes.persona/[agent-name]/sample-dialog.md) — REFINE.persona/[agent-name]/evaluation.md) — SCORE.persona/[agent-name]/[agent-name].agent for Agent Script, OR persona/[agent-name]/builder-fields.md for Builder) — ENCODE.persona/[agent-name]/persona-diff.md) — ENCODE in brownfield mode only.persona/[agent-name]/checklist.md) — CHECKLIST spoke.persona/[agent-name]/workshop-outline.md) — WORKSHOP spoke.persona/ is gitignored at the skill repo level so dogfooding the skill with cwd inside this checkout doesn't leak outputs into git. In any other working directory, the user is responsible for whatever gitignore rules they want to apply.
Cross-surface UX guidelines (output-before-questions, batching independent questions, compact
formats, progress awareness, confidence callouts) are in references/interaction-design-notes.md. Apply them across all surfaces — CLI, TUI, web, IDE.
This skill draws on published, openly-licensed conversation-design work; see references/attributions.md.
© forcedotcom, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 24 other files (scripts, references, assets) in skills/agentforce-persona-generate of forcedotcom/sf-skills.
Open the folder on GitHubat commit e5164d9
Agentforce Persona Generate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Agentforce Persona Generate this skillforcedotcom/sf-skills | 1.1k | — | ~6.9k | Automated safety check: Pass | Apache-2.0 | |
| Claude Code Self-Assessment Advisorlhfer/claude-howto-zh-cn | 2.3k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Skill JudgeshareAI-lab/lab-skills | 314 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| TendrillableIvy-Interactive/Ivy-Tendril | 200 | — | ~2.3k | Automated safety check: Pass | Custom licence | |
| Update Parker Skillreal-simple-labs/parker-brain | 100 | — | ~4.6k | Automated safety check: Pass | Custom licence | |
| Agent Evaluationseb1n/awesome-ai-agent-skills | 206 | — | ~1.4k | Automated safety check: Pass | MIT |
lhfer/claude-howto-zh-cn
Quizzes you on Claude Code in a quick or deep mode, scores your level across 10 topics and recommends what to learn next, in Chinese.
shareAI-lab/lab-skills
Evaluate Agent Skill design quality with an opinionated, practice-derived rubric informed by public specifications and examples.
Ivy-Interactive/Ivy-Tendril
Find "Tendrillable" GitHub issues - open, recent, code-requiring issues that an agent can plan and one-shot WITHOUT asking clarifying questions, with high probability of success.
real-simple-labs/parker-brain
Make a correct update to Parker's prompts, system docs, rubrics, knowledge docs, training corpus, or brand outputs — and propagate the change everywhere it needs to land.
seb1n/awesome-ai-agent-skills
Design reproducible evaluations for AI agents with representative task sets, explicit rubrics, appropriate graders, baselines, regression gates, and failure analysis.
alirezarezvani/claude-skills
A skill your agent uses when a user wants to build, launch, grade, or schedule a Claude Managed Agent (CMA) in their own Anthropic account — "build me an agent", "launch this as a managed agent"…
forcedotcom/sf-skills
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins.
forcedotcom/sf-skills
Data Cloud 360° view of a single Agentforce session. An agent skill from forcedotcom/sf-skills.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply SLDS-compliant UI using the correct blueprints, styling hooks, utility classes, and icons.
forcedotcom/sf-skills
Lightning Web Components with PICKLES methodology and 165-point scoring.
Works with
Categories
A skill your agent uses to design an AI agent persona — identity, voice, tone, behavioral style, guardrails — and encode it into Agent Script (.agent files) or Agentforce Builder field values. Agentforce Persona Generate is an agent skill from forcedotcom/sf-skills.agent files) or Agentforce Builder field values.
Agentforce Persona Generate fits situations like: design an AI agent persona — identity; behavioral style; guardrails — and encode it into Agent Script (.agent files); agentforce Builder field values.
Run `npx skills add forcedotcom/sf-skills --skill agentforce-persona-generate -a claude-code`. Or copy the skill folder (skills/agentforce-persona-generate in forcedotcom/sf-skills) into .claude/skills/agentforce-persona-generate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add forcedotcom/sf-skills --skill agentforce-persona-generate -a codex`. Or copy the skill folder (skills/agentforce-persona-generate in forcedotcom/sf-skills) into .agents/skills/agentforce-persona-generate in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add forcedotcom/sf-skills --skill agentforce-persona-generate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agentforce-persona-generate, .gemini/skills/agentforce-persona-generate, .github/skills/agentforce-persona-generate and .opencode/skills/agentforce-persona-generate in your project.
SKILL.md names no scripts, command-line tools or credentials: Agentforce Persona Generate is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, AskUserQuestion, Glob, Grep.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Agentforce Persona Generate is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.9k tokens (SKILL.md is roughly 28k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 51k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Agentforce Persona Generate: Claude Code Self-Assessment Advisor (lhfer/claude-howto-zh-cn, 2.3k stars), Skill Judge (shareAI-lab/lab-skills, 314 stars), Tendrillable (Ivy-Interactive/Ivy-Tendril, 200 stars) and Update Parker Skill (real-simple-labs/parker-brain, 100 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
forcedotcom (a GitHub organization) maintains it in forcedotcom/sf-skills, which has 1,065 GitHub stars. The repository holds 251 skills in this directory. The repository was last updated on October 7, 2026.
Source: forcedotcom/sf-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.