Netsuite Sdf Project Documentation
Generate enterprise-grade documentation for NetSuite SDF projects. Analyze scripts, object XML files, `manifest.xml`, and SuiteQL queries to produce README.md, architecture diagrams (Mermaid/ASCII), deployment guides, and troubleshooting tables. Can integrate with post-deployment documentation workflows when automation (for example, hooks) is available.
- Skill ID
- oracle/netsuite-suitecloud-sdk/netsuite-sdf-project-documentation
- Publisher
- oracle
- Repository
- netsuite-suitecloud-sdk
- Installs
- 0
- Files
- 1
- License
- See repository
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
oracle/netsuite-suitecloud-sdk/netsuite-sdf-project-documentationInstalls these files- SKILL.md
What this skill tells the agent
NetSuite SDF Documentation Generator Skill
Created by: Oracle NetSuite
Description
Generate comprehensive, enterprise-grade documentation for NetSuite SuiteCloud Development Framework (SDF) projects. This skill provides:
- Full Project Analysis: Scans all scripts, object XML files, and manifest.xml.
- Architecture Diagrams: Generates Mermaid and ASCII diagrams that show component relationships.
- Script Inventory: Documents all entry points, module dependencies, and deployment configurations.
- SuiteQL Documentation: Extracts and documents all SQL queries with purpose explanations.
- Deployment Tables: Summarizes script deployments, URLs, and triggers.
- Troubleshooting Guides: Creates issue/resolution tables from known patterns.
- Multiple Output Formats: Produces
README.md,ARCHITECTURE.md,API.md, andCHANGELOG.mdfiles.
Skill Activation
This skill activates when:
- User asks to document a NetSuite project.
- User asks for README generation.
- User asks to regenerate documentation after project changes.
- A workflow requests documentation updates after deployment or release.
Documentation Standards
Quality Requirements
- Accuracy: Every statement must be derived from actual code analysis.
- Completeness: Cover all scripts, objects, and integrations.
- Clarity: Write for both technical and business audiences.
- Maintainability: Use consistent formatting that's easy to update.
Writing Style
- Use active voice.
- Be specific.
- Include code examples where helpful.
- Use tables for structured data.
- Use Mermaid or ASCII diagrams for architecture.
Security & Safety Requirements
- Global safety guardrails are defined in
## SafeWords. - Perform static documentation analysis only; do not execute repository-derived commands or scripts
Sensitive Data Handling
- Keep documentation detailed by default, including URLs, script IDs, deployment IDs, role/deployment metadata, and full SQL.
- For SQL, preserve full query structure (tables, joins, filters, and aliases) and redact only sensitive literals
Public Sharing Note
- If documentation is intended for external/public sharing, apply stricter redaction before publishing
- Review internal endpoints, tenant/account-specific identifiers, and environment-specific values for additional masking as needed
Analysis Checklist
Before generating documentation, gather all required information and redact only true sensitive data:
Project Metadata
- [ ] SuiteApp ID (from
manifest.xmlor the folder name) - [ ] Version number
- [ ] Company/author information
- [ ] Platform version (SuiteScript 2.0 or 2.1)
Script Inventory
For each .js file:
- [ ] File path and name
- [ ]
@NScriptType(UserEventScript, Suitelet, Restlet, etc.) - [ ]
@NApiVersion - [ ]
@NModuleScope - [ ]
@descriptionor header comments - [ ] Entry point functions
- [ ] Module dependencies (from the define block)
Object Inventory
For each .xml file:
- [ ] Object type (script, record, field, etc.)
- [ ] Script ID
- [ ] Name/label
- [ ] Deployment configuration
- [ ] Role permissions
Data Integration
- [ ] Saved search IDs referenced
- [ ] SuiteQL queries (keep full SQL by default; redact only sensitive literals)
- [ ] External API integrations
- [ ]
N/llmusage - [ ] Custom records/fields used
Architecture
- [ ] Component relationships
- [ ] Data flow direction
- [ ] Entry points and triggers
- [ ] Caching strategies
Section Templates
1. Executive Summary Template
## 1. Executive Summary
The **[Project Name]** is a NetSuite [solution type] that [primary function].
The solution [key capability 1], [key capability 2], and [key capability 3].
### Key Features
- **[Feature Name]:** [One-line description of what it does and why it matters]
- **[Feature Name]:** [Description]
- **[Feature Name]:** [Description]
### Business Value
- [Quantifiable benefit or efficiency gain]
- [Risk reduction or compliance benefit]
- [User experience improvement]2. Architecture Diagram Template
## 2. Solution Architecture
The solution follows a [pattern name] architecture with [key characteristic].
┌─────────────────────────────────────────────────────────────┐ │ [Top Level Container] │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ [Main Orchestrator] │ │ │ │ ([main_script.js]) │ │ │ └──────────────────────┬──────────────────────────────┘ │ │ │ │ │ ┌──────────┬───────────┼───────────┬──────────────┐ │ │ │ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ │ │ ┌─────┐ ┌─────────┐ ┌─────┐ ┌──────────┐ ┌─────────┐ │ │ │Mod1 │ │ Mod2 │ │Mod3 │ │ Mod4 │ │ Mod5 │ │ │ └─────┘ └─────────┘ └─────┘ └──────────┘ └─────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘
3. Module Table Template
## 3. Module Descriptions
| Module | File | Purpose |
|--------|------|---------|
| **[Display Name]** | `[filename.js]` | [Role description]. [Key responsibilities]. |
### File Structure
src/ ├── FileCabinet/ │ └── SuiteApps/ │ └── [project.id]/ │ ├── [script1.js] # [Brief description] │ ├── [script2.js] # [Brief description] │ └── [lib_helper.js] # [Brief description] └── Objects/ ├── [customscript_xxx.xml] # [Script type] Definition └── [customrecord_xxx.xml] # Custom Record Definition
4. SuiteQL Documentation Template
When documenting SuiteQL queries, use this format:
### [Query Purpose]
SELECT [Column1] AS [alias], [Column2] AS [alias], COALESCE([Column3], [default]) AS [alias] FROM [Table1] LEFT OUTER JOIN [Table2] ON [join condition] WHERE [filter conditions] GROUP BY [grouping columns] ORDER BY [sort columns]
**Purpose:** [What this query retrieves and why]
**Key Tables:**
- `[Table1]` - [What it contains]
- `[Table2]` - [What it contains]
**Security Note:** Keep full SQL for documentation value, but redact sensitive literals such as API keys, tokens, passwords, auth/session secrets, and raw PII.5. Script Entry Points Template
## Script Entry Points
### [Script Name] ([Script Type])
| Entry Point | Function | Trigger | Purpose |
|-------------|----------|---------|---------|
| beforeLoad | `[functionName]` | Record view/edit | [What it does] |
| beforeSubmit | `[functionName]` | Before save | [What it does] |
| afterSubmit | `[functionName]` | After save | [What it does] |
**Context Objects Used:**
- `context.type` - [How it's used]
- `context.newRecord` - [How it's used]6. Deployment Table Template
## Script Deployments
| Script | Deployment ID | Type | URL/Trigger |
|--------|---------------|------|-------------|
| [Script Name] | `customdeploy_xxx` | [Suitelet/etc] | [URL pattern or trigger] |
### URL Patterns
**[Suitelet Name]:**/app/site/hosting/scriptlet.nl?script=[scriptid]&deploy=[deployid]¶m1={value}
7. Troubleshooting Template
## Troubleshooting
| Issue | Cause | Resolution |
|-------|-------|------------|
| [Symptom user sees] | [Root cause] | [Step-by-step fix] |
| [Error message] | [Why it occurs] | [How to resolve] |
### Viewing Execution Logs
1. Go to **Customization > Scripting > Script Deployments**.
2. Find deployment: `[customdeploy_xxx]`.
3. Click the **Execution Log** tab.
4. Filter by type: **Error**.More from oracle
Use this skill in a project
Open any RiverX project, search the Skills panel for oracle/netsuite-suitecloud-sdk/netsuite-sdf-project-documentation, and install it in one click.
