Loading...
Loading...
Use this skill when users need to create Custom Lightning Types (CLTs) for Einstein Agent actions or structured input/output schemas. Trigger when users mention CLT, Custom Lightning Types, JSON schemas for agents, type definitions, lightning__objectType, or editor/renderer configurations. This is complex - always use this skill for CLT work.
npx skill4agent add forcedotcom/afv-library generating-custom-lightning-typelightning:type@apexClassType/..."type": "object""title""lightning:type": "lightning__objectType""unevaluatedProperties": false"unevaluatedProperties"falsetrue"examples""unevaluatedProperties": falseproperties"lightning:type": "lightning__objectType"typepropertiesrequiredunevaluatedPropertiesitemsitemsproperties"lightning:type": "lightning__listType""items""type": "array""type": "array""lightning:type": "lightning__listType""items""unevaluatedProperties": falsetitledescriptionlightning:type@apexClassType/...typepropertiesrequiredunevaluatedPropertiessfdc_cmslightning:typelightning__objectTypelightning__textTypelightning__multilineTextTypelightning__richTextTypelightning__urlTypelightning:allowedUrlSchemeshttpshttprelativemailtotellightning__dateTypelightning__timeTypelightning__dateTimeTypedateTimetimeZonelightning__numberTypemaximumminimummultipleOflightning__integerTypemaximumminimumlightning__booleanTypeunevaluatedProperties: falsetitledescriptioneinstein:descriptiontypelightning:typelightning:typemaximumminimummultipleOfmaxLengthminLengthconstenumlightning:textIndexedlightning:supportsPersonalizationlightning:localizablelightning:uiOptionslightning:allowedUrlSchemeslightning:tagsflow@apexClassType/namespace__ClassName$InnerClassschema.jsonpropertieslightning:typelightning:typeitemslightning:typeeditor.jsoneditoreditor.componentOverrideseditor.layouteditoreditor.componentOverrideseditor.layoutpropertyRenderersviewcomponentOverrideslayouteditor.componentOverrides["$"] = { "definition": "c/<yourEditorComponent>", "attributes": { ... } }{!$attrs.<name>}"attributes": { "myField": "{!$attrs.value}" }<name>{!$attrs.<name>}temperature{!$attrs.temperature}{!$attrs.value}valueeditor.componentOverrides["<propertyName>"] = { "definition": "es_property_editors/<...>" }es_property_editors/inputTextes_property_editors/inputNumberes_property_editors/inputRichTextes_property_editors/inputImagees_property_editors/inputTextareaes_property_editors/inputListlightning__listTypecollection.editor.componentOverrides["$"] = { "definition": "c/<yourCollectionEditorComponent>" }editor.layoutlightning/propertyLayoutattributes.property = "<listPropertyName>"editor.layout.definition = "lightning/verticalLayout"editor.layout.children[*].definition = "lightning/propertyLayout"attributes.property = "<propertyName>"lightning/propertyLayoutpropertylabeltitleadditionalProperties: falsees_property_editors/inputListitemSchemarenderer.jsonrendererrenderer.componentOverridesrenderer.layoutrendererrenderer.componentOverridesrenderer.layoutpropertyRenderersviewcomponentOverrideslayoutrenderer.componentOverrides["$"] = { "definition": "c/<yourRendererComponent>", "attributes": { ... } }{!$attrs.<name>}{!$attrs.propertyName}renderer.componentOverrides["<propertyName>"] = { "definition": "es_property_editors/outputText" | "es_property_editors/outputNumber" | "es_property_editors/outputImage" | ... }es_property_editors/outputTextes_property_editors/outputNumberes_property_editors/outputImagerenderer.layout.definition = "lightning/verticalLayout"renderer.layout.children[*].definition = "lightning/propertyLayout"attributes.property = "<propertyName>"lightning/propertyLayoutpropertylabeltitlelightning__listTypecollection.renderer.componentOverrides["$"] = { "definition": "c/<yourListRendererComponent>" }es_property_editors/genericListTypeRendererlightningTypes/<TypeName>/schema.jsonlightningTypes/<TypeName>/lightningDesktopGenAi/editor.jsonlightningTypes/<TypeName>/lightningDesktopGenAi/renderer.jsonlightningDesktopGenAi/experienceBuilder/lightningMobileGenAi/enhancedWebChat/-meta.xmlc/<componentName>editor.json-meta.xml<target>lightning__AgentforceInput</target>c/<componentName>renderer.json-meta.xml<target>lightning__AgentforceOutput</target>Invalid target configuration. To use 'c/componentName' as a renderer/editor, your js-meta.xml file must include valid target 'lightning__AgentforceOutput/Input'.-meta.xml<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>60.0</apiVersion>
<isExposed>true</isExposed>
<targets>
<target>lightning__AgentforceOutput</target>
</targets>
</LightningComponentBundle>examplesitemslightning:type| Error / Symptom | Likely Cause | Fix |
|---|---|---|
| Schema validation fails due to unknown keyword | | Remove the offending keyword; keep schema minimal |
| Nested object validation failure | Nested object includes | Remove |
| Array property rejected | Use of | For nested arrays: keep only |
| Apex-based CLT rejected | Extra fields added (e.g., | Use only |
| Editor config rejected | Use of invalid patterns ( | Use |
| Adding | Only use |
| Invalid target configuration for custom LWC | Custom LWC component's | Add correct target to LWC's |
| Attribute mapping doesn't exist in type schema | Using | Ensure all attribute mappings reference actual properties in your type schema's |
| Using | Replace deprecated |
| Type mismatch in component attributes | Passing wrong type for component attribute (e.g., integer instead of string) | Ensure attribute values match the expected type defined by the component |
type: "object"titlelightning:type: "lightning__objectType"unevaluatedProperties: falseexampleslightning:type: "lightning__objectType"lightning:typetitledescriptionlightning:type: "@apexClassType/..."es_property_editors/inputListitemSchemaes_property_editors/inputTextes_property_editors/inputNumberc/es_property_editors/outputTextes_property_editors/outputNumberlightning/propertyLayoutpropertylabeltitle{!$attrs.propertyName}-meta.xmllightning__AgentforceInputlightning__AgentforceOutput