SDF Custom Skill XML Definitions and Validation
Define SDF custom skills with agentskill XML, SKILL.md content, project-specific folders, and deployment validation.
SDF custom skills pair an agentskill XML definition with a content folder containing SKILL.md. During SuiteCloud project deployment, validation checks the folder, required file, matching XML and front-matter metadata, and skill instructions. Folder locations differ between SuiteApp projects and account customization projects, so the skillfolder reference must follow the project type.
How Is an SDF Custom Skill Structured?
An SDF custom skill has two related components:
- An
agentskillXML definition. - A skill content folder containing
SKILL.md.
The XML definition connects to the content through the <skillfolder> element. The referenced folder and its files must exist in the SuiteCloud project when the project is validated and deployed.
For related local setup, review SuiteCloud CLI installation for NetSuite 2026.2.
Which XML Items Define a Custom Skill?
| XML Item | Description |
|---|---|
scriptid attribute | Identifies the agentskill SDF custom object. |
<name> | Specifies the skill name. It must exactly match the name value in the SKILL.md front matter, including capitalization. |
<description> | Specifies the skill description. It must exactly match the description value in the SKILL.md front matter, including capitalization. |
<skillfolder> | Specifies the File Cabinet folder containing SKILL.md. |
<isinactive> | Indicates whether the skill is inactive. Use F for an active skill. |
<ispublic> | Indicates whether the skill is public and available for other users to invoke. Only users with the Administrator role can set this value to T. |
The exact-match requirement applies to both the <name> and <description> values. Capitalization must match the corresponding SKILL.md front-matter values.
Where Does Skill Content Belong?
The skill content location and <skillfolder> reference depend on the SuiteCloud project type.
| Project Type | Skill Content Location | <skillfolder> Reference |
|---|---|---|
| SuiteApp project | The SuiteApp directory | [/SuiteApps/<application_id>/<skill_folder>/] |
| Account customization project (ACP) | The Skills directory at the File Cabinet root | [/Skills/<skill_folder>/] |
The skill content folder must include a file named SKILL.md. That file must contain a nonempty Markdown instruction body for the skill.
What Does Deployment Validate?
During SuiteCloud project deployment, the skill is validated for the following:
- The
<skillfolder>reference identifies an existing folder in the project. - The folder contains
SKILL.md. - The XML
<name>and<description>values exactly match the correspondingSKILL.mdfront-matter values. - The
SKILL.mdfile contains the skill instructions.
A folder reference, the required Markdown file, and the matching front-matter values must therefore be present together in the project at validation and deployment time. For broader workflow guidance, see SuiteCloud Developer Assistant best practices.
What Does an Active Skill Definition Look Like?
This SuiteApp example defines an active custom skill:
1<agentskill scriptid="customskill_simple_test_skill">2 <name>simple-test-skill</name>3 <description>Tiny deterministic test skill for confirming skill discovery and invocation.</description>4 <skillfolder>[/SuiteApps/com.netsuite.sdfskills/simple-test-skill/]</skillfolder>5 <isinactive>F</isinactive>6 <ispublic>F</ispublic>7</agentskill>In this example, <isinactive>F</isinactive> marks the skill as active, while <ispublic>F</ispublic> does not mark it as public.
Who This Affects
- SuiteCloud developers working with custom skills: The project must include both the
agentskillXML definition and the referenced skill content folder withSKILL.md. - Administrators: Only users with the Administrator role can set
<ispublic>toT. - SuiteApp teams: Skill content belongs in the SuiteApp directory and uses the SuiteApp-style folder reference.
- ACP teams: Skill content belongs in the File Cabinet root
Skillsdirectory and uses the ACP-style folder reference.
Key Takeaways
- Each SDF custom skill consists of an
agentskillXML definition and a skill content folder containingSKILL.md. - XML
nameanddescriptionvalues must exactly match the correspondingSKILL.mdfront matter, including capitalization. - SuiteApp projects and ACPs use different skill content locations and
<skillfolder>references. - Deployment validates the referenced folder, the required
SKILL.mdfile, matching metadata, and skill instructions. - Only users with the Administrator role can set a skill’s
<ispublic>value toT.
Frequently Asked Questions (4)
Which XML elements must exactly match the SKILL.md front-matter values during deployment?
How should the <skillfolder> reference be formatted for SuiteApp projects versus account customization projects (ACP)?
What does SuiteCloud project deployment validate for an SDF custom skill?
Who can set a skill’s <ispublic> value to T?
Weekly Update History (1)
Added Skills as XML Definitions, which describes how to define and deploy a custom skill using SuiteCloud Development Framework (SDF).
View Oracle DocsWas this article helpful?
More in SuiteCloud Development Framework
- Enhancements to Custom Tool Scripts in NetSuite 2026.1
NetSuite 2026.1 improves custom tool scripts with execution logs, management page, and binary file support. TL;DR Opening
- SuiteCloud Extension for Visual Studio Code in NetSuite 2024.2
The article now includes updates from NetSuite 2026.2 for the SuiteCloud Extension for Visual Studio Code. SuiteCloud Extension for Visual Studio Code
- SuiteCloud CLI for Node.js: New Features in NetSuite 2026.1
Explore new features in SuiteCloud CLI for Node.js for streamlined development in NetSuite 2026.1.
- SuiteCloud CLI for Node.js Features in NetSuite 2026.1
The SuiteCloud CLI for Node.js offers interactive tools that enhance development in NetSuite, ensuring an efficient workflow.
Also from NetSuite 2026.2
- System Notes Enhancement for Reconciliation in NetSuite 2026.2
System notes enhancement tracks GL transaction events in NetSuite 2026.2, improving reconciliation auditing and review.
- Bank Matching and Reconciliation Enhancements in NetSuite 2026.2
Bank matching and reconciliation pages in NetSuite 2026.2 receive critical UI enhancements for improved transaction management.
- OAuth 2.0 Migration Required for NetSuite 2026.2 Authentication
NetSuite 2026.2 requires migration to OAuth 2.0 as NLAuth support ends in 2027.1. Switch to enhance integration security.
- Start Order Fulfillment from Sales Order Lists in NetSuite 2026.2
Start order fulfillment directly from sales order lists in NetSuite 2026.2, streamlining the process and reducing navigation steps.
Advertising
Reach SuiteCloud Development Framework Professionals
Put your product in front of NetSuite experts who work with SuiteCloud Development Framework every day.
Sponsor This Category