Commit Graph

95 Commits

Author SHA1 Message Date
gbajpai-sf
3bf5a3493c
Merge 60848ef341 into 4d37555dd8 2026-05-05 09:44:54 +05:30
Hemant Singh Bisht
4d37555dd8
Merge remote-tracking branch 'origin/main' into develop 2026-05-05 08:35:50 +05:30
Ayush Gupta
f5e63fd06a
@W-22252932 [Meta Skill] Skill Creator (#232)
* @W-22252932 [Meta Skill] Skill Creator

* @W-22252932 [Meta Skill] Skill Creator

* @W-22252932 [Meta Skill] Skill Creator

* @W-22252932 [Meta Skill] Skill Creator

* @W-22252932 [Meta Skill] Skill Creator

* @W-22252932 [Meta Skill] Skill Creator

* @W-22252932 [Meta Skill] Skill Creator

* @W-22252932 [Meta Skill] Skill Creator
2026-05-04 11:34:12 +05:30
Jasmine Kaur
0af0eaecf6
fix: remove unused skill @W-22336514@ (#235)
skill-changes-related-to-apex
2026-05-04 10:53:20 +05:30
chandresh-patelsf
8f70982668
feat: add Data Cloud Code Extension and Schema skills (#180)
* feat: add Data Cloud Code Extension and Schema skills
 Add two new skills for Salesforce Data Cloud:
 - datacloud_code_extension: develop, test, and deploy Python code extensions
 - datacloud_schema: retrieve DLO and DMO schema information via REST APIs

* modify the skills name from  - datacloud_code_extension → developing-datacloud-code-extension  and datacloud_schema → getting-datacloud-schema

* updated  getting-datacloud-schema

* fix: address PR #180 review feedback and validation errors

- Wrap description values in double quotes in both SKILL.md files
- Trim developing-datacloud-code-extension SKILL.md from 755 to 319 lines
- Move README.md and quick-reference.md to references/ directory
- Remove "Claude Code" references and hardcoded local paths
- Use relative script paths (scripts/get_dlo_schema.py)
- Move getting-datacloud-schema docs/README.md to references/

---------

Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
2026-05-02 20:40:36 +05:30
Jasmine Kaur
b0811280e4
@W-22253778 Improve validate skill action (#233)
* @W-22253778 Improve validate skill action

* @W-22253778 Minor changes

* Update validate-skills.ts
2026-04-30 16:45:55 +05:30
Hemant Singh Bisht
14801cb52c
Merge remote-tracking branch 'origin/main' into develop 2026-04-29 18:32:46 +05:30
Willie Ruemmele
261abd679a
chore: rename topic to subagent for Agent Script v2 @W-21955450@ (#193)
* @W-21955450@ Rename topic to subagent for Agent Script v2

Aligns with Agent Script v2 naming standards where `topic` is renamed
to `subagent` across all skill documentation and templates.

Changes:
- Agent Script templates: topic keyword → subagent keyword
- References: @topic.* → @subagent.*
- Documentation: Updated all skill references and guides
- Natural language references preserved in comments/descriptions

* Rename start_agent topic_selector to agent_router

Completes the topic → subagent terminology alignment by:

1. Renaming start_agent from topic_selector to agent_router (15 agent files)
2. Updating template topic declarations: topic {{placeholder}} → subagent {{placeholder}} (5 files)
3. Updating all @subagent.topic_selector references to @subagent.agent_router (35 occurrences)
4. Updating documentation: prose, examples, and diagrams (10 markdown files)
5. Updating comments to use agent_router terminology

Files affected:
- 22 agent template files
- 10 documentation/reference markdown files
- Template component files

The agent_router name is more descriptive of its actual function
(routing to different subagents) and completes the Agent Script v2
terminology standardization.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Rename files with "topic" to use "subagent" terminology

Completes the topic → subagent terminology alignment by renaming
files and updating all references:

**Files renamed (5):**
- multi-topic.agent → multi-subagent.agent
- template-single-topic.agent → template-single-subagent.agent
- template-multi-topic.agent → template-multi-subagent.agent
- topic-with-actions.agent → subagent-with-actions.agent
- agent-topic-map-diagrams.md → agent-subagent-map-diagrams.md

**References updated (6 docs):**
- Updated all filename references to point to new filenames
- Updated "Topic Map" → "Subagent Map" throughout documentation
- Updated "multi-topic"/"single-topic" → "multi-subagent"/"single-subagent"

Files modified:
- README.md, SKILL.md, agent-spec-template.md
- assets/agents/README.md, assets/README-legacy.md
- references/agent-design-and-spec-creation.md

This ensures consistent "subagent" terminology across filenames,
file content, and all documentation references.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Complete topic-to-subagent terminology update across skills

Comprehensive update replacing "topic" with "subagent" terminology throughout
the developing-agentforce and testing-agentforce skills to align with Agent
Script's `subagent` block naming.

Key changes:
- "Topic Selector" → "Subagent Router" in all agent templates and docs
- "Topic/action" → "Subagent/action" in documentation
- "Topic map" → "Subagent map" in diagram references
- Updated all architecture documentation to use "subagent" terminology
- Updated 19 .agent template files with new labels and comments
- Updated 8 reference documentation files with consistent terminology

API contract preservation:
- Test spec YAML files preserve "topic" terminology to match Testing Center API
- Added clarifying comments explaining topic/subagent equivalence in YAML files
- Field names like `expectedTopic` unchanged (Salesforce API requirement)

Preserved terms:
- "off-topic" (standard phrase for out-of-scope)
- "expectedTopic" field (Testing Center API)
- "platform topics" (Salesforce guardrail features)

32 files changed, 379 insertions(+), 366 deletions(-)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Complete comprehensive topic-to-subagent terminology update

Thorough update replacing all remaining "topic" references with "subagent"
terminology across developing-agentforce, testing-agentforce, and
observing-agentforce skills to fully align with Agent Script's `subagent`
block naming.

Key changes:
- Agent Script syntax: @topic.<name> → @subagent.<name>
- Agent Script syntax: topic.actions → subagent.actions
- Shell script patterns: ^topic → ^subagent
- Documentation: "topic instructions" → "subagent instructions"
- observing-agentforce skill: Updated all agent architecture references
- Template files: Updated all inline comments and descriptions
- Variable names in scripts: TOPIC → SUBAGENT

Specific updates:
- 45 files changed, 294 insertions, 294 deletions
- Updated all Agent Script code examples to use @subagent syntax
- Updated observing-agentforce issue classification guide
- Updated shell script patterns in diagnostic tools
- Updated Apex comments to clarify topic field maps to subagents

Preserved (as required):
- "off-topic" and "off_topic" (standard out-of-scope phrase)
- Testing Center API fields: expectedTopic, topic: in YAML
- API response fields: .topic, generatedData.topic, topic_assertion
- STDM field names: ssot__TopicApiName__c (with clarifying docs)
- Template placeholders in test specs (API values)
- "Topic hash drift" (API field behavior)
- "Email topic/purpose" (means email subject)
- Explanatory comments about API field mapping

All Agent Script syntax and documentation now consistently uses "subagent"
while preserving backward compatibility with platform API field names.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* a few more topic -> subagent replacements

---------

Co-authored-by: Steve Hetzel <shetzel@salesforce.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-27 12:42:18 -06:00
Shelby Hubick
119dc668d5
@W-21965936@ Add applying and validating SLDS skills to afv-library (#187)
* feat: add SLDS applying and auditing quality skills

Two new skills for SLDS v2 compliance:
- applying-slds: guides artifact selection, styling hooks, utilities, icons
- auditing-slds-quality: scored quality audit with linter + static analysis

Made-with: Cursor

* refactor: rename auditing-slds-quality skill to validating-slds

Renames the skill directory and updates all references in
applying-slds/SKILL.md and applying-slds/checklists.md.

Made-with: Cursor

* fix: improve accuracy and add manual review gate across SLDS skills

Correct hook families, badge modifiers, and severity levels; add a
manual review gate to validating-slds so automated grades alone cannot
declare production readiness; make analyze-quality.cjs portable with
explicit --hooks-index flag; remove dead parseYaml code; add version
field to all three skill frontmatters.

Made-with: Cursor

* chore: retrigger CI

Made-with: Cursor

* fix: quote YAML descriptions and improve color hook disambiguation

- Quote description frontmatter in all three skills for valid YAML
  (inner double quotes now escaped)
- Strengthen Step 4 directive: MUST read color-hooks guide before
  choosing a hook — linter suggestions are unranked
- Add surface vs surface-container disambiguation table
- Add accent hook context table and state progression
- Add standalone-component exception for surface classification
- Add modal background example to examples.md
- Remove redundant brand-button example (covered by new context table)

Made-with: Cursor
2026-04-26 21:03:14 +05:30
Scott Mo
22d2da6806
refactor: mv skill to dev branch (#182)
* refactor: mv skill to separate branch

* feat: add fallbacks to sf site create commands (from fiona)

* fix: target config instrx (from karthik)
2026-04-26 21:03:14 +05:30
Gaurav Bajpai
60848ef341
fix: address external PR review feedback @W-22196528@
Apply review feedback from external PR #227:

- SKILL.md frontmatter: remove `license`, `compatibility`, and
  `metadata` (author/version) fields per reviewer. Keeps only the
  minimal `name`, `description`, `allowed-tools` frontmatter shape
  used by newer sibling skills in afv-library.
- Remove internal Salesforce release references (`core-264`,
  `core-262`) from user-facing docs (SKILL.md troubleshooting
  table, bdt-node-catalog.md BusinessTypeEnum section) and from
  bdt_analyze.py module docstring. External users should not see
  internal release codenames; the schema reference stands on its
  own with its capture date at the top of the catalog file.
- Fix test docstring path `afv-library/skills/explaining-...`
  -> `afv-library/skills/data-cloud-bdt-expert` (missed in the
  earlier rename commit).

No behavior change. All 92 tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 10:23:41 +05:30
Gaurav Bajpai
0f94d02786
refactor: rename skill to data-cloud-bdt-expert @W-22196528@
Rename skill directory and frontmatter name from
`explaining-batch-data-transform` to `data-cloud-bdt-expert`
per internal PR reviewer feedback. A noun-form name (identifies
the skill by what it's about) is clearer than a gerund-form name
(describes what it does) for user-facing plugin/skill identity.

- skills/explaining-batch-data-transform/ -> skills/data-cloud-bdt-expert/
- SKILL.md frontmatter `name:` updated
- tests docstring path updated

No behavior change. All 92 tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 11:41:17 +05:30
Gaurav Bajpai
67d919947f
fix: address PRizm round-2 review findings from internal port @W-22196528@
Ports the 14 applicable round-2 fixes from the internal PRizm review to the
external afv-library source. (plugin.json finding #13 is internal-only and
does not apply here.)

Accepted fixes:
  1  bdt_analyze.py select_definition: isinstance(index, int) -> type(index) is int
     (reject bool subclass of int).
  2  bdt_analyze.py cmd_formula: precompute upstream fields_produced map to
     eliminate O(consumed x upstream) recomputation.
  3  bdt_analyze.py topo_order: replace sort-on-every-iteration with deque-based
     Kahn (preserves deterministic order).
  4  test_bdt_analyze.py test_all_subcommands_work_on_api_input: wrap loop in
     self.subTest for per-iteration failure reporting.
  5  test_bdt_analyze.py test_invalid_json_raises: register addCleanup BEFORE
     write_text so cleanup runs even if write fails.
  6  SKILL.md: remove misleading "strip __c suffix" field-trace troubleshooting
     advice; replace with source-DMO passthrough guidance.
  7  SKILL.md: rewrite cycle error message to direct user to Data Cloud viewer
     (re-export will not fix a cycle in the BDT definition).
  8  SKILL.md: add explicit --definition N flag documentation and list every
     subcommand that accepts it.
  9  SKILL.md: refine I2 routing guidance — pick the earliest formula/
     computeRelative node, not the output mapping.
  11 bdt-function-catalog.md: clean floor() wording ("always rounds down on the
     number line").
  12 bdt-node-catalog.md: businessType enum — assert list is canonical/complete;
     instruct skill to surface+flag any unknown value.
  14 append_and_split.json: change split subject from fragile
     CustomerFullName__c split-on-space to ChannelOrderKey__c split-on-hyphen;
     avoids name-parsing pitfall (middle names / multi-space).
  15 window_and_aggregate.json: use the computed OrderRank__c via a new
     FIRST_ORDER_AMOUNT formula node (case when rank=1 then amount else 0)
     feeding AGG_BY_ACCOUNT; illustrates the rank+formula+aggregate idiom.
  16 joins_and_filters.json: add explicit IS_NOT_NULL filter expression on
     GrandTotalAmount__c (defense-in-depth beyond GREATER_THAN 0).

Rejected finding (rationale posted as PR comment):
  10 bdt-node-catalog.md split section — reviewer claimed split is a
     pipeline-branching node. Canonical sources (core-262
     SplitParametersInputRepresentation.java + Salesforce help DITA
     c360_a_batch_transform_split.xml) both describe split as a
     string-splitting operation. Current docs are correct; not changing.

Tests: 92/92 passing.
2026-04-24 10:55:18 +05:30
Gaurav Bajpai
db1aca7221
fix: address PRizm review findings from internal port PR @W-22196528@
Addresses 4 critical findings surfaced during PRizm code review of the
internal plugin port of this skill (internal PR #19). Applying the same
fixes here keeps the external canonical source and the internal port in
sync.

1. Test cleanup discipline: switch `test_invalid_json_raises` from
   `try/finally` to `self.addCleanup(p.unlink, missing_ok=True)` — the
   unittest-idiomatic way to guarantee temp-file cleanup regardless of
   how the test exits.

2. `floor()` description in bdt-function-catalog.md: the old row was
   self-contradictory ("toward zero" AND "toward next integer up" in
   the same cell). Replace with a single coherent definition: rounds
   toward negative infinity; for negatives rounds away from zero
   (e.g., `floor(-2.3) = -3`).

3. Split-node documentation in bdt-node-catalog.md: the old doc claimed
   `split` routes rows into downstream branches via `branches[]` with
   per-branch predicates. That is not the canonical schema. Per
   `SplitParametersInputRepresentation` in core-262-public, `split` is
   a string-splitting operation: one `sourceField` + `delimiter` →
   N `targetFields` (one row in, one row out; columns added). Rewrote
   the section with the correct parameters, lineage effect, gotchas,
   and a canonical example. Row-routing belongs in `filter` nodes.

4. Sample `assets/sample_bdts/append_and_split.json`: the old sample
   used the invented `branches[]` shape AND routed the same split into
   two downstream outputs that each expected different rows — which is
   not how `split` works. Rewrote the sample so:
     - `appendV2` unions two order sources (unchanged intent).
     - `split` uses canonical `{sourceField, delimiter, targetFields}`
       splitting `CustomerFullName__c` into first + last name columns.
     - One downstream output consumes the new columns (removes the
       fake two-branch fan-out).

Tests: 92/92 passing. Sample parses and runs through `bdt_analyze.py
summary` cleanly (5 nodes: 2 load + 1 appendV2 + 1 split + 1 outputD360).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 10:19:36 +05:30
Gaurav Bajpai
fc4d14bce0
test(bdt): unit tests + adversarial fixtures @W-22196528@
Adds the full test suite for bdt_analyze.py: 92 unit tests backed by
9 JSON fixtures (4 normative + 5 adversarial). All tests stdlib-only,
runnable via `python3 -m unittest tests.test_bdt_analyze`.

tests/test_bdt_analyze.py coverage:

DAG primitives:
- roots() / sinks() / topo_order() on minimal + branching graphs.
- upstream() / downstream() reachability correctness.
- Cycle tolerance: topo_order + traversals do not infinite-loop or
  raise when the graph contains a cycle; cycle is reported via
  broken_references-adjacent signals.
- Broken-reference tolerance: nodes referencing non-existent upstreams
  are handled gracefully; broken_references() enumerates them.

CLI subcommands (happy-path + error-path for each):
- summary, sources, outputs, stages, nodes, node, lineage,
  field-trace, formula, definitions — each exercised in both
  human-readable and --json modes.
- Exit-code discipline: unknown node -> exit 2, malformed input ->
  exit 3, success -> exit 0.
- Unknown-action graceful degradation: nodes whose action isn't in
  the catalog still appear in summary/nodes output with a generic
  label rather than crashing.
- Output size budgets: default-mode outputs are asserted to stay
  within configured character caps.

Field discovery:
- fields_produced() / fields_consumed() / _scrape_field_refs()
  heuristics tested against both clean and noisy formula bodies.
- TestFieldTraceFocus — narrowing tests preventing false-positive
  substring hits in formula text.

Dual-shape input:
- TestInputShapeDetection — editor export vs. Connect API
  single-definition auto-detection.
- TestMultiDefinition — Connect API multi-definition payload:
  definitions subcommand, --definition N routing, out-of-range
  index error handling.

Fixtures (tests/fixtures/):
- minimal.json               — smallest valid editor-export BDT.
- window_and_aggregate.json  — window + aggregate composition.
- api_input_single.json      — Connect API single-definition payload.
- api_input_multi.json       — Connect API multi-definition payload.

Adversarial fixtures (tests/fixtures/adversarial/):
- cycle.json           — graph with a cycle; parser must not hang.
- broken_ref.json      — node referencing a non-existent upstream.
- unknown_action.json  — node with an action not in the catalog.
- no_ui.json           — BDT missing the UI layer entirely.
- empty_nodes.json     — valid envelope but zero nodes.

Suite status: Ran 92 tests, OK.

@W-22196528@
2026-04-23 23:29:05 +05:30
Gaurav Bajpai
9c47f28221
feat(bdt): reference docs + sample BDTs @W-22196528@
Adds the curated reference library the skill loads on demand, plus
four synthetic sample BDTs used by docs, tests, and LLM-mode demos.

references/ (4 curated Markdown files):
- bdt-reference.md        — top-level BDT JSON anatomy: envelope,
                            nodes, edges, UI layer, definitions,
                            businessType semantics. Cites the core-262
                            upstream JSON schema and Connect API spec.
- bdt-node-catalog.md     — every node type (DMO Source, DMO Sink,
                            Filter, Join, Union, Aggregate, Window,
                            Formula, Split, Append, etc.) with its
                            required/optional fields and typical
                            usage. Audited against core-262 enums.
- bdt-function-catalog.md — the expression-language function surface
                            (string, numeric, date, conditional,
                            aggregate). Grouped by category with
                            signature + one-line semantics.
- bdt-window-functions.md — windowing operators (ROW_NUMBER, RANK,
                            LEAD/LAG, running aggregates) with PARTITION
                            BY / ORDER BY grammar and gotchas.

assets/sample_bdts/ (4 synthetic, dependency-free BDTs):
- minimal_dmo_to_dmo.json   — smallest valid BDT (1 source, 1 sink).
- joins_and_filters.json    — join + filter composition.
- window_and_aggregate.json — window function + aggregate in one graph.
- append_and_split.json     — append-then-split branching topology.

Grounding rules enforced in this commit:
- Every claim in references/ cites an upstream source (core-262 JSON
  schema, Connect API reference, or the Data Cloud BDT editor spec).
  No speculative content.
- No raw DITA or internal-only documentation is shipped; references
  are synthesized from public-facing material.
- BusinessTypeEnum values use the canonical camelCase casing from
  core-262 (case-cleanup fix included here).
- Sample BDTs are original synthetic fixtures, not redacted customer
  data. Each is small enough to read end-to-end.

@W-22196528@
2026-04-23 23:29:05 +05:30
Gaurav Bajpai
9f1603ed2f
feat(bdt): Python parser core + CLI subcommands @W-22196528@
Adds scripts/bdt_analyze.py — a generic, stdlib-only DAG parser and
query CLI for Salesforce Data Cloud BDT JSON. 1,379 lines.

Parser primitives:
- DataTransform.from_path / from_dict — accepts three input shapes:
  editor export ({version, nodes, ui, ...}), Connect API
  single-definition ({name, label, type, definition: {...}}), and
  Connect API multi-definition ({name, definitions: [{name, label,
  type, definition}, ...]}).
- Node dataclass with ui_label / ui_description fallback resolution.
- roots() / sinks() / topo_order() — Kahn's algorithm with
  deterministic tie-break for reproducible output.
- upstream() / downstream() traversal resilient to broken refs and
  cycles (does not infinite-loop on self-edges or cycles).
- broken_references(), fields_produced(), fields_consumed(),
  _scrape_field_refs() heuristics for field-trace discovery.

CLI (argparse, 10 subcommands, each supports --json for machine
output):
- summary      — node counts, source/sink counts, stage totals.
- sources      — list source nodes (no upstream).
- outputs      — list sink nodes (no downstream).
- stages       — topologically ordered stages.
- nodes        — flat node listing with labels.
- node <name>  — per-node detail (action, inputs, outputs, fields,
                 UI label/description).
- lineage <node>       — upstream + downstream chain from a node.
- field-trace <field>  — which nodes produce/consume a given field.
- formula <node>       — extract formulas/expressions from a node.
- definitions          — lists definitions in multi-definition
                         payloads; every other subcommand accepts
                         --definition N (default 0) to route into a
                         specific definition within the payload.

Error contract:
- Exit 0 on success, 2 on unknown node/field, 3 on malformed input.
- BdtInputError (exit 3) and BdtNotFoundError (exit 2) classes
  centralize error handling so the CLI shell stays thin.
- Field-trace narrowing refinements prevent false positives from
  substring matches in formula bodies.
- Upstream/downstream walkers harden against broken refs discovered
  during internal-BDT audit.

Design invariants:
- Python owns truth (parsing, DAG math, field discovery). LLM owns
  narrative (explaining what the structure means to a user).
- No external dependencies — stdlib only: argparse, json, pathlib,
  re, sys, collections, dataclasses, typing.
- Output size budgets: every subcommand caps its default-mode output
  so summaries fit in a single LLM context window; --json dumps
  everything for agents that need raw data.

@W-22196528@
2026-04-23 23:29:05 +05:30
Gaurav Bajpai
9be9667779
feat(bdt): scaffold skill directory + SKILL.md body @W-22196528@
Scaffolds the explaining-batch-data-transform skill directory and delivers
the full, production-grade SKILL.md body. 194 lines.

Directory layout established (skills/explaining-batch-data-transform/):
- SKILL.md                 — the entry point this commit adds
- scripts/                 — parser lands in commit 2
- references/, assets/     — reference docs + samples land in commit 3
- tests/                   — unit tests + fixtures land in commit 4

SKILL.md frontmatter:
- name, description, tier, and owner fields matching the library's CI
  validator schema.
- Description covers the full production surface: "Explain, audit, and
  trace Salesforce Data Cloud Batch Data Transform (BDT) JSON — sources,
  sinks, stages, lineage, field traces, formulas, multi-definition
  payloads, and dual input shapes (editor export + Connect API)."

SKILL.md body (12 sections):
1. When to use this skill
2. Inputs you accept (editor export, Connect API single-definition,
   Connect API multi-definition payloads)
3. Mode A — structural survey (summary / sources / outputs / stages)
4. Mode B — per-node explanation (nodes / node)
5. Mode C — lineage + field trace
6. Mode D — formulas and windows
7. Question routing table (user phrasing -> CLI subcommand)
8. Multi-definition payload handling (--definition flag semantics)
9. Troubleshooting (malformed JSON, unknown node refs, broken upstream)
10. Non-goals as explicit "Do not" directives (no execution, no schema
    inference beyond what the JSON states, no speculation about runtime)
11. References + sample BDTs index
12. Exit-code + error-class contract surfaced from bdt_analyze.py

Structure passes the repo's skill-validator (npm run validate:skills):
single top-level H1, required sections present, frontmatter schema
aligned, no broken internal links.

@W-22196528@
2026-04-23 23:29:04 +05:30
suhanigupta-collab
6f39dd4047
fix: @W-21829588 : Custom Lightning Type Skills Fixes (#191)
* add changes for clt

* add some changes
2026-04-23 12:55:45 +05:30
sowmya-sriram
c8181350b4
fix: @W-22134404@ delete fragment skill (#212)
deleted fragment skill

Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
2026-04-22 16:11:31 +05:30
Shelby Hubick
2d508c8ac0
@W-21965936@ Add applying and validating SLDS skills to afv-library (#187)
* feat: add SLDS applying and auditing quality skills

Two new skills for SLDS v2 compliance:
- applying-slds: guides artifact selection, styling hooks, utilities, icons
- auditing-slds-quality: scored quality audit with linter + static analysis

Made-with: Cursor

* refactor: rename auditing-slds-quality skill to validating-slds

Renames the skill directory and updates all references in
applying-slds/SKILL.md and applying-slds/checklists.md.

Made-with: Cursor

* fix: improve accuracy and add manual review gate across SLDS skills

Correct hook families, badge modifiers, and severity levels; add a
manual review gate to validating-slds so automated grades alone cannot
declare production readiness; make analyze-quality.cjs portable with
explicit --hooks-index flag; remove dead parseYaml code; add version
field to all three skill frontmatters.

Made-with: Cursor

* chore: retrigger CI

Made-with: Cursor

* fix: quote YAML descriptions and improve color hook disambiguation

- Quote description frontmatter in all three skills for valid YAML
  (inner double quotes now escaped)
- Strengthen Step 4 directive: MUST read color-hooks guide before
  choosing a hook — linter suggestions are unranked
- Add surface vs surface-container disambiguation table
- Add accent hook context table and state progression
- Add standalone-component exception for surface classification
- Add modal background example to examples.md
- Remove redundant brand-button example (covered by new context table)

Made-with: Cursor
2026-04-21 14:43:15 +05:30
Scott Mo
73db45cabf
refactor: mv skill to dev branch (#182)
* refactor: mv skill to separate branch

* feat: add fallbacks to sf site create commands (from fiona)

* fix: target config instrx (from karthik)
2026-04-21 14:43:15 +05:30
thrylokya
f56b68d72c
@fix @W-21829074 - Updated skill instructions to wait for the user input (#177)
Some checks failed
Sync React samples from npm / sync (push) Has been cancelled
* Update SKILL description

* Update SKILL.md

* Update SKILL.md

* Update SKILL.md

* Update SKILL.md

---------

Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
2026-04-21 14:17:29 +05:30
sf-pragya-kumari
e089a8688a
fix: @W-21915952@ Update SKILL.md to allow user to make changes in the generated flow (#189)
Update SKILL.md to allow user to make changes in created flow to fix issues
2026-04-21 11:57:05 +05:30
Steve Hetzel
fb4bac9cf0
feat: replace agentforce-development skill with three specialized skills @W-21937872@ (#184)
feat: replace agentforce-development skill with three specialized skills

Replace the monolithic agentforce-development skill with three focused skills:
- developing-agentforce: For creating and authoring Agentforce agents
- observing-agentforce: For monitoring and debugging agents
- testing-agentforce: For validating agent behavior

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-09 17:04:48 +05:30
Joe
b0d71df452
fix: @W-21889983@ Disallow Modifying React Site Metadata Except for Templated Properties (#185)
fix: remove extra property changes

Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
2026-04-09 00:25:10 +05:30
k-j-kim
1806c89b28
fix: trigger ui-bundle skill for React app prompts @W-21916680@ (#175)
* fix: trigger ui-bundle skill for React application prompts

Add React-specific trigger language to building-ui-bundle-app description
so prompts like "I want to build a react application" activate the
ui-bundle orchestrator even without existing project files.

* fix: correct stale related-skill reference

Rename generating-experience-react-site to generating-ui-bundle-site
in building-ui-bundle-app related-skills to match the actual skill name.
2026-04-07 09:34:42 +05:30
Scott Mo
ae5008de56
refactor: do not expose lwr skill to main (#174) 2026-04-06 22:02:25 +05:30
k-j-kim
77108bae20
fix: tighten ui-bundle skill descriptions to reduce false triggers @W-21800526@ (#162)
* fix: tighten skill descriptions to reduce false triggers

- generating-ui-bundle-metadata: remove generic triggers (metadata, new app,
  meta XML, configuration), update command to sf template generate ui-bundle,
  add --template reactbasic flag
- building-ui-bundle-app: reframe as orchestrator for multi-skill ui-bundle
  work, distinguish from generating-lightning-app

* fix: improve ui-bundle skill descriptions to reduce false triggers and improve activation

- Add MUST activate + file-pattern triggers to all 9 ui-bundle skills
- Remove overly specific examples that waste context tokens
- Scope features skill to authentication and search only
- Add boundary language between orchestrator and frontend skills
- Update metadata skill to use sf template generate ui-bundle --template reactbasic

* fix: standardize uiBundles/*/src/ directory trigger across all ui-bundle skills

* fix: remove React references from skill descriptions for framework agnosticism

* fix: standardize uiBundles/*/src/ trigger in agentforce and data skills

* fix: add 'Use this skill when' trigger context to all ui-bundle skill descriptions

* fix: require mobile-responsive UI in building-ui-bundle-frontend skill
2026-04-03 09:22:32 +05:30
Jose David Rodriguez Velasco
4ad796346e
fix: condense using-ui-bundle-salesforce-data reference into skill.md @W-21685788 (#161)
* fix(using-ui-bundle-salesforce-data): condense reference into skill

also adds, operation types, script section type and mix instructions as comments in the examples. it also adds a section to avoid the llm being eager to show progress on ui-scaffold

* fix: workaround llm being eager to scaffold ui

* fix: delete testing with sf cli

* fix: add summary table for workflow steps

---------

Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
2026-04-02 22:41:51 +05:30
thrylokya
0a32bc1a53
@fix: @W-21869136 - updated skill description (#168)
* Update SKILL description

* Update SKILL.md

* Update SKILL.md
2026-04-02 19:53:14 +05:30
anuj-sanghavi
d25b24ab86
@W-21866267 fix: ACC skills file updated (#159)
* fix: ACC skills file updated

* hard constraint added for not creating custom agent

* skill description updated
2026-04-02 16:20:54 +05:30
lei-dai-sfdc
7d9fc28b4e
@W-21817314@ Improved lwr and ui bundle site's skill to identify what properties should be updated for when user request for site URL update (#157)
* @W-21817314@ Improved lwr and ui bundle site's skill to identify what properties should be updated for when user request for site URL update

Signed-off-by: Daily Dai <lei.dai@salesforce.com>

* fix skill name

Signed-off-by: Daily Dai <lei.dai@salesforce.com>

* fix skill name

Signed-off-by: Daily Dai <lei.dai@salesforce.com>

* move url update into its own doc md file

Signed-off-by: Daily Dai <lei.dai@salesforce.com>

* clarify search_files is an agent tool instead of command line

Signed-off-by: Daily Dai <lei.dai@salesforce.com>

---------

Signed-off-by: Daily Dai <lei.dai@salesforce.com>
2026-04-02 08:58:57 +05:30
jluftglidden-tilt
8dc6e7d04d
@W-21818163 T/experience sites platform/w 21818163/leave app space blank if web app does not exist (#167)
* Update content.json generation to leave appSpace empty if webapp doesn't exist

* Replace WebApplication with UIBundle
2026-04-02 08:30:01 +05:30
jluftglidden-tilt
ea110c0e4a
@W-21712998 T/experience sites platform/w 21712998/rename sites react skill (#142)
* Moving SKILL.md to generating-ui-bundle-site

* Rename configure-metadata-custom-site.md to configure-metadata-custom-site.md

* Rename configure-metadata-digital-experience-bundle.md to configure-metadata-digital-experience-bundle.md

* Moving configure-metadata-digital-experience-config.md to generating-ui-bundle-site

* Moving configure-metadata-digital-experience.md to generating-ui-bundle-site

* Moving configure-metadata-network.md to generating-ui-bundle-site
2026-04-01 09:04:39 +05:30
k-j-kim
2d9a093f9c
fix: replace deprecated sf ui-bundle generate CLI command @W-21338965@ (#155)
fix: replace deprecated sf ui-bundle generate with sf template generate ui-bundle
2026-03-31 17:58:54 -05:00
k-j-kim
30245915c2
fix: derive router basename from base href at runtime @W-21338965@ (#154)
fix: derive router basename from <base href> at runtime

Add guidance to building-ui-bundle-frontend skill to always derive
the client-side router basename from the document's <base href> tag
instead of hardcoding it.
2026-03-31 13:48:10 -05:00
Sheng-Lun Chen
878ee497c4
fix: ensure skill load for guest sharing rule (#127)
fix(generating-experience-lwr-site): ensure skill load for guest sharing rule

Made-with: Cursor

Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
2026-03-31 22:29:31 +05:30
fcwong
902c8d4539
@W-21749060 fix: update first time site creation instructions (#117)
* @W-21749060 fix: update first time site creation instructions

* address comments

---------

Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
2026-03-31 22:24:35 +05:30
irisli0
a07f23abbd
W-21660521 feat: Agentforce Vibes - Unable to assign agent access in permission set (#145)
generating-permission-set agent access
2026-03-31 22:21:02 +05:30
Jeff Carey
30052ef628
feat: update theme layout creation instructions (#122)
* feat: update theme layout creation instructions

* fix: revert UI component section

* feat: specify order of operations for theme layout creation

---------

Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
2026-03-31 22:18:03 +05:30
Kenam
e850eb1a25
W-21831072: Add skill: uplifting-components-to-slds2 (#152)
Add skill: uplifting components to slds2

Made-with: Cursor
2026-03-31 21:03:28 +05:30
gbockus-sf
7c4688d5b8
@W-21788755 feat: Apex trigger skills UPDATE (#150) 2026-03-31 12:55:08 +05:30
k-j-kim
54a675c838
fix: adding building-ui-bundle-app orchestration skill @W-21338965@ (#138)
* Add building-ui-bundle-app orchestration skill

New orchestration skill that coordinates all UI bundle skills in proper
dependency order to build complete React applications on Salesforce.

Follows the generating-lightning-app pattern with explicit skill load
calls for each phase: scaffolding → features → data access → UI →
integrations → deployment → experience site.

* Clean up building-ui-bundle-app skill @W-21338965@

- Remove Skill Registry section (redundant with Dependency Graph + Execution Workflow)
- Remove "Skill to load" lines from Dependency Graph phases (duplicated in per-phase execution steps)
- Remove Best Practices 2 & 3 (duplicated in Execution Workflow and Phase 2 description)
- Fix SKILL LOAD ORDER numbering: flat 1-8 → 5a/5b to match phase numbering in Dependency Graph
- Clarify GraphQL schema re-fetch in Phase 6 is a post-deployment remote schema fetch
- Add parallel execution guidance to Phase 5 execution block

* Make Phase 2 (Features) optional @W-21338965@

* Address review feedback: use non-LWC terminology instead of React-specific

Co-authored-by: dme722

* Fix building-ui-bundle-app skill: remove special chars, align with actual skills

- Replace non-ASCII characters (arrows, circled numbers, checkmarks, em dashes)
  that cause silent failures in Cline
- Fix incorrect skill name generating-ui-bundle-ui -> building-ui-bundle-frontend
- Align phase diagrams with actual skill workflows (add missing steps for
  scaffolding npm install, features search-first flow, data validation step,
  deployment final build and full post-deploy config)
- Fix Phase 4 diagram to match building-ui-bundle-frontend task categories

Made-with: Cursor
2026-03-31 09:04:16 +05:30
thrylokya
8c0c4056c5
@W-21812213 - Update SKILL description to exclude brand search and also include CMS keywords to have more relevant search (#134)
Update SKILL description
2026-03-31 08:57:44 +05:30
k-j-kim
c611126c2f
Rename webapplication skills to ui-bundle @W-21338965@ (#136)
* Rename webapplication skills to ui-bundle

Rename all 7 webapplication skill directories and their content to use
the "ui-bundle" / "UIBundle" naming convention, aligning with the
New++ (TDX) naming strategy.

Directory renames:
- deploying-webapplication → deploying-ui-bundle
- generating-webapplication-{features,metadata,ui} → generating-ui-bundle-*
- implementing-webapplication-{agentforce-conversation-client,file-upload} → implementing-ui-bundle-*
- using-webapplication-salesforce-data → using-ui-bundle-salesforce-data

Content updates across all skills:
- Frontmatter name fields
- Prose: "web application" → "UI bundle"
- Metadata refs: WebApplication → UIBundle, webapplications/ → uiBundles/
- CLI: sf webapp → sf ui-bundle
- NPM packages per rename table
- Cross-skill references and generating-experience-react-site refs

* Rename generating-ui-bundle-ui skill to building-ui-bundle-frontend

The "ui-bundle-ui" name was confusing. "building-ui-bundle-frontend"
better conveys that this skill handles the React frontend layer
within a UI bundle.

---------

Co-authored-by: gbockus-sf <76090802+gbockus-sf@users.noreply.github.com>
2026-03-30 15:17:38 -05:00
avaid-sfdc
907e5bc505
@W-21715179 Replace get_metadata_api_context with more granular MCP tools (#123)
* Replace get_metadata_api_context with more granular MCP tools

* Address review comments
2026-03-30 22:46:25 +05:30
k-j-kim
a779945206
Rename webapp/webapplication to UI bundle in skills (#129)
* Split generating-webapp-metadata into single-purpose skills

Extract the deployment sequence into a new deploying-webapp skill so each
webapp skill describes exactly one actionable goal. This improves agent
skill selection accuracy by eliminating multi-concern descriptions.

- generating-webapp-metadata: now focused on scaffolding, bundle config, CSP
- deploying-webapp: new skill for the 7-step deployment sequence

* Rename -webapp- skill directories and references to -webapplication-

Rename all 7 webapp skill directories to use the full "webapplication"
entity name. Update frontmatter name fields, cross-skill references,
and descriptive prose. Package names and CLI commands are preserved
as-is since those are actual identifiers.
2026-03-30 11:49:19 -05:00
jluftglidden-tilt
5a52a8a6ec
@W-21467732 Update siteUrlPathPrefix property to all lowercase (#116)
Update siteUrlPathPrefix property to all lowercase
2026-03-30 21:57:11 +05:30
Ethan Clapham
8cf130e726
@W-21783760 Update instructions to ensure templates plugin is installed (#124)
Co-authored-by: Hemant Singh Bisht <hsinghbisht@salesforce.com>
2026-03-30 19:36:21 +05:30