Individual skill
experience-cms-content-render
Renders, embeds, or displays existing Salesforce CMS content in a React or Angular uiBundle app: installs the CMS toolkit, registers a typed reference, generates a framework-matched renderer from the live schema, and wires the render path (delivery API, contentKey, RichText, image resolution). Prefer over general UI-bundle skills like experience-ui-bundle-frontend-generate (page/layout shell only) for the CMS-rendering part, even under src/. Triggers on prompts like 'render the CMS article on the home page', 'embed this CMS blog post here', 'show the CMS video in the hero', 'display the CMS image in the banner', or 'add this CMS content block to the detail page'; for mixed prompts, activate for the CMS part only. Do not trigger for searching a CMS item or defining a new CMS content type/schema (use experience-cms-content-type-generate).
plugins/builder/experience-cms/skills/experience-cms-content-render/SKILL.md
Source commit a8a18ce1e4ba12e69b4073eab98ce31bfbd8271e
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 4, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,151
- Repository last updated
- Nov 6, 2026
- License
- Apache-2.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- design Derived category
- writing Derived category
- engineering Derived category
- design-interface Derived category
- engineering-web Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 25,470 bytesSKILL.mdcore · 25,470 bytesassets/angular/DetailPage.component.tsruns · 902 bytesassets/angular/MediaRenderer.component.tsruns · 6,970 bytesassets/angular/TypeList.component.tsruns · 1,625 bytesassets/angular/TypeRenderer.component.tsruns · 3,718 bytesassets/angular/cms-content.component.tsruns · 9,783 bytesassets/angular/cms-item.service.tsruns · 4,220 bytesassets/react/DetailPage.tsxruns · 725 bytesassets/react/MediaRenderer.tsxruns · 6,270 bytesassets/react/TypeList.tsxruns · 1,471 bytesassets/react/TypeRenderer.tsxruns · 2,416 bytesassets/react/heuristicRenderer.tsxruns · 10,757 bytesassets/react/useCmsItem.tsruns · 5,146 bytesassets/shared/cmsContentType.tsruns · 1,962 bytesassets/shared/cmsCore.types.tsruns · 5,028 bytesassets/shared/externalRefs.tsruns · 2,651 bytesassets/shared/mediaLabels.tsruns · 2,489 bytesreferences/bulk-loading.mddoc · 2,883 bytesreferences/codegen-guardrails.mddoc · 6,848 bytesreferences/detail-pages.mddoc · 3,793 bytesreferences/embed-recipes.mddoc · 7,040 bytesreferences/failure-modes.mddoc · 11,183 bytesreferences/heuristic-render-rules.mddoc · 7,186 bytesreferences/init-scaffold.mddoc · 7,635 bytesreferences/interaction-model.mddoc · 10,983 bytesreferences/package-api.mddoc · 7,788 bytesreferences/schema-sync.mddoc · 6,003 bytesreferences/styling-scopes.mddoc · 3,294 bytesreferences/verify.mddoc · 2,861 bytes
Read excerpt
This skill directs *how* to render CMS content into a uiBundle app; it does NOT re-implement the delivery transport. The npm package **`@salesforce/ui-bundle-template-feature-cms-toolkit`** owns HTTP, envelope-unwrap, catalog key-remap, channel resolution, image-URL resolution, entity decoding and other utilities. The skill installs that package, then generates the thin framework-specific layer around it (typed refs, per-type renderers, fetch lifecycle, placement) for React and Angular uiBundle apps, inferring Init vs Embed from file state and never scaffolding Init inside an Embed prompt without telling the user.
## API-only package — the skill writes the UI
The toolkit exports functions and types only: no components, no hooks. Import target and full signatures: `references/package-api.md`. The three reads (all take `<TBody>` + `options?`, all throw on failure):
- `getCmsContentByUrl` — public CDN, unauthenticated; the pasted `unauthenticatedUrl` fetched AS-IS.
- `getCmsContentByKey` — one item, authenticated Connect; the toolkit remaps source→target key and resolves the channel.
- `getCmsContentByKeys` — many, ONE authenticated round-trip, best-effort per-key (`references/bulk-loading.md`).
Plus sync helpers `resolveCmsImageUrl`, `resolveMediaUrl`, `decodeRichHtmlEntities` and the typed error classes. Every read returns the already-UNWRAPPED `contentBody` with the envelope `title` lifted in; skill code only types `TBody` and never handles the envelope, `{ items: [...] }`, or a `.value` wrapper.
## Bundled files (assets & references load with this skill)