# netsuite-sdf-roles-and-permissions

Writes and reviews NetSuite SDF role XML and deployment permissions, returning exact permkey and permlevel values.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 884 installs · ★ 362
- Author: Oracle NetSuite
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/oracle/netsuite-suitecloud-sdk/tree/HEAD/packages/agent-skills/netsuite-sdf-roles-and-permissions/SKILL.md
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/skills/netsuite-sdf-roles-and-permissions

## What it does

This skill answers NetSuite permission questions with concrete values instead of guesses. While you author `customrole` XML or review a `<permkey>` block in an SDF object, it resolves the exact internal ID and picks a matching access level.

Two references ship with it: `references/permissions.json` holds standard IDs and display-name aliases, and `references/permission-index.md` indexes them by category and business scenario. Standard permissions carry the prefixes `ADMI_`, `LIST_`, `REGT_`, `REPO_` and `TRAN_`. Custom record permissions work differently — their `permkey` is a script ID such as `customrecord_invoice_batch`, so validate it against your project XML rather than the reference file.

Levels are meant to stay small: `VIEW` for reading and search, `CREATE` to add records without touching existing ones, `EDIT` to create and update, `FULL` to delete or administer broadly. The skill treats `FULL` as an exception you have to justify. For a script execution role it refuses to recommend the built-in Administrator for production, so any config leaning on that role is worth a second look. Each answer names the `permkey`, the level, why that level is enough, and flags where the skill inferred from a use case without confirming against project XML.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add oracle/netsuite-suitecloud-sdk --skill netsuite-sdf-roles-and-permissions -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/netsuite-sdf-roles-and-permissions/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/netsuite-sdf-roles-and-permissions/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add oracle/netsuite-suitecloud-sdk --skill netsuite-sdf-roles-and-permissions -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/netsuite-sdf-roles-and-permissions/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add oracle/netsuite-suitecloud-sdk --skill netsuite-sdf-roles-and-permissions -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/netsuite-sdf-roles-and-permissions/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install oracle/netsuite-suitecloud-sdk netsuite-sdf-roles-and-permissions
```

2. **Manually: put the files in place**
- File: `.github/skills/netsuite-sdf-roles-and-permissions/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add oracle/netsuite-suitecloud-sdk --skill netsuite-sdf-roles-and-permissions -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/oracle/netsuite-suitecloud-sdk --path packages/agent-skills/netsuite-sdf-roles-and-permissions
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/netsuite-sdf-roles-and-permissions/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add oracle/netsuite-suitecloud-sdk --skill netsuite-sdf-roles-and-permissions -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/oracle/netsuite-suitecloud-sdk/tree/HEAD/packages/agent-skills/netsuite-sdf-roles-and-permissions/SKILL.md

## When to use it
- map a NetSuite UI permission label to its exact internal ID
- pick the smallest `permlevel` for an integration role
- tell a standard permission apart from a custom record script ID
- strip duplicate `<permkey>` entries from one role definition
- build a script execution role without the built-in Administrator

## Example prompts
- Generate `customrole` XML for a role that only needs to view sales orders
- Check the `<permkey>` values in this SDF object and flag any that miss the reference
- What `permlevel` does an integration role need to work with customer invoices?

## Similar
- [sdf](https://affpapa.org/en/nevibecode/skills/sdf.md) — skill · 10500 installs
- [android-permissions-security](https://affpapa.org/en/nevibecode/skills/android-permissions-security.md) — skill · 508 installs
- [argent-settings-permissions](https://affpapa.org/en/nevibecode/skills/argent-settings-permissions.md) — skill · 19200 installs
- [odoo-development](https://affpapa.org/en/nevibecode/skills/odoo-development.md) — skill · 2300 installs
- [python-odoo-cursor-rules](https://affpapa.org/en/nevibecode/skills/python-odoo-cursor-rules.md) — skill · 790 installs
- [permiso-accessibility-permissions](https://affpapa.org/en/nevibecode/skills/permiso-accessibility-permissions.md) — skill · 386 installs

From the same set: [oracle/netsuite-suitecloud-sdk](https://affpapa.org/en/nevibecode/by/oracle/netsuite-suitecloud-sdk.md) — 8 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
