Cómo usar
- Copia el comando y revisa el paquete antes de instalarlo en tu entorno de agente.
- Consulta las herramientas, credenciales y entornos necesarios en el documento original.
- Describe las entradas y el resultado deseado; contrasta la salida con las fuentes.
npx skills add https://github.com/sshvarzman-salesforce/claude-skills --skill sra-config-analysis-sharedAntes de empezar
- La instalación no incluye suscripción al modelo, cuota API ni permisos sobre tus archivos.
- Las estrellas e instalaciones reflejan actividad, no una prueba independiente de calidad o seguridad.
Contenido del repositorio de origen con títulos, ejemplos, código, tablas, enlaces e imágenes preservados.
SRA Configuration & Behavior Analysis (Shared — FDE Edition)
Analyze any Agentforce Service Assistant topic configuration and identify what causes non-deterministic behavior. Produces variance analysis, edge cases, test cases, and fix recommendations — grounded in SRA platform knowledge. This is the shared FDE version. It works entirely from data YOU provide (topic configs, KB articles, case emails, transcripts). No internal Slack or codesearch dependencies — safe for use with customer org data.
Invocation: /sra-config-analysis-shared [topic name or paste config]
What This Skill Does
You provide a topic configuration + sample artifacts from the customer org. The skill:
- Identifies variance sources — where different utterances or data states produce inconsistent behavior
- Maps edge cases — across 7 categories (input validation, data states, system states, permissions, flow interruptions, integration failures, SRA-specific)
- Checks action alignment — do action required inputs match what instructions promise?
- Evaluates planner impact — how does the ReAct planner (dynamic plan prompt) interpret these instructions?
- Generates test cases — mapped to the 9 prompt quality goals
- Produces fix recommendations — prioritized P0/P1/P2
- Writes a Slack-ready summary — for team distribution
Input Requirements
To run this analysis, provide:
| Required | What | How to Get |
|---|---|---|
| ✅ | Topic instructions (full text) | Agent Builder → Topic → Subagent Configuration |
| ✅ | Classification description | Agent Builder → Topic → Classification Description |
| ✅ | Scope | Agent Builder → Topic → Scope |
| ✅ | Actions list (names) | Agent Builder → This Subagent's Actions tab |
| ⭐ | Action configurations (inputs/outputs/settings) | Click each action → View Action |
| ⭐ | Relevant Knowledge Articles (full text) | Knowledge tab → Article used by this topic |
| ⭐ | Sample case emails or message transcripts | Case Feed → Email thread / Messaging transcript |
| ⭐ | Sample case record (field values or screenshot) | Service Console → Case record |
| Optional | Channel context (Email, Messaging, Voice, or all) | You specify |
| Optional | Known issues or symptoms | You describe |
| Optional | Apex code for custom actions | Developer Console or VS Code |
⭐ = Strongly recommended for complete analysis. Without these, the skill produces theoretical analysis only — not real-world variance detection.
Why Sample Artifacts Matter
You MUST provide these for a complete analysis. They are the difference between "this could go wrong" and "here's exactly what goes wrong with this customer's real data":
| Artifact | What It Reveals |
|---|---|
| Knowledge Articles | Whether "Answer Questions with Knowledge" retrieves useful content; whether article structure aligns with anti-dumping cadence; whether instructions reference KB steps that don't exist |
| Case Emails (inbound) | Real customer language that triggers classification; identifier formats the planner must parse; ambiguous phrasing that tests CSR_SIGNAL logic |
| Message Transcripts | Multi-turn interaction patterns; where CSR gets stuck; actual confirmation phrases used (vs magic phrases required); turn counts for HiL/INPUT_FORM flows |
| Case Field Values | Pre-populated vs blank fields at session start; which conditions in instructions evaluate true/false; data the planner can ground on vs data it must request |
If artifacts are missing, the skill will ask:
To complete this analysis, I need sample artifacts from the customer org. Can you provide: 1. A relevant Knowledge Article — the full text of an article this topic would retrieve (e.g., the troubleshooting guide for this product) 2. A sample case email or message transcript — a real or representative customer interaction that would trigger this topic 3. A case record screenshot — showing field values (Subject, Description, Status, Contact Email, any custom fields referenced in instructions) These let me trace exactly how the planner processes real inputs — not just theoretical paths.
Input Modes
This skill supports two input modes. Use whichever fits your situation:
Input Mode: Paste (default)
Copy/paste topic instructions, action configs, KB articles, and case data directly into the conversation. The skill parses and analyzes whatever you provide.
Input Mode: Org-Connected
If you have MCP Adaptor connected to the customer org, tell the skill and it will pull configs directly:
/sra-config-analysis-shared [topic name] — connected to orgThe skill will query:
| What | How |
|---|---|
| Topic instructions | Query GenAiPlannerDefinition / BotVersion for topic config |
| Action configs | Query GenAiFunction for action definitions, inputs, outputs |
| KB articles | Query Knowledge__kav (or custom article type) for published articles assigned to this topic's data library |
| Case data | Query Case for a sample case matching this topic's classification |
| Context variables | Query GenAiContextVariable for variables referenced in instructions |
Requirements for org-connected mode:
- MCP Adaptor configured and authenticated to the target org
- API access to the objects above (most require Setup access or API-enabled profile)
- If the org uses custom Knowledge article types, you may need to specify the object name
Fallback: If MCP Adaptor can't access something (permissions, custom objects), the skill falls back to asking you to paste that piece manually. You can mix modes — e.g., pull topic config from org but paste a transcript manually.
Analysis Framework
Phase 1: Configuration Extraction
Parse the provided configuration into structured components (from paste OR org query):
- Topic metadata — name, API name, classification, scope
- Instructions — numbered, with channel guards and conditional logic identified
- Actions — name, description, inputs (required/optional), outputs (CLT/text), HiL settings
- Context variables — referenced in instructions
- Channel behavior — which instructions apply to which channel
Phase 2: Variance Analysis
Apply SRA domain knowledge to identify variance sources:
2a. Planner Reasoning Variance (Dynamic Plan Prompt — ReAct/Java Planner)
The Java planner uses a ReAct loop (Think → Act → Observe) with a structured dynamic plan prompt. On each turn, the planner scans three equal-weight metadata sources (Procedural Instructions → Policies → Tools), selects ONE atomic next step, scores available tools, and generates a grounded response. Key variance points:
- CSR_SIGNAL ambiguity — planner classifies utterances as EXPLICITCONFIRM (step complete) or DATAONLY (step incomplete). Ambiguous CSR language causes inconsistent step advancement.
- Multiple PI entries matching same state → planner must atomize and merge; redundant conditions waste tokens and may produce different
pi_*labels across runs - Instruction-action misalignment — instructions (PI) promise one thing; tool scoring evaluates something else. Tool may score < 8 and fall back to MANUAL unexpectedly.
- PROACTIVE_MODE vs STOP-AND-WAIT instructions — planner's core objective says "never wait passively" but instructions may say "STOP AND WAIT." Direct conflict.
NOTE: The 4-header model (Gather Info / Work Issue / Resolve / Wrap Up) and deliberation pattern (3 experts) apply to Guidance Plans only, NOT to the dynamic plan prompt used by SRA today.
2b. Action-Instruction Misalignment
Compare what instructions PROMISE vs what actions REQUIRE:
- Instructions say "X is enough to proceed" but action requires X + Y + Z
- Instructions say "execute action" but action has "Collect data from user" on missing inputs
- Instructions say "display output" but action uses CLT rendering (double-display risk)
2c. Channel Isolation
Check every instruction for channel guards:
- Guarded instructions: correctly scoped
- Unguarded instructions: apply to ALL channels — check for channel-specific language ("in response", "in the chat", "on the page")
2d. Temporal/State Variance
Identify where the SAME utterance produces different behavior based on:
- Case field state at session start (pre-populated vs blank)
- Session history (first turn vs subsequent)
- Prior verification attempts (counter state)
- Time since last interaction
2e. Classification Boundary
Check classification description against instruction coverage:
- Does classification attract utterances the instructions can't handle?
- Are product/category exclusions enforced in instructions?
- Is there overlap with other topics?
2f. Knowledge Article Alignment (if KB provided)
Compare the Knowledge Article content against instructions:
- Does the article structure match what instructions expect? (e.g., numbered steps that can be delivered one-at-a-time)
- Does the article contain information for ALL conditions in instructions, or only some?
- Are there steps in the article that NO instruction references? (orphan knowledge — planner may hallucinate steps from it)
- Is the article length within the 65K truncation limit?
- Does the article use the same terminology as the instructions? (mismatch = retrieval may fail)
2g. Real Interaction Trace (if transcript/email provided)
Walk through the provided sample interaction turn-by-turn:
- What would the planner do on Turn 1 with this exact input?
- Which instruction conditions are met/unmet based on real case field values?
- Where does the CSR's natural language differ from what instructions expect?
- Where would INPUT_FORMs appear that the CSR doesn't expect?
- How many LLM calls would this interaction consume? (approaching 8-call limit?)
Phase 3: Edge Cases
Systematically generate edge cases across all 7 categories:
- Input Validation — empty fields, special characters, boundary values, ambiguous text
- Data States — pre-populated vs blank, stale data, conflicting values between fields and utterance
- System States — plan generation timeout, concurrent modifications, session expiry
- Permissions — action permissions vs topic visibility, FLS restrictions
- Flow Interruptions — page refresh mid-flow, navigation away, session restart
- Integration Failures — action returns empty, action times out, action returns error
- SRA-Specific — plan generation lifecycle, multi-agent routing, gater interactions, RecActorActionFeed persistence
Phase 4: Test Cases
Generate test cases mapped to the 9 Dynamic Plan Quality Goals:
| # | Goal | What We're Testing |
|---|---|---|
| 1 | Determinism | Same inputs → same NEXT step and EXECUTION_TYPE on repeated runs |
| 2 | Exhaustivity | All relevant PI/Policy/Tool sources discovered in Phase 2A scan |
| 3 | Conciseness | ###RESPONSE is actionable, ≤2048 tokens, no filler |
| 4 | Atomicity | NEXT step is ONE atomic task |
| 5 | Tool Selection | Correct tool scored ≥8 and selected for AUTO steps |
| 6 | Step Advancement | CSRSIGNAL correctly classified (EXPLICITCONFIRM → COMPLETE; DATA_ONLY → INCOMPLETE) |
| 7 | Self-Contained Steps | ###RESPONSE includes all specifics CSR needs to act |
| 8 | No Duplication | Completed steps not re-proposed |
| 9 | Issue State Awareness | Planner checks conversation history; respects prior work |
Additional test dimensions:
- PROACTIVE_MODE compliance — Does planner propose next step without being asked?
- Groundedness — Is ###RESPONSE grounded in metadata only?
- Persona — Agent speaks TO CSR, not AS CSR?
- Intent classification — CONT vs NEW vs ASK correctly identified?
- 8-call limit safety — Complex flows don't exhaust LLM calls before resolution?
For each variance source, write at least one test case that DEMONSTRATES the variance.
Phase 5: Trace Prediction
For each critical variance source, predict what a session trace would show:
- Where INPUTFORMPRESENTED appears unexpectedly
- Where planner re-plans mid-session due to unexpected state
- Where the 8-call limit would be hit
- Token usage patterns (instruction loading overhead)
Phase 6: Setup Issues
Check for configuration-level problems:
- Knowledge sources connected? (if knowledge action is attached)
- Action inputs aligned with context variable mappings?
- HiL (confirmation) gates appropriate?
- Channel routing consistent?
- Product/entity exclusions enforced?
Phase 7: Recommendations & Output
Produce:
- Variance summary table — all sources ranked by severity
- Fix recommendations — P0 (before production), P1 (before scale), P2 (quality improvement)
- Test case set — ready for Testing Center or manual validation
- Slack post — formatted for team distribution
Severity Classification
| Severity | Definition | Example |
|---|---|---|
| CRITICAL | Agent produces wrong action or unscripted behavior | Action requires inputs instructions don't mention |
| HIGH | Agent produces inconsistent plans across runs | AND/OR logic conflicts |
| MEDIUM | Agent produces suboptimal but not wrong behavior | Ambiguous confirmation handling |
| LOW | Agent behavior is correct but confusing to CSR | Draft vs send language |
Output Format
Variance Analysis
# Variance Analysis: [Topic Name] — [Channel]
**Date:** [today]
**Customer:** [customer name]
**Agent:** [agent name] (Version [X])
**Topic:** [topic name]
**Channel:** [Email/Messaging/Voice/All]
## Executive Summary
[2-3 sentences: how many variance sources, root causes, severity distribution]
## Variance Sources (Ranked)
### CRITICAL
#### V1: [Title]
- The Problem
- Planner Impact
- Real-World Example (from provided artifacts)
- Test Case
### HIGH
...
## Real Case Walkthrough
[Turn-by-turn trace of the provided sample interaction against this config]
## Edge Cases
[By category]
## Test Cases
[Mapped to 9 quality goals]
## Knowledge Article Assessment
[If KB provided: alignment issues, truncation risk, terminology gaps]
## Setup Issues
[Checklist]
## Recommendations
### P0 — Fix Before Production
### P1 — Fix Before Scale
### P2 — Improve QualitySlack Post
Formatted for team distribution. Includes:
- Severity-grouped findings
- Top recommendations
- Real case example
- Offer to walk through or run test cases
Domain Knowledge (Built-In — No External Dependencies)
Key platform facts that inform this analysis:
SRA Platform Positioning (Check FIRST)
SRA is a custom employee-facing agent — NOT a generic Agentforce agent:
| Dimension | SRA Is | SRA Is NOT |
|---|---|---|
| Agent type | Custom employee-facing assistant | AEA (Agentforce for Everyone Agent) |
| Builder | Legacy Agentforce Builder | New Agentforce Builder (NGA) |
| Script | ❌ Not supported (requires NGA) | Agent Script |
| Planner | Legacy Java/ReAct planner | Python Daisy planner |
| Rendering | ACC rendering engine (SPA SF team) | ACC Panel |
| UI surface | Embedded LWC panel in rep's console | AEA popout panel |
System Prompts: SRA prompts live in Prompt Builder but are NOT customer-accessible. Customers cannot modify temperature, model, or prompt text. They control behavior ONLY through topic instructions, action configs, and knowledge articles. Exceptions: Case Catch-Up & Insights, and individual Agentforce Actions (action-level prompt templates).
If a feature requires NGA, AEA, Agent Script, or the new builder → SRA does NOT support it today. Always validate Agentforce features against this matrix before including in analysis.
SRA Is ALWAYS Rep-Facing
SRA (Service Rep Assistant) is an employee-facing agent only. It renders in the CSR's Agentforce sidebar and suggests actions/responses to the rep. The customer NEVER sees SRA output directly — only what the rep chooses to type/send. This means:
- "Show in conversation" renders to the rep's sidebar, not to the customer
- Anti-dumping enforcement is about controlling what the rep sees/does, not about hiding from the customer
- INPUT_FORMs appear to the rep, not the customer
- CLT cards render in the rep's console, not in the customer's chat
Do NOT frame SRA findings as "customer-facing" or speculate about customer visibility. The customer channel (email, messaging, voice) is between the rep and customer — SRA sits beside the rep.
Current Planner: Java/React Planner (Dynamic Plan Prompt)
The Dynamic Plan Prompt is how we inject into and control the Java/ReAct planner. Architecture diagram (also shows closed-circuit grounding for Guidance Plans): https://lucid.app/lucidspark/66b7cd57-02d1-489b-a879-0ba9fb4d7279/edit?page=00&invitationId=inv198d4572-a2fe-4332-8edf-fce12411af7d#
- Architecture: ReAct loop (Think → Act → Observe) with a structured reasoning framework inside the Think step. The LLM outputs
###REASONING+###RESPONSEsections following a multi-phase pipeline. - ONE step per turn: ORDERING contains exactly ONE step — the next PENDING step. The planner structurally advances one atomic step at a time. This is the native plan cadence.
- Non-deterministic by design: "Execution is non-deterministic and completely dependent on LLM capabilities." Same input can select different actions across runs.
- Cannot transition between topics within a session in the current Java planner.
Dynamic Plan Prompt — Phase Structure
| Phase | Purpose | Variance Impact |
|---|---|---|
| 1: Understand | Review conversation history, verify step completion | Checks CSR_SIGNAL for COMPLETE vs INCOMPLETE |
| 2A: Discover | Scan ALL three metadata sources (PI → Policies → Tools) | Order matters: PI scanned FIRST |
| 2B: Select | Choose NEXT_STEP, validate atomicity | Single step selected; multi-source merge |
| 2C: Tool Plan | Score tool (0-10), validate parameters | Execute only if score ≥ 8 |
| 2D: Response | Draft message implementing NEXT_STEP | Must be grounded in metadata |
| 3: Self-Correct | Verify alignment, up to 3 retry cycles | Built-in self-correction |
Three Metadata Sources (EQUAL WEIGHT)
- Policies (
policies) — Array of strings withname: X description: ...format. Topic instructions that define rules/workflows. - Procedural Instructions (
procedural_instructions) — Array of plain text strings. Topic instructions that define step-by-step procedures. Split into atomic steps, assignedpi_<verb>_<target>labels. - Tools (
function_outputs) — Array of objects where keys = function names. Actions available to the agent.
Key: All three are scanned, atomized, and merged. Steps from different sources with same verb+target are MERGED into one step with multiple sources. Order in metadata is ARBITRARY — planner evaluates semantic merit, not position.
CSR_SIGNAL Classification (Critical for Variance)
| Signal | Meaning | Step Status |
|---|---|---|
| EXPLICIT_CONFIRM | CSR said "done"/"verified"/"completed"/"confirmed" | → can mark COMPLETE |
| DATA_ONLY | CSR provided info but NO completion word | → must stay INCOMPLETE |
INPUT ≠ COMPLETION: A step is NEVER complete just because inputs are available. Requires explicit confirmation OR successful tool execution.
Intent Classification
| Intent | Trigger | Behavior |
|---|---|---|
| CONT | Affirms, provides info, or unclear | Resume last proposed step |
| NEW | Explicit redirect ("instead", "actually") | Match new direction from ORDERING |
| ASK | Question (what/how/why/?) | Answer directly, skip step logic |
Tool Scoring (0-10)
Tools execute ONLY if score ≥ 8 AND Relevance > 0 AND Policy Alignment > 0:
- Relevance (0-2): Does tool address the step?
- Input Availability (0-2): Are parameters available?
- Policy Alignment (0-2): Is usage permitted?
- Output Usefulness (0-2): Does it advance resolution?
- Non-Substitution (0-2): No better alternative?
Key Constraints
- PROACTIVE_MODE: "Propose next step proactively. Never wait passively for instructions. Anticipate what comes next."
- Persona: Agent speaks TO the CSR, not to the customer. "Ask the customer to..." not "Dear Customer..."
- Seed plan NOT authoritative: Early outline of issue, "frozen snapshot", explicitly forbidden as input for step discovery. Metadata + conversation history = authoritative.
- Groundedness: Response for CONT/NEW must contain ONLY metadata/context/conversations. No external knowledge for step execution.
- MAX_LLM_CALLS_PER_REQUEST = 8: Hard limit per user turn.
- LLM Response limit: ~2048 tokens. Truncated if exceeded.
- Action output truncation: ~65,000 characters.
- 128K total context window for the underlying model.
- Groundedness check on every response — ungrounded responses get rewritten.
Knowledge Retrieval Architecture
How SRA retrieves knowledge at runtime:
SRA uses Search Knowledge action → Data Cloud Retriever → hybrid_search — NOT prompt retrievers (ADL construct).
| Source Type | Ingestion Path |
|---|---|
| Salesforce Knowledge | Structured → DMO → Search Index → Retriever |
| SharePoint, Google Drive, OneNote | Enterprise Knowledge connector → UDLO → UDMO → HUDMO → Search Index → Retriever |
| Jira (GA Spring '26) | EK Jira connector → same HUDMO pipeline |
| Web content | EK Web Crawler → same HUDMO pipeline |
| Multiple sources | Individual retrievers → Ensemble Retriever (combines all) |
Key facts for config analysis:
- Retrieval is hybrid (vector similarity + keyword) — not keyword-only
- Enterprise Knowledge for Agentforce is GA (Jul 2025) — requires Data Cloud (Data 360) provisioned
- Results ranked by hybrid relevance score; result count is admin-configurable in action config
- SRA displays citations to the rep (article source + chunk metadata)
- System knowledge (fetched once at plan start from Case Subject+Description) persists all turns
- Runtime knowledge (fetched every turn from latest utterance + topic) is ephemeral
- Citations only track runtime knowledge — system knowledge hits show
citedReferences: [](known gap, not hallucination)
Prompts are FORKED between Guidance and Dynamic:
- The prompt that consumes retrieved knowledge is completely different per plan type
- Guidance Plans and Dynamic Plans retrieve from the same infrastructure but use the content differently
- Always consider WHICH plan type when analyzing knowledge retrieval variance
Variance sources in knowledge retrieval:
- Summary field blank → retrieval misses (vector has nothing to match against)
- Article too long → token budget truncates, planner sees partial steps
- Multiple articles with overlapping keywords → non-deterministic which surfaces
- Data Categories assigned without category visibility on agent perm set → article invisible to retriever
- HUDMO not fully indexed → "data provider invalid or no longer exists" error
Action & Output Behavior
- "Show in Conversation" (es_types): When enabled, the agent's response does NOT include the full action output text — instead, the LLM generates a REFERENCE to the action's output and the platform renders it as a separate card/widget. This REDUCES token usage in the agent's response. The rendered card is visible to the user separately from agent text.
- "Collect data from user" flag: When an action input has this enabled, the runtime presents an INPUT_FORM to the user mid-execution. This is NOT part of the plan — it happens at execution time, creating unscripted turns. If the input is also "Required", the form cannot be submitted without it.
- CLT output rendering: When an action output has CLT rendering configured, the platform renders a structured card. With "Show in conversation" ON, the card renders AND the agent may also describe it = potential double-display.
- Variable mapping > prompt instructions: Use variable mapping to deterministically map action output to a context variable. Using prompt instructions to set context variables fails intermittently.
Context & State
- RecActorActionFeed: Single source of truth for AE session state. Context variables persisted here survive page refresh; working memory does not.
- Context variables NOT set at conversation start in Prompt Builder. If testing requires context variables, set them in builder before testing.
- Topic/Action filtering happens multiple times during a conversation — available topics/actions may change mid-session based on context variable values.
FDE Lessons Learned (Meta, SIA, Calix, EA, Pearson)
Instruction Design:
- Keep instructions flat and sequential — nested IF/THEN logic degrades plan consistency significantly
- Add atomic step markers between steps
- Make mandatory first steps explicit in both topic-level AND action-level descriptions
- After action completes: use
"After the action completes, immediately proceed to [next step name]"— vague "let me know how you'd like to proceed" language causes the planner to stall - Recommended limits: 10 topics max, 10 instructions per topic
CLT Rendering Fix (Critical):
- CLT rendering is non-deterministic by design (W-21683108, Acknowledged)
- Fix: Add to both topic AND action instructions:
"The output of this action is always renderable. Always use show_command." - Without this, LLM may skip rendering even when action succeeds
- CaseId as hidden input: SRA doesn't natively carry Case context for CLT forms — add CaseId as hidden input field
CLT Button Limitation (Confirmed Platform Gap):
- CLT buttons CANNOT trigger utterances in chat or write context variables
- No
sendMessagepublic API, nosetContextVariableclient-side API, no structured callback - Workaround: Button copies utterance to clipboard → rep pastes
- Note:
embeddedservice_configuration.util.setSessionContext()works in Embedded Service Deployment (customer-facing) — NOT confirmed for SRA rep-side panel. Test needed.
Summary Plan Grounding (Variance Source):
- Auto-generated summary plan can hallucinate or infer terminology not in KB/instructions
- When summary plan incorrectly frames first step, ALL downstream steps compound the error
- Fix: Can be DISABLED via product team (262.6+ patch). Request disable for customers with inconsistency.
Plan Triggering:
- Dynamic plans ONLY trigger from user utterances — not incoming messages alone
- Case Feed posts/internal comments do NOT trigger plan steps (VOC committed for GA)
- SRA is a co-pilot requiring rep engagement — does NOT auto-progress without HITL
- Custom email handlers: must create standard EmailMessage record + fire expected triggers
Knowledge Architecture:
- Dual-article pattern: Long-form articles (human Data Category) + atomic/AI-optimized articles (ADL Data Category) in same object
- Custom fields (e.g.,
AI_Optimized_Content__c,AI_Resolution_Steps__c) for curated AI content - ServicePlanner User needs read access to published articles only — draft/archived access increases retrieval noise
- ADL field configuration matters — verify via Splunk/trace that correct fields are passed to prompt
Permissions & Licensing:
- ServicePlannerUser ALSO needs Unmetered PSL — not just end users (metering surprise)
- `View Setup and Configuration` permission required for ServicePlannerUser (access to RecActorFeatureDef) — security concern, product fix coming
- Custom Apex must use
with sharingto avoid unintended flex credit metering
Messaging Session:
- Only chat transcript available OOTB — no related Case fields without workaround
- Hyperforce migration risk: Can silently break SRA on Messaging (Falcon instance gap). Validate broker deployment before go-live.
- Plan for 1-week validation window post-migration
Deployment:
- package.xml must include:
Bot+BotVersion+GenAiPlannerBundletogether - Sandbox refresh resets Beta org perms (re-request from product team)
- Row lock errors on agent activation after deployment — typically self-resolve on retry
DO NOT USE screen flows in SRA:
- Screen flows lose state on page refresh → duplicate actions, poor UX
- Use auto-launched flows + CLT outputs instead
- Store flow progress in Case fields if resume functionality needed
Scope Constraints:
- SRA cannot read email attachments or embedded images
- URLs in Messaging break intent classification (HTML auto-rendering)
- General FAQ topic recommended for all implementations (prevents failures on non-matching queries)
Limits Quick Reference
| What | Limit | Impact |
|---|---|---|
| LLM calls per turn | 8 | Error after exceeding |
| LLM response | ~2048 tokens | Truncation |
| Action output | ~65,000 chars | Truncation |
| Context window | ~128K tokens | Hard model limit |
| Topics | ~10 recommended | No hard limit but consistency degrades |
| Instructions per topic | ~10 recommended | Complexity degrades plan quality |
How to Use This Skill
Step 1: Gather the config
In the customer's org (Agent Builder), collect:
- Topic instructions (full text — copy/paste or screenshot)
- Classification description and scope
- Actions list + each action's config (inputs, outputs, HiL, settings)
Step 2: Gather sample artifacts
From the customer's org or from the FDE's testing:
- A Knowledge Article this topic retrieves
- A sample inbound case email or messaging transcript
- A case record showing field values
Step 3: Paste everything and invoke
/sra-config-analysis-shared Hardware Product Support
[paste topic instructions]
[paste action configs]
[paste KB article]
[paste case email or transcript]Step 4: Get your analysis
The skill produces:
- Ranked variance sources with severity
- Real case walkthrough (turn-by-turn)
- Edge cases by category
- Test cases mapped to quality goals
- Fix recommendations (P0/P1/P2)
- Slack post ready to share
Differences from Internal Version
| Feature | Internal (sra-config-analysis) | Shared (sra-config-analysis-shared) |
|---|---|---|
| Slack search | ✅ Searches internal channels live | ❌ No Slack dependency |
| Codesearch | ✅ Can look up Java planner source | ❌ No codesearch dependency |
| Google Docs | ✅ Can pull Beta Docs | ❌ No Google dependency |
| Domain knowledge | ✅ Built-in + live lookup | ✅ Built-in only (comprehensive) |
| Customer data | ⚠️ Requires org access | ✅ Works from pasted/attached data |
| Output quality | Full | Full (same framework, same rigor) |
The shared version contains ALL the domain knowledge needed to produce a complete analysis. The only difference is that live lookups for new/undocumented planner behaviors are unavailable — if you hit something the skill doesn't know, escalate to #temp-sra-fde-pioneers or your SRA PM.
Rules
- READ-ONLY — Never modify the customer's org, agent, topic, or action configuration. Analysis only.
- Always ask for sample artifacts — If the user only provides topic config without KB articles, case emails, or transcripts, prompt them to provide these before proceeding with analysis.
- Always cite the specific instruction/action that causes each variance
- Always include test cases — abstract analysis without concrete examples isn't actionable
- Always include a real case walkthrough — if sample data provided, trace it turn-by-turn
- Distinguish "wrong" from "inconsistent" — wrong = agent does something harmful. Inconsistent = agent does different valid things. Both are variance but severity differs.
- Don't assume intent — if instructions are ambiguous, flag it as ambiguous. Don't guess what the author meant.
- Rate severity honestly — not everything is CRITICAL. Use the severity definitions.
- Retain customer context — since this skill can't call Slack/codesearch, everything you learn about the customer's setup lives in the conversation. Reference it throughout.
Installation
- Copy this
SKILL.mdinto your~/.claude/skills/sra-config-analysis-shared/directory - That's it. No other skills needed — all domain knowledge from
sra-expert,sra-edge-cases,sra-agent-debugger,sra-test-case-writer,sra-setup-debug, andsra-recallis baked into this single file. - Works with any AI Suite / Claude Code installation
You do NOT need to install:
sra-expert/sra-expert-sharedsra-edge-casessra-agent-debuggersra-test-case-writersra-setup-debugsra-recall
This skill contains all their relevant domain knowledge internally. It references them as methodology but does not call them as separate tools.
Optional: Org connection If you have MCP Adaptor connected to the customer org, the skill can pull topic instructions, action configs, and KB articles directly — no pasting needed. See "Input Mode: Org-Connected" below.
Shared skills repo: https://git.soma.salesforce.com/chad-goldsmith/claude-skills
Changelog
| Date | Change |
|---|---|
| 2026-06-24 | Initial shared version — forked from internal sra-config-analysis with self-contained domain knowledge, artifact collection prompts, KB alignment analysis, and real interaction trace phases |




