SuiteCloud Platform
NetSuite 2026.2
2026-08-25

SDF Gets a New Custom Object Type: agentskill for AI Skill Deployment

SDF now supports an agentskill custom object that pairs an XML definition with a SKILL.md file to define, validate, and deploy custom AI skills through SuiteCloud projects.

Affects:SuiteCloud Development Framework (SDF)SuiteApp ProjectsAccount Customization Projects (ACP)File Cabinet

What changed

A new SDF custom object type, agentskill, lets you define and deploy custom AI skills entirely through SuiteCloud projects. Each skill is a pair of artifacts:

  1. An agentskill XML definition (the metadata record).
  2. A File Cabinet folder containing a SKILL.md file (the skill's Markdown instructions/prompt body).

XML schema

The XML definition uses these elements:

  • scriptid (attribute) — unique identifier for the custom object, e.g. customskill_simple_test_skill.
  • <name> — skill name. Must exactly match (case-sensitive) the name value in the SKILL.md front matter.
  • <description> — skill description. Must exactly match the description in the SKILL.md front matter.
  • <skillfolder> — File Cabinet path to the folder holding SKILL.md.
  • <isinactive>F for active, T for inactive.
  • <ispublic>T makes the skill invocable by other users. Only the Administrator role can set this to T.

Folder conventions by project type

  • SuiteApp project — skill content lives under /SuiteApps/<application_id>/<skill_folder>/.
  • Account Customization Project (ACP) — skill content lives under /Skills/<skill_folder>/ at the File Cabinet root.

Deployment validation

SDF validates the following during project deployment:

  • The skillfolder path resolves to an existing folder in the project.
  • That folder contains a non-empty SKILL.md file.
  • The name and description values in the XML definition match the corresponding SKILL.md front-matter values exactly (case-sensitive).

Deployment will fail if any of these checks do not pass.

Example

A minimal SuiteApp-based skill definition:

<agentskill scriptid="customskill_simple_test_skill">
  <name>simple-test-skill</name>
  <description>Tiny deterministic test skill for confirming skill discovery and invocation.</description>
  <skillfolder>[/SuiteApps/com.netsuite.sdfskills/simple-test-skill/]</skillfolder>
  <isinactive>F</isinactive>
  <ispublic>F</ispublic>
</agentskill>

What to do

  1. Create the SKILL.md file first. Write your skill instructions in Markdown with YAML front matter that includes name and description keys. Place it in the correct folder for your project type.
  2. Add the agentskill XML definition to your SuiteCloud project. Ensure the name and description strings are identical (case-sensitive) between the XML and the SKILL.md front matter, or validation will reject the deploy.
  3. Set ispublic deliberately. Only set to T if you intend other users to invoke the skill, and note that only the Administrator role can flip this flag.
  4. Deploy with SDF. Run suitecloud project:deploy (or equivalent IDE action). Watch for validation errors related to missing folders, missing SKILL.md, or name/description mismatches.
  5. Source-control the SKILL.md alongside the XML. Since both artifacts must be in sync, treat them as a unit in version control to avoid drift between the prompt content and the object metadata.

Open questions

The source documentation does not clarify the following — verify in your target account:

  • Whether there is a governance or size limit on the SKILL.md file content.
  • What the full SKILL.md front-matter schema looks like beyond name and description.
  • How custom skills interact with NS Copilot or other agent runtimes at invocation time (trigger mechanism, context passing, output handling).
  • Whether agentskill objects are searchable or scriptable via N/record or N/query.