@salesforce/afv-skills 1.58.0 → 1.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/package.json +1 -1
  2. package/skills/agentforce-bot-upgrade/SKILL.md +3 -1
  3. package/skills/agentforce-generate/SKILL.md +21 -1
  4. package/skills/agentforce-generate/references/known-issues.md +51 -1
  5. package/skills/agentforce-generate/references/legacy-nga-regression-eval.md +547 -0
  6. package/skills/agentforce-generate/references/upgrade-legacy-agent-to-agentscript.md +577 -0
  7. package/skills/agentforce-generate/scripts/upgrade-legacy-nga-analyze.py +404 -0
  8. package/skills/agentforce-generate/scripts/upgrade-legacy-nga-run-trials.sh +58 -0
  9. package/skills/agentforce-persona-generate/SKILL.md +505 -0
  10. package/skills/agentforce-persona-generate/assets/checklist-template.md +100 -0
  11. package/skills/agentforce-persona-generate/assets/persona-encoding-template.md +252 -0
  12. package/skills/agentforce-persona-generate/assets/persona-template.md +229 -0
  13. package/skills/agentforce-persona-generate/assets/sample-dialog-template.md +50 -0
  14. package/skills/agentforce-persona-generate/assets/workshop-outline-template.md +97 -0
  15. package/skills/agentforce-persona-generate/examples/concierge-persona.md +189 -0
  16. package/skills/agentforce-persona-generate/examples/concierge-sample-dialog.md +70 -0
  17. package/skills/agentforce-persona-generate/examples/drover-persona.md +194 -0
  18. package/skills/agentforce-persona-generate/examples/drover-sample-dialog.md +62 -0
  19. package/skills/agentforce-persona-generate/examples/steady-hand-persona.md +188 -0
  20. package/skills/agentforce-persona-generate/examples/steady-hand-sample-dialog.md +68 -0
  21. package/skills/agentforce-persona-generate/examples/yt-persona.md +195 -0
  22. package/skills/agentforce-persona-generate/examples/yt-sample-dialog.md +66 -0
  23. package/skills/agentforce-persona-generate/references/attributions.md +36 -0
  24. package/skills/agentforce-persona-generate/references/interaction-design-notes.md +30 -0
  25. package/skills/agentforce-persona-generate/references/persona-encoding-guide.md +566 -0
  26. package/skills/agentforce-persona-generate/references/persona-framework.md +796 -0
  27. package/skills/agentforce-persona-generate/references/refinement-mappings.md +31 -0
  28. package/skills/agentforce-persona-generate/references/scoring-rubric.md +58 -0
  29. package/skills/agentforce-persona-generate/references/voice-catalog.json +2327 -0
  30. package/skills/agentforce-persona-generate/references/workshop-question-policy.md +90 -0
  31. package/skills/agentforce-persona-generate/references/workshop-scenario-seeds.md +119 -0
  32. package/skills/agentforce-persona-generate/scripts/parse_agent_yaml.py +223 -0
  33. package/skills/dx-app-analytics-query/SKILL.md +8 -8
  34. package/skills/experience-ui-bundle-app-coordinate/SKILL.md +12 -12
  35. package/skills/experience-ui-bundle-app-coordinate/references/phase-completion-validation.md +3 -3
  36. package/skills/experience-ui-bundle-app-coordinate/references/phase-execution-pattern.md +9 -7
  37. package/skills/experience-ui-bundle-app-coordinate/scripts/check-dangling-refs.mjs +132 -0
  38. package/skills/experience-ui-bundle-app-coordinate/scripts/check-hosting-target.mjs +62 -0
  39. package/skills/experience-ui-bundle-app-coordinate/scripts/check-phase-1-complete.mjs +71 -0
  40. package/skills/experience-ui-bundle-app-coordinate/scripts/check-phase-4-complete.mjs +95 -0
  41. package/skills/experience-ui-bundle-app-coordinate/scripts/check-phase-6-ready.mjs +78 -0
  42. package/skills/experience-ui-bundle-app-coordinate/scripts/check-prerequisites.mjs +21 -0
  43. package/skills/experience-ui-bundle-app-coordinate/scripts/check-sfdx-project.mjs +28 -0
  44. package/skills/experience-ui-bundle-custom-app-generate/SKILL.md +3 -1
  45. package/skills/experience-ui-bundle-custom-app-generate/scripts/resolve-uibundle-path.mjs +40 -0
  46. package/skills/experience-ui-bundle-frontend-generate/SKILL.md +7 -5
  47. package/skills/experience-ui-bundle-frontend-generate/scripts/check-preconditions.mjs +70 -0
  48. package/skills/experience-ui-bundle-frontend-generate/scripts/resolve-ui-bundle.mjs +76 -0
  49. package/skills/experience-ui-bundle-frontend-generate/scripts/verify-rules.mjs +115 -0
  50. package/skills/experience-ui-bundle-metadata-generate/SKILL.md +7 -3
  51. package/skills/experience-ui-bundle-metadata-generate/references/angular-metadata-generate.md +1 -1
  52. package/skills/experience-ui-bundle-metadata-generate/references/react-metadata-generate.md +1 -1
  53. package/skills/experience-ui-bundle-metadata-generate/scripts/check-api-version.mjs +43 -0
  54. package/skills/experience-ui-bundle-metadata-generate/scripts/detect-framework.mjs +131 -0
  55. package/skills/experience-ui-bundle-metadata-generate/scripts/verify-bundle-location.mjs +152 -0
  56. package/skills/experience-ui-bundle-mfa-configure/references/branding.md +10 -6
  57. package/skills/experience-ui-bundle-app-coordinate/scripts/check-dangling-refs.sh +0 -42
  58. package/skills/experience-ui-bundle-app-coordinate/scripts/check-hosting-target.sh +0 -26
  59. package/skills/experience-ui-bundle-app-coordinate/scripts/check-phase-1-complete.sh +0 -35
  60. package/skills/experience-ui-bundle-app-coordinate/scripts/check-phase-4-complete.sh +0 -47
  61. package/skills/experience-ui-bundle-app-coordinate/scripts/check-phase-6-ready.sh +0 -33
  62. package/skills/experience-ui-bundle-app-coordinate/scripts/check-prerequisites.sh +0 -20
  63. package/skills/experience-ui-bundle-app-coordinate/scripts/check-sfdx-project.sh +0 -15
  64. package/skills/experience-ui-bundle-custom-app-generate/scripts/resolve-uibundle-path.sh +0 -30
  65. package/skills/experience-ui-bundle-frontend-generate/scripts/check-preconditions.sh +0 -37
  66. package/skills/experience-ui-bundle-frontend-generate/scripts/resolve-ui-bundle.sh +0 -66
  67. package/skills/experience-ui-bundle-frontend-generate/scripts/verify-rules.sh +0 -58
  68. package/skills/experience-ui-bundle-metadata-generate/scripts/check-api-version.sh +0 -30
  69. package/skills/experience-ui-bundle-metadata-generate/scripts/detect-framework.sh +0 -73
  70. package/skills/experience-ui-bundle-metadata-generate/scripts/verify-bundle-location.sh +0 -118
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/afv-skills",
3
- "version": "1.58.0",
3
+ "version": "1.59.0",
4
4
  "description": "Salesforce skills for Agentforce Vibes",
