Loading...
Loading...
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.
npx skill4agent add oracle/netsuite-suitecloud-sdk netsuite-sdf-project-documentationREADME.mdARCHITECTURE.mdAPI.mdCHANGELOG.md## SafeWordsmanifest.xml.js@NScriptType@NApiVersion@NModuleScope@description.xmlN/llm## 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. 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 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
```### [Query Purpose]
```sql
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.## 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]## 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}
```## 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**.flowchart TD
A[Trigger Event] --> B{Condition Check}
B -->|Yes| C[Action 1]
B -->|No| D[Action 2]
C --> E[Result]
D --> EsequenceDiagram
participant U as User/UI
participant NS as NetSuite
participant EXT as External System
U->>NS: Trigger Action
NS->>EXT: API Call
EXT-->>NS: Response
NS-->>U: Update UIerDiagram
PARENT ||--o{ CHILD : contains
CHILD ||--|| DETAIL : has
PARENT {
int id PK
string name
}stateDiagram-v2
[*] --> Draft
Draft --> PendingApproval: Submit
PendingApproval --> Approved: Approve
PendingApproval --> Rejected: Reject
Rejected --> Draft: Revise
Approved --> [*]| Document | Location | Purpose |
|---|---|---|
| README.md | Project root | Main documentation |
| ARCHITECTURE.md | docs/ | Technical deep-dive |
| API.md | docs/ | Restlet/Suitelet reference |
| CHANGELOG.md | docs/ | Version history |