Update skills for custom objects and fields (#33)

Update skills for custom objects and field
This commit is contained in:
h-kapoor-sfdc 2026-03-12 19:39:47 +05:30 committed by GitHub
parent 396c0c0d41
commit 95be7a36fb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 6 deletions

View File

@ -42,6 +42,10 @@ Every generated field must include these tags:
| `<description>` | Mandatory | State the business "why" behind the field | | `<description>` | Mandatory | State the business "why" behind the field |
| `<inlineHelpText>` | Mandatory | Provide actionable guidance for the end-user. Must add value beyond the label (e.g., "Enter the value in USD including tax" instead of just "The amount") | | `<inlineHelpText>` | Mandatory | Provide actionable guidance for the end-user. Must add value beyond the label (e.g., "Enter the value in USD including tax" instead of just "The amount") |
### XML Comments — NEVER Before Root Element
**NEVER place XML comments (`<!-- ... -->`) before the root `<CustomField>` element in metadata XML files.** Comments between the XML declaration and `<CustomField>` cause a `ConversionError` during deployment. Comments inside the root element are safe.
### External ID Configuration ### External ID Configuration
**Trigger:** If the user mentions "integration," "importing data," "external system ID," or "unique key from [System Name]," set `<externalId>true</externalId>`. **Trigger:** If the user mentions "integration," "importing data," "external system ID," or "unique key from [System Name]," set `<externalId>true</externalId>`.
@ -440,6 +444,7 @@ Formula fields that reference other fields will fail deployment if the reference
| Error Message | Cause | Fix | | Error Message | Cause | Fix |
|---------------|-------|-----| |---------------|-------|-----|
| `ConversionError: Invalid XML tags or unable to find matching parent xml file for CustomField` | XML comments placed before the root `<CustomField>` element | Remove XML comments (`<!-- ... -->`) that appear before `<CustomField>` in the `.field-meta.xml` file |
| `Field [FieldName] does not exist. Check spelling.` | Referenced field does not exist or has not been deployed yet | Verify the referenced field exists and is deployed before this field | | `Field [FieldName] does not exist. Check spelling.` | Referenced field does not exist or has not been deployed yet | Verify the referenced field exists and is deployed before this field |
| `DUPLICATE_DEVELOPER_NAME` | Field fullName already exists on the object | Use a unique business-driven name | | `DUPLICATE_DEVELOPER_NAME` | Field fullName already exists on the object | Use a unique business-driven name |
| `MAX_RELATIONSHIPS_EXCEEDED` | More than 2 Master-Detail or 15 Lookup fields on the object | Use Lookup for 3rd+ Master-Detail; review Lookup count | | `MAX_RELATIONSHIPS_EXCEEDED` | More than 2 Master-Detail or 15 Lookup fields on the object | Use Lookup for 3rd+ Master-Detail; review Lookup count |
@ -455,6 +460,7 @@ Before generating CustomField XML, verify:
- [ ] Does `<fullName>` use valid format and end in `__c`? - [ ] Does `<fullName>` use valid format and end in `__c`?
- [ ] Are `<description>` and `<inlineHelpText>` both populated and meaningful? - [ ] Are `<description>` and `<inlineHelpText>` both populated and meaningful?
- [ ] Is `<label>` in Title Case? - [ ] Is `<label>` in Title Case?
- [ ] Are there no XML comments (`<!-- ... -->`) before the root `<CustomField>` element? (Comments before the root element break SDR's parser)
### Master-Detail Field Checks ⭐ CRITICAL ### Master-Detail Field Checks ⭐ CRITICAL
- [ ] Is `<required>` attribute ABSENT? (Master-Detail is always required) - [ ] Is `<required>` attribute ABSENT? (Master-Detail is always required)
@ -496,4 +502,4 @@ Before generating CustomField XML, verify:
### Naming Checks ### Naming Checks
- [ ] Is the API name free of reserved words (`Order`, `Group`, `Select`, etc.)? - [ ] Is the API name free of reserved words (`Order`, `Group`, `Select`, etc.)?
- [ ] Is the API name unique on this object? - [ ] Is the API name unique on this object?

View File

@ -16,7 +16,9 @@ Use this skill when you need to:
## 1. Overview and Purpose ## 1. Overview and Purpose
This document defines the mandatory constraints for generating CustomObject metadata XML (`.object` file). The agent must verify these constraints before outputting XML to prevent Metadata API deployment errors. This document defines the mandatory constraints for generating CustomObject metadata XML (`.object-meta.xml` file). The agent must verify these constraints before outputting XML to prevent Metadata API deployment errors.
**File extension:** `.object-meta.xml`
--- ---
@ -24,7 +26,7 @@ This document defines the mandatory constraints for generating CustomObject meta
The following constraints must be true for the XML body to deploy successfully. The following constraints must be true for the XML body to deploy successfully.
**Note:** The API Name (fullName) is NOT a tag; it is the filename (e.g., `Vehicle__c.object`). **Note:** The API Name (fullName) is NOT a tag; it is the filename (e.g., `Vehicle__c.object-meta.xml`).
### Required Elements ### Required Elements
@ -145,7 +147,7 @@ Do not create more than **2 Master-Detail relationships** for a single object. I
### XML Root Element ### XML Root Element
Do NOT include the `<fullName>` tag at the root of the `.object` XML file. The API name is derived from the filename. Do NOT include the `<fullName>` tag at the root of the `.object-meta.xml` file. The API name is derived from the filename.
**❌ INCORRECT:** **❌ INCORRECT:**
```xml ```xml
@ -159,7 +161,7 @@ Do NOT include the `<fullName>` tag at the root of the `.object` XML file. The A
```xml ```xml
<CustomObject xmlns="http://soap.sforce.com/2006/04/metadata"> <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
<label>Vehicle</label> <label>Vehicle</label>
<!-- fullName comes from filename: Vehicle__c.object --> <!-- fullName comes from filename: Vehicle__c.object-meta.xml -->
</CustomObject> </CustomObject>
``` ```
@ -233,4 +235,4 @@ Before generating the Custom Object XML, verify:
### Architectural Checks ### Architectural Checks
- [ ] Is `<description>` present with a meaningful summary? - [ ] Is `<description>` present with a meaningful summary?
- [ ] Are `<enableSearch>` and `<enableReports>` set to `true` if user-facing? - [ ] Are `<enableSearch>` and `<enableReports>` set to `true` if user-facing?
- [ ] Does the filename match the intended API name? - [ ] Does the filename match the intended API name?