5
5
  "license": "CC-BY-NC-4.0",
6
6
  "files": [
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: agentforce-bot-upgrade
3
- description: "Use this skill to Upgrade Einstein Bots into Agentforce agents end-to-end in a single pass, orchestrating per-bot Agent Spec generation, planner reconciliation across bots, agentforce-generate authoring, and post-conversion .agent enhancements. TRIGGER when: user asks to migrate, upgrade, or convert one or more Einstein Bots to Agentforce; runs a multi-bot bot-to-agent upgrade; needs Einstein Bot metadata turned into Agent Spec handoffs and generated .agent agents; convert bots to agents; upgrade my service bots; move bots to Agentforce. DO NOT TRIGGER when: user already has an approved Agent Spec and only wants direct .agent authoring, deploy, test, or observe flows; the request is unrelated to Einstein Bot migration."
3
+ description: "Use this skill to Upgrade Einstein Bots into Agentforce agents end-to-end in a single pass, orchestrating per-bot Agent Spec generation, planner reconciliation across bots, agentforce-generate authoring, and post-conversion .agent enhancements. TRIGGER when: user asks to migrate, upgrade, or convert one or more Einstein Bots (BotDefinition/BotVersion chatbots) to Agentforce agents; runs a multi-bot bot-to-agent upgrade; needs Einstein Bot metadata turned into Agent Spec handoffs and generated .agent agents; convert bots to agents; upgrade my service bots; move bots to Agentforce. DO NOT TRIGGER when: user already has an approved Agent Spec and only wants direct .agent authoring, deploy, test, or observe flows; user wants to migrate or upgrade an EXISTING Agentforce agent from a legacy GenAiPlannerBundle to an NGA aiAuthoringBundle (that is agentforce-generate's 'Migrate a Legacy Agent to Agent Script' flow, not an Einstein Bot upgrade); the request is unrelated to Einstein Bot migration."
4
4
  argument-hint: "[--mode <online|offline>] [--org-alias <org-alias> --bots <bot1:v1,bot2:v2,...> | --offline-dir <offline-dir> [--bots <bot1,bot2,...>]] [--interactive <true|false>]"
5
5
  metadata:
6
6
  version: "1.0"
@@ -25,6 +25,8 @@ Run a multi-bot upgrade-and-handoff cycle:
25
25
  4. `/agentforce-generate` per Agent Spec (parallelizable)
26
26
  5. Post-conversion enhancement pass per generated Agent Script (parallelizable)
27
27
 
28
+ **Scope — this skill only converts Einstein Bots** (`BotDefinition`/`BotVersion` chatbots) into new Agentforce agents. It does NOT migrate an existing Agentforce agent from a legacy `GenAiPlannerBundle` to an NGA `aiAuthoringBundle` — for that, use the **agentforce-generate** skill's "Migrate a Legacy Agent to Agent Script" flow.
29
+
28
30
  ## Inputs
29
31
 
30
32
  Inputs:
@@ -1,11 +1,12 @@
1
1
  ---
2
2
  name: agentforce-generate
3
- description: "Build, modify, audit, repair, optimize, debug, and deploy agents with Agentforce Agent Script. TRIGGER when: user creates, reviews, or changes .agent files or aiAuthoringBundle metadata; asks to fix AgentScript, audit an existing agent, run an AgentScript health check, common-pitfall review, or baseline-versus-candidate repair loop; changes a response, action, subagent, route, state flow, or Agent Spec; previews, debugs, deploys, publishes, or tests agents; uses sf agent generate/preview/publish/test; or manages Agentforce MCP servers, tools, assets, or authentication. DO NOT TRIGGER when: Apex, Flow, Prompt Template, Experience Cloud, or general Salesforce CLI work is unrelated to Agent Script; or the primary input is a production session or trace ID rather than an agent artifact."
3
+ description: "Build, modify, audit, repair, optimize, debug, and deploy agents with Agentforce Agent Script. TRIGGER when: user creates, reviews, or changes .agent files or aiAuthoringBundle metadata; asks to fix AgentScript, audit an existing agent, run an AgentScript health check, common-pitfall review, or baseline-versus-candidate repair loop; changes a response, action, subagent, route, state flow, or Agent Spec; migrates or upgrades a legacy GenAiPlannerBundle Agentforce agent (NOT an Einstein Bot) to an aiAuthoringBundle (Agent Script) agent; previews, debugs, deploys, publishes, or tests agents; uses sf agent generate/preview/publish/test; or manages Agentforce MCP servers, tools, assets, or authentication. DO NOT TRIGGER when: Apex, Flow, Prompt Template, Experience Cloud, or general Salesforce CLI work is unrelated to Agent Script; the source is an Einstein Bot (BotDefinition/BotVersion) — use agentforce-bot-upgrade; or the primary input is a production session or trace ID rather than an agent artifact."
4
4
  metadata:
5
5
  version: "0.11"
6
6
  domains: ["Agentforce"]
7
7
  minApiVersion: "66.0"
8
8
  relatedSkills:
9
+ - "agentforce-bot-upgrade"
9
10
  - "agentforce-observe"
10
11
  - "agentforce-test"
11
12
  - "automation-flow-generate"
@@ -351,6 +352,25 @@ creation, execution, and result analysis. First map the Agent Spec and all
351
352
  reachable routes/actions into coverage targets. Confirm before adding security
352
353
  tests or running tests that can invoke live actions.
353
354
 
355
+ ### Migrate a Legacy Agent to Agent Script
356
+
357
+ User wants to upgrade a legacy `GenAiPlannerBundle` agent into an NGA `AiAuthoringBundle` (Agent Script) agent. May say "migrate my legacy agent", "upgrade to the new builder", "convert agent", "start migration", or mention `genAiPlannerBundle` / `aiAuthoringBundle` migration. (Distinct from Einstein **Bot** upgrades — this covers existing Agentforce **agents**. To convert an Einstein **Bot** into a new agent, use the **agentforce-bot-upgrade** skill instead.)
358
+
359
+ #### Required Steps
360
+
361
+ Read [Upgrade a Legacy Agent to Agent Script](references/upgrade-legacy-agent-to-agentscript.md) for the full workflow, exact commands, and the NGA-vs-legacy discriminator. In brief:
362
+
363
+ 1. **Set up the project** — **Confirm the target org via a selectable menu — never assume the default org** (show `sf org list`, mark the default, require an explicit pick). Confirm a DX project (create one if needed); run all retrieves from inside it.
364
+ 2. **Pick the legacy agent version** — Two-screen selection: choose the agent, then a **non-NGA** version. Exclude versions whose planner `PlannerType` is `Atlas__ConcurrentMultiAgentOrchestration` (already NGA).
365
+ 3. **Migrate via the Connect API** — POST the chosen `botVersionId` to `migrateAgentToNga`. Mutating call; confirm org + id first. Run it in a **subagent** so the large response (inline `agentScript`) does not bloat context — return only `bundleVersionApiName` (+ `conversionWarnings`, `agentResponse`).
366
+ 4. **Retrieve the new bundle** — Pull the `AiAuthoringBundle` into the project (by `bundleVersionApiName`, or map `bundleVersionId → fullName` as fallback).
367
+ 5. **Analyze, optimize, iterate** — The migration is a mechanical transform that ignores Agent Script primitives. Hand off to **Comprehend an Existing Agent**, then **Optimize an Agent**, then validate/preview.
368
+
369
+ #### Reference Files
370
+
371
+ 1. [Upgrade a Legacy Agent to Agent Script](references/upgrade-legacy-agent-to-agentscript.md) — full step-by-step workflow, commands, and discriminator logic
372
+ 2. [Core Language](references/agent-script-core-language.md) — read the migrated `.agent` structure
373
+
354
374
  ### Optimize an Agent
355
375
 
356
376
  1. Read [Core Language](references/agent-script-core-language.md) and scan every
@@ -325,6 +325,56 @@ Unresolved platform bugs, limitations, and edge cases that affect Agent Script d
325
325
 
326
326
  ---
327
327
 
328
+ ### Issue 21: Migration breaks for agents whose developer name ends in `_<digits>`
329
+ - **Status**: WORKAROUND
330
+ - **Date Discovered**: 2026-08-19
331
+ - **Affects**: `migrateAgentToNga` (legacy → NGA) for any agent whose
332
+ `developer_name` ends in an underscore followed by digits — e.g. `Agent_01`,
333
+ `Support_Bot_2`, `Order_Agent_007`. The trailing `_<digits>` pattern is
334
+ `_\d+$`.
335
+ - **Symptom**: The migration call itself may succeed and the migrated agent is
336
+ viewable/editable **in the Agent Builder UI**, but the bundle **cannot be
337
+ worked on from the terminal**. The versioning treatment of the
338
+ `AiAuthoringBundle` is wrong: the tooling conflates the `_<digits>` name suffix
339
+ with a bundle **version** suffix (`<name>_<version>`), so `sf project retrieve`
340
+ / `sf project deploy` / `sf agent validate|publish` mis-resolve the `fullName`
341
+ and version, and edits cannot be round-tripped.
342
+ - **Root Cause**: `AiAuthoringBundle` uses a `<developer_name>_<version>`
343
+ `fullName` convention (see Issue on the retrieve/deploy folder-name trap in
344
+ [upgrade-legacy-agent-to-agentscript.md](upgrade-legacy-agent-to-agentscript.md)).
345
+ When the developer name **itself** ends in `_<digits>`, that trailing segment
346
+ is ambiguous with the version segment, so the bundle's version handling is
347
+ parsed incorrectly.
348
+ - **Workaround**: Rename the agent's `developer_name` to break up the trailing
349
+ digits **before** migrating — insert a non-digit character so the name no
350
+ longer matches `_\d+$`. A minimal change is enough:
351
+ - `Agent_01` → `Agent_v01`
352
+ - `Order_Agent_007` → `Order_Agent_v007`
353
+
354
+ **Warning: Renaming has ripple effects.** The agent is referenced by developer name
355
+ in several places that must all be updated to the new name, or they break:
356
+ - **Email Configurations** for the Agentforce Service Agent (and any other
357
+ channel/config records keyed on the agent name).
358
+ - **Deploy configs** — `package.xml` and any `AiAuthoringBundle` /
359
+ `GenAiPlannerBundle` member entries that name the agent.
360
+ - **Integrations using the Agent API** — any external caller that targets the
361
+ agent by developer name.
362
+
363
+ Because of this blast radius, prefer renaming **before** the agent accrues
364
+ downstream references. This skill migrates agents from the terminal (`sf` CLI /
365
+ source-controlled workflow), so a `_<digits>` developer name is a **hard
366
+ blocker** for it: the rename above is mandatory before the skill can migrate the
367
+ agent. (The Agent Builder UI can still open a migrated `_<digits>` agent for
368
+ viewing — that is platform behavior, not a path this skill offers, and it does
369
+ not remove the terminal round-trip breakage.)
370
+ - **Open Questions**:
371
+ - Will `migrateAgentToNga` / the bundle tooling be fixed to treat a
372
+ `_<digits>`-suffixed developer name distinctly from a version suffix?
373
+ - Is there a supported rename path that cascades to Email Configurations and
374
+ API integrations automatically?
375
+
376
+ ---
377
+
328
378
  ## Resolved Issues
329
379
 
330
380
  ### Issue 16: `connections:` (plural) wrapper block not valid — use `connection messaging:` (singular)
@@ -359,4 +409,4 @@ When an issue is resolved:
359
409
 
360
410
  ---
361
411
 
362
- *Last updated: 2026-03-04*
412
+ *Last updated: 2026-08-19*