@raishin/vanguard-frontier-agentic 2.9.0 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +26 -1
  3. package/.cursor-plugin/plugin.json +26 -1
  4. package/.github/plugin/marketplace.json +3 -3
  5. package/README.md +19 -16
  6. package/agents/netsuite/AGENTS.md +183 -0
  7. package/agents/netsuite/MAESTRO-EXAMPLES.md +438 -0
  8. package/agents/netsuite/README.md +70 -0
  9. package/agents/netsuite/SETUP-GUIDE.md +327 -0
  10. package/agents/netsuite/netsuite-administrator-agent/AGENT.md +122 -0
  11. package/agents/netsuite/netsuite-administrator-agent/LEAST-PRIVILEGES.md +66 -0
  12. package/agents/netsuite/netsuite-administrator-agent/harnesses/claude-code.agent.md +105 -0
  13. package/agents/netsuite/netsuite-administrator-agent/harnesses/codex.toml +37 -0
  14. package/agents/netsuite/netsuite-administrator-agent/harnesses/copilot.agent.md +112 -0
  15. package/agents/netsuite/netsuite-administrator-agent/harnesses/cursor.agent.md +105 -0
  16. package/agents/netsuite/netsuite-administrator-agent/harnesses/gemini.agent.md +105 -0
  17. package/agents/netsuite/netsuite-administrator-agent/harnesses/kiro-cli.agent.json +5 -0
  18. package/agents/netsuite/netsuite-administrator-agent/harnesses/kiro-ide.agent.md +105 -0
  19. package/agents/netsuite/netsuite-administrator-agent/metadata.json +43 -0
  20. package/agents/netsuite/netsuite-ai-connector-mcp-agent/AGENT.md +120 -0
  21. package/agents/netsuite/netsuite-ai-connector-mcp-agent/LEAST-PRIVILEGES.md +63 -0
  22. package/agents/netsuite/netsuite-ai-connector-mcp-agent/harnesses/claude-code.agent.md +103 -0
  23. package/agents/netsuite/netsuite-ai-connector-mcp-agent/harnesses/codex.toml +37 -0
  24. package/agents/netsuite/netsuite-ai-connector-mcp-agent/harnesses/copilot.agent.md +110 -0
  25. package/agents/netsuite/netsuite-ai-connector-mcp-agent/harnesses/cursor.agent.md +103 -0
  26. package/agents/netsuite/netsuite-ai-connector-mcp-agent/harnesses/gemini.agent.md +103 -0
  27. package/agents/netsuite/netsuite-ai-connector-mcp-agent/harnesses/kiro-cli.agent.json +5 -0
  28. package/agents/netsuite/netsuite-ai-connector-mcp-agent/harnesses/kiro-ide.agent.md +103 -0
  29. package/agents/netsuite/netsuite-ai-connector-mcp-agent/metadata.json +43 -0
  30. package/agents/netsuite/netsuite-ai-foundations-agent/AGENT.md +117 -0
  31. package/agents/netsuite/netsuite-ai-foundations-agent/LEAST-PRIVILEGES.md +63 -0
  32. package/agents/netsuite/netsuite-ai-foundations-agent/harnesses/claude-code.agent.md +100 -0
  33. package/agents/netsuite/netsuite-ai-foundations-agent/harnesses/codex.toml +37 -0
  34. package/agents/netsuite/netsuite-ai-foundations-agent/harnesses/copilot.agent.md +107 -0
  35. package/agents/netsuite/netsuite-ai-foundations-agent/harnesses/cursor.agent.md +100 -0
  36. package/agents/netsuite/netsuite-ai-foundations-agent/harnesses/gemini.agent.md +100 -0
  37. package/agents/netsuite/netsuite-ai-foundations-agent/harnesses/kiro-cli.agent.json +5 -0
  38. package/agents/netsuite/netsuite-ai-foundations-agent/harnesses/kiro-ide.agent.md +100 -0
  39. package/agents/netsuite/netsuite-ai-foundations-agent/metadata.json +43 -0
  40. package/agents/netsuite/netsuite-application-developer-agent/AGENT.md +121 -0
  41. package/agents/netsuite/netsuite-application-developer-agent/LEAST-PRIVILEGES.md +64 -0
  42. package/agents/netsuite/netsuite-application-developer-agent/harnesses/claude-code.agent.md +104 -0
  43. package/agents/netsuite/netsuite-application-developer-agent/harnesses/codex.toml +37 -0
  44. package/agents/netsuite/netsuite-application-developer-agent/harnesses/copilot.agent.md +111 -0
  45. package/agents/netsuite/netsuite-application-developer-agent/harnesses/cursor.agent.md +104 -0
  46. package/agents/netsuite/netsuite-application-developer-agent/harnesses/gemini.agent.md +104 -0
  47. package/agents/netsuite/netsuite-application-developer-agent/harnesses/kiro-cli.agent.json +5 -0
  48. package/agents/netsuite/netsuite-application-developer-agent/harnesses/kiro-ide.agent.md +104 -0
  49. package/agents/netsuite/netsuite-application-developer-agent/metadata.json +42 -0
  50. package/agents/netsuite/netsuite-audit-controls-sox-agent/AGENT.md +120 -0
  51. package/agents/netsuite/netsuite-audit-controls-sox-agent/LEAST-PRIVILEGES.md +66 -0
  52. package/agents/netsuite/netsuite-audit-controls-sox-agent/harnesses/claude-code.agent.md +103 -0
  53. package/agents/netsuite/netsuite-audit-controls-sox-agent/harnesses/codex.toml +37 -0
  54. package/agents/netsuite/netsuite-audit-controls-sox-agent/harnesses/copilot.agent.md +110 -0
  55. package/agents/netsuite/netsuite-audit-controls-sox-agent/harnesses/cursor.agent.md +103 -0
  56. package/agents/netsuite/netsuite-audit-controls-sox-agent/harnesses/gemini.agent.md +103 -0
  57. package/agents/netsuite/netsuite-audit-controls-sox-agent/harnesses/kiro-cli.agent.json +5 -0
  58. package/agents/netsuite/netsuite-audit-controls-sox-agent/harnesses/kiro-ide.agent.md +103 -0
  59. package/agents/netsuite/netsuite-audit-controls-sox-agent/metadata.json +43 -0
  60. package/agents/netsuite/netsuite-bi-reporting-agent/AGENT.md +120 -0
  61. package/agents/netsuite/netsuite-bi-reporting-agent/LEAST-PRIVILEGES.md +64 -0
  62. package/agents/netsuite/netsuite-bi-reporting-agent/harnesses/claude-code.agent.md +103 -0
  63. package/agents/netsuite/netsuite-bi-reporting-agent/harnesses/codex.toml +37 -0
  64. package/agents/netsuite/netsuite-bi-reporting-agent/harnesses/copilot.agent.md +110 -0
  65. package/agents/netsuite/netsuite-bi-reporting-agent/harnesses/cursor.agent.md +103 -0
  66. package/agents/netsuite/netsuite-bi-reporting-agent/harnesses/gemini.agent.md +103 -0
  67. package/agents/netsuite/netsuite-bi-reporting-agent/harnesses/kiro-cli.agent.json +5 -0
  68. package/agents/netsuite/netsuite-bi-reporting-agent/harnesses/kiro-ide.agent.md +103 -0
  69. package/agents/netsuite/netsuite-bi-reporting-agent/metadata.json +43 -0
  70. package/agents/netsuite/netsuite-data-governance-privacy-agent/AGENT.md +117 -0
  71. package/agents/netsuite/netsuite-data-governance-privacy-agent/LEAST-PRIVILEGES.md +66 -0
  72. package/agents/netsuite/netsuite-data-governance-privacy-agent/harnesses/claude-code.agent.md +100 -0
  73. package/agents/netsuite/netsuite-data-governance-privacy-agent/harnesses/codex.toml +37 -0
  74. package/agents/netsuite/netsuite-data-governance-privacy-agent/harnesses/copilot.agent.md +107 -0
  75. package/agents/netsuite/netsuite-data-governance-privacy-agent/harnesses/cursor.agent.md +100 -0
  76. package/agents/netsuite/netsuite-data-governance-privacy-agent/harnesses/gemini.agent.md +100 -0
  77. package/agents/netsuite/netsuite-data-governance-privacy-agent/harnesses/kiro-cli.agent.json +5 -0
  78. package/agents/netsuite/netsuite-data-governance-privacy-agent/harnesses/kiro-ide.agent.md +100 -0
  79. package/agents/netsuite/netsuite-data-governance-privacy-agent/metadata.json +41 -0
  80. package/agents/netsuite/netsuite-enterprise-architecture-agent/AGENT.md +120 -0
  81. package/agents/netsuite/netsuite-enterprise-architecture-agent/LEAST-PRIVILEGES.md +63 -0
  82. package/agents/netsuite/netsuite-enterprise-architecture-agent/harnesses/claude-code.agent.md +103 -0
  83. package/agents/netsuite/netsuite-enterprise-architecture-agent/harnesses/codex.toml +37 -0
  84. package/agents/netsuite/netsuite-enterprise-architecture-agent/harnesses/copilot.agent.md +110 -0
  85. package/agents/netsuite/netsuite-enterprise-architecture-agent/harnesses/cursor.agent.md +103 -0
  86. package/agents/netsuite/netsuite-enterprise-architecture-agent/harnesses/gemini.agent.md +103 -0
  87. package/agents/netsuite/netsuite-enterprise-architecture-agent/harnesses/kiro-cli.agent.json +5 -0
  88. package/agents/netsuite/netsuite-enterprise-architecture-agent/harnesses/kiro-ide.agent.md +103 -0
  89. package/agents/netsuite/netsuite-enterprise-architecture-agent/metadata.json +46 -0
  90. package/agents/netsuite/netsuite-erp-consultant-agent/AGENT.md +121 -0
  91. package/agents/netsuite/netsuite-erp-consultant-agent/LEAST-PRIVILEGES.md +64 -0
  92. package/agents/netsuite/netsuite-erp-consultant-agent/harnesses/claude-code.agent.md +104 -0
  93. package/agents/netsuite/netsuite-erp-consultant-agent/harnesses/codex.toml +36 -0
  94. package/agents/netsuite/netsuite-erp-consultant-agent/harnesses/copilot.agent.md +111 -0
  95. package/agents/netsuite/netsuite-erp-consultant-agent/harnesses/cursor.agent.md +104 -0
  96. package/agents/netsuite/netsuite-erp-consultant-agent/harnesses/gemini.agent.md +104 -0
  97. package/agents/netsuite/netsuite-erp-consultant-agent/harnesses/kiro-cli.agent.json +5 -0
  98. package/agents/netsuite/netsuite-erp-consultant-agent/harnesses/kiro-ide.agent.md +104 -0
  99. package/agents/netsuite/netsuite-erp-consultant-agent/metadata.json +42 -0
  100. package/agents/netsuite/netsuite-evidence-release-drift-agent/AGENT.md +114 -0
  101. package/agents/netsuite/netsuite-evidence-release-drift-agent/LEAST-PRIVILEGES.md +58 -0
  102. package/agents/netsuite/netsuite-evidence-release-drift-agent/harnesses/claude-code.agent.md +97 -0
  103. package/agents/netsuite/netsuite-evidence-release-drift-agent/harnesses/codex.toml +36 -0
  104. package/agents/netsuite/netsuite-evidence-release-drift-agent/harnesses/copilot.agent.md +104 -0
  105. package/agents/netsuite/netsuite-evidence-release-drift-agent/harnesses/cursor.agent.md +97 -0
  106. package/agents/netsuite/netsuite-evidence-release-drift-agent/harnesses/gemini.agent.md +97 -0
  107. package/agents/netsuite/netsuite-evidence-release-drift-agent/harnesses/kiro-cli.agent.json +5 -0
  108. package/agents/netsuite/netsuite-evidence-release-drift-agent/harnesses/kiro-ide.agent.md +97 -0
  109. package/agents/netsuite/netsuite-evidence-release-drift-agent/metadata.json +43 -0
  110. package/agents/netsuite/netsuite-financial-foundations-agent/AGENT.md +119 -0
  111. package/agents/netsuite/netsuite-financial-foundations-agent/LEAST-PRIVILEGES.md +65 -0
  112. package/agents/netsuite/netsuite-financial-foundations-agent/harnesses/claude-code.agent.md +102 -0
  113. package/agents/netsuite/netsuite-financial-foundations-agent/harnesses/codex.toml +37 -0
  114. package/agents/netsuite/netsuite-financial-foundations-agent/harnesses/copilot.agent.md +109 -0
  115. package/agents/netsuite/netsuite-financial-foundations-agent/harnesses/cursor.agent.md +102 -0
  116. package/agents/netsuite/netsuite-financial-foundations-agent/harnesses/gemini.agent.md +102 -0
  117. package/agents/netsuite/netsuite-financial-foundations-agent/harnesses/kiro-cli.agent.json +5 -0
  118. package/agents/netsuite/netsuite-financial-foundations-agent/harnesses/kiro-ide.agent.md +102 -0
  119. package/agents/netsuite/netsuite-financial-foundations-agent/metadata.json +43 -0
  120. package/agents/netsuite/netsuite-identity-access-role-permission-agent/AGENT.md +118 -0
  121. package/agents/netsuite/netsuite-identity-access-role-permission-agent/LEAST-PRIVILEGES.md +63 -0
  122. package/agents/netsuite/netsuite-identity-access-role-permission-agent/harnesses/claude-code.agent.md +101 -0
  123. package/agents/netsuite/netsuite-identity-access-role-permission-agent/harnesses/codex.toml +37 -0
  124. package/agents/netsuite/netsuite-identity-access-role-permission-agent/harnesses/copilot.agent.md +108 -0
  125. package/agents/netsuite/netsuite-identity-access-role-permission-agent/harnesses/cursor.agent.md +101 -0
  126. package/agents/netsuite/netsuite-identity-access-role-permission-agent/harnesses/gemini.agent.md +101 -0
  127. package/agents/netsuite/netsuite-identity-access-role-permission-agent/harnesses/kiro-cli.agent.json +5 -0
  128. package/agents/netsuite/netsuite-identity-access-role-permission-agent/harnesses/kiro-ide.agent.md +101 -0
  129. package/agents/netsuite/netsuite-identity-access-role-permission-agent/metadata.json +43 -0
  130. package/agents/netsuite/netsuite-integration-migration-agent/AGENT.md +119 -0
  131. package/agents/netsuite/netsuite-integration-migration-agent/LEAST-PRIVILEGES.md +61 -0
  132. package/agents/netsuite/netsuite-integration-migration-agent/harnesses/claude-code.agent.md +102 -0
  133. package/agents/netsuite/netsuite-integration-migration-agent/harnesses/codex.toml +37 -0
  134. package/agents/netsuite/netsuite-integration-migration-agent/harnesses/copilot.agent.md +109 -0
  135. package/agents/netsuite/netsuite-integration-migration-agent/harnesses/cursor.agent.md +102 -0
  136. package/agents/netsuite/netsuite-integration-migration-agent/harnesses/gemini.agent.md +102 -0
  137. package/agents/netsuite/netsuite-integration-migration-agent/harnesses/kiro-cli.agent.json +5 -0
  138. package/agents/netsuite/netsuite-integration-migration-agent/harnesses/kiro-ide.agent.md +102 -0
  139. package/agents/netsuite/netsuite-integration-migration-agent/metadata.json +43 -0
  140. package/agents/netsuite/netsuite-live-org-mutation-guard-agent/AGENT.md +126 -0
  141. package/agents/netsuite/netsuite-live-org-mutation-guard-agent/LEAST-PRIVILEGES.md +65 -0
  142. package/agents/netsuite/netsuite-live-org-mutation-guard-agent/harnesses/claude-code.agent.md +109 -0
  143. package/agents/netsuite/netsuite-live-org-mutation-guard-agent/harnesses/codex.toml +37 -0
  144. package/agents/netsuite/netsuite-live-org-mutation-guard-agent/harnesses/copilot.agent.md +116 -0
  145. package/agents/netsuite/netsuite-live-org-mutation-guard-agent/harnesses/cursor.agent.md +109 -0
  146. package/agents/netsuite/netsuite-live-org-mutation-guard-agent/harnesses/gemini.agent.md +109 -0
  147. package/agents/netsuite/netsuite-live-org-mutation-guard-agent/harnesses/kiro-cli.agent.json +5 -0
  148. package/agents/netsuite/netsuite-live-org-mutation-guard-agent/harnesses/kiro-ide.agent.md +109 -0
  149. package/agents/netsuite/netsuite-live-org-mutation-guard-agent/metadata.json +45 -0
  150. package/agents/netsuite/netsuite-maestro-agent/AGENT.md +111 -0
  151. package/agents/netsuite/netsuite-maestro-agent/LEAST-PRIVILEGES.md +58 -0
  152. package/agents/netsuite/netsuite-maestro-agent/README.md +259 -0
  153. package/agents/netsuite/netsuite-maestro-agent/harnesses/claude-code.agent.md +94 -0
  154. package/agents/netsuite/netsuite-maestro-agent/harnesses/codex.toml +30 -0
  155. package/agents/netsuite/netsuite-maestro-agent/harnesses/copilot.agent.md +101 -0
  156. package/agents/netsuite/netsuite-maestro-agent/harnesses/cursor.agent.md +94 -0
  157. package/agents/netsuite/netsuite-maestro-agent/harnesses/gemini.agent.md +94 -0
  158. package/agents/netsuite/netsuite-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
  159. package/agents/netsuite/netsuite-maestro-agent/harnesses/kiro-ide.agent.md +94 -0
  160. package/agents/netsuite/netsuite-maestro-agent/metadata.json +39 -0
  161. package/agents/netsuite/netsuite-oneworld-multisubsidiary-agent/AGENT.md +117 -0
  162. package/agents/netsuite/netsuite-oneworld-multisubsidiary-agent/LEAST-PRIVILEGES.md +64 -0
  163. package/agents/netsuite/netsuite-oneworld-multisubsidiary-agent/harnesses/claude-code.agent.md +100 -0
  164. package/agents/netsuite/netsuite-oneworld-multisubsidiary-agent/harnesses/codex.toml +37 -0
  165. package/agents/netsuite/netsuite-oneworld-multisubsidiary-agent/harnesses/copilot.agent.md +107 -0
  166. package/agents/netsuite/netsuite-oneworld-multisubsidiary-agent/harnesses/cursor.agent.md +100 -0
  167. package/agents/netsuite/netsuite-oneworld-multisubsidiary-agent/harnesses/gemini.agent.md +100 -0
  168. package/agents/netsuite/netsuite-oneworld-multisubsidiary-agent/harnesses/kiro-cli.agent.json +5 -0
  169. package/agents/netsuite/netsuite-oneworld-multisubsidiary-agent/harnesses/kiro-ide.agent.md +100 -0
  170. package/agents/netsuite/netsuite-oneworld-multisubsidiary-agent/metadata.json +40 -0
  171. package/agents/netsuite/netsuite-sandbox-nonproduction-governance-agent/AGENT.md +119 -0
  172. package/agents/netsuite/netsuite-sandbox-nonproduction-governance-agent/LEAST-PRIVILEGES.md +60 -0
  173. package/agents/netsuite/netsuite-sandbox-nonproduction-governance-agent/harnesses/claude-code.agent.md +102 -0
  174. package/agents/netsuite/netsuite-sandbox-nonproduction-governance-agent/harnesses/codex.toml +37 -0
  175. package/agents/netsuite/netsuite-sandbox-nonproduction-governance-agent/harnesses/copilot.agent.md +109 -0
  176. package/agents/netsuite/netsuite-sandbox-nonproduction-governance-agent/harnesses/cursor.agent.md +102 -0
  177. package/agents/netsuite/netsuite-sandbox-nonproduction-governance-agent/harnesses/gemini.agent.md +102 -0
  178. package/agents/netsuite/netsuite-sandbox-nonproduction-governance-agent/harnesses/kiro-cli.agent.json +5 -0
  179. package/agents/netsuite/netsuite-sandbox-nonproduction-governance-agent/harnesses/kiro-ide.agent.md +102 -0
  180. package/agents/netsuite/netsuite-sandbox-nonproduction-governance-agent/metadata.json +44 -0
  181. package/agents/netsuite/netsuite-saved-searches-workbook-agent/AGENT.md +121 -0
  182. package/agents/netsuite/netsuite-saved-searches-workbook-agent/LEAST-PRIVILEGES.md +65 -0
  183. package/agents/netsuite/netsuite-saved-searches-workbook-agent/harnesses/claude-code.agent.md +104 -0
  184. package/agents/netsuite/netsuite-saved-searches-workbook-agent/harnesses/codex.toml +37 -0
  185. package/agents/netsuite/netsuite-saved-searches-workbook-agent/harnesses/copilot.agent.md +111 -0
  186. package/agents/netsuite/netsuite-saved-searches-workbook-agent/harnesses/cursor.agent.md +104 -0
  187. package/agents/netsuite/netsuite-saved-searches-workbook-agent/harnesses/gemini.agent.md +104 -0
  188. package/agents/netsuite/netsuite-saved-searches-workbook-agent/harnesses/kiro-cli.agent.json +5 -0
  189. package/agents/netsuite/netsuite-saved-searches-workbook-agent/harnesses/kiro-ide.agent.md +104 -0
  190. package/agents/netsuite/netsuite-saved-searches-workbook-agent/metadata.json +41 -0
  191. package/agents/netsuite/netsuite-sdf-devops-release-agent/AGENT.md +122 -0
  192. package/agents/netsuite/netsuite-sdf-devops-release-agent/LEAST-PRIVILEGES.md +64 -0
  193. package/agents/netsuite/netsuite-sdf-devops-release-agent/harnesses/claude-code.agent.md +105 -0
  194. package/agents/netsuite/netsuite-sdf-devops-release-agent/harnesses/codex.toml +37 -0
  195. package/agents/netsuite/netsuite-sdf-devops-release-agent/harnesses/copilot.agent.md +112 -0
  196. package/agents/netsuite/netsuite-sdf-devops-release-agent/harnesses/cursor.agent.md +105 -0
  197. package/agents/netsuite/netsuite-sdf-devops-release-agent/harnesses/gemini.agent.md +105 -0
  198. package/agents/netsuite/netsuite-sdf-devops-release-agent/harnesses/kiro-cli.agent.json +5 -0
  199. package/agents/netsuite/netsuite-sdf-devops-release-agent/harnesses/kiro-ide.agent.md +105 -0
  200. package/agents/netsuite/netsuite-sdf-devops-release-agent/metadata.json +42 -0
  201. package/agents/netsuite/netsuite-sso-oauth-tba-agent/AGENT.md +123 -0
  202. package/agents/netsuite/netsuite-sso-oauth-tba-agent/LEAST-PRIVILEGES.md +62 -0
  203. package/agents/netsuite/netsuite-sso-oauth-tba-agent/harnesses/claude-code.agent.md +106 -0
  204. package/agents/netsuite/netsuite-sso-oauth-tba-agent/harnesses/codex.toml +37 -0
  205. package/agents/netsuite/netsuite-sso-oauth-tba-agent/harnesses/copilot.agent.md +113 -0
  206. package/agents/netsuite/netsuite-sso-oauth-tba-agent/harnesses/cursor.agent.md +106 -0
  207. package/agents/netsuite/netsuite-sso-oauth-tba-agent/harnesses/gemini.agent.md +106 -0
  208. package/agents/netsuite/netsuite-sso-oauth-tba-agent/harnesses/kiro-cli.agent.json +5 -0
  209. package/agents/netsuite/netsuite-sso-oauth-tba-agent/harnesses/kiro-ide.agent.md +106 -0
  210. package/agents/netsuite/netsuite-sso-oauth-tba-agent/metadata.json +48 -0
  211. package/agents/netsuite/netsuite-suitecloud-developer-agent/AGENT.md +120 -0
  212. package/agents/netsuite/netsuite-suitecloud-developer-agent/LEAST-PRIVILEGES.md +61 -0
  213. package/agents/netsuite/netsuite-suitecloud-developer-agent/harnesses/claude-code.agent.md +103 -0
  214. package/agents/netsuite/netsuite-suitecloud-developer-agent/harnesses/codex.toml +37 -0
  215. package/agents/netsuite/netsuite-suitecloud-developer-agent/harnesses/copilot.agent.md +110 -0
  216. package/agents/netsuite/netsuite-suitecloud-developer-agent/harnesses/cursor.agent.md +103 -0
  217. package/agents/netsuite/netsuite-suitecloud-developer-agent/harnesses/gemini.agent.md +103 -0
  218. package/agents/netsuite/netsuite-suitecloud-developer-agent/harnesses/kiro-cli.agent.json +5 -0
  219. package/agents/netsuite/netsuite-suitecloud-developer-agent/harnesses/kiro-ide.agent.md +103 -0
  220. package/agents/netsuite/netsuite-suitecloud-developer-agent/metadata.json +44 -0
  221. package/agents/netsuite/netsuite-suiteflow-automation-agent/AGENT.md +120 -0
  222. package/agents/netsuite/netsuite-suiteflow-automation-agent/LEAST-PRIVILEGES.md +65 -0
  223. package/agents/netsuite/netsuite-suiteflow-automation-agent/harnesses/claude-code.agent.md +103 -0
  224. package/agents/netsuite/netsuite-suiteflow-automation-agent/harnesses/codex.toml +37 -0
  225. package/agents/netsuite/netsuite-suiteflow-automation-agent/harnesses/copilot.agent.md +110 -0
  226. package/agents/netsuite/netsuite-suiteflow-automation-agent/harnesses/cursor.agent.md +103 -0
  227. package/agents/netsuite/netsuite-suiteflow-automation-agent/harnesses/gemini.agent.md +103 -0
  228. package/agents/netsuite/netsuite-suiteflow-automation-agent/harnesses/kiro-cli.agent.json +5 -0
  229. package/agents/netsuite/netsuite-suiteflow-automation-agent/harnesses/kiro-ide.agent.md +103 -0
  230. package/agents/netsuite/netsuite-suiteflow-automation-agent/metadata.json +43 -0
  231. package/agents/netsuite/netsuite-suitefoundation-agent/AGENT.md +118 -0
  232. package/agents/netsuite/netsuite-suitefoundation-agent/LEAST-PRIVILEGES.md +63 -0
  233. package/agents/netsuite/netsuite-suitefoundation-agent/harnesses/claude-code.agent.md +101 -0
  234. package/agents/netsuite/netsuite-suitefoundation-agent/harnesses/codex.toml +36 -0
  235. package/agents/netsuite/netsuite-suitefoundation-agent/harnesses/copilot.agent.md +108 -0
  236. package/agents/netsuite/netsuite-suitefoundation-agent/harnesses/cursor.agent.md +101 -0
  237. package/agents/netsuite/netsuite-suitefoundation-agent/harnesses/gemini.agent.md +101 -0
  238. package/agents/netsuite/netsuite-suitefoundation-agent/harnesses/kiro-cli.agent.json +5 -0
  239. package/agents/netsuite/netsuite-suitefoundation-agent/harnesses/kiro-ide.agent.md +101 -0
  240. package/agents/netsuite/netsuite-suitefoundation-agent/metadata.json +42 -0
  241. package/agents/netsuite/netsuite-suitescript-secure-code-review-agent/AGENT.md +121 -0
  242. package/agents/netsuite/netsuite-suitescript-secure-code-review-agent/LEAST-PRIVILEGES.md +65 -0
  243. package/agents/netsuite/netsuite-suitescript-secure-code-review-agent/harnesses/claude-code.agent.md +104 -0
  244. package/agents/netsuite/netsuite-suitescript-secure-code-review-agent/harnesses/codex.toml +37 -0
  245. package/agents/netsuite/netsuite-suitescript-secure-code-review-agent/harnesses/copilot.agent.md +111 -0
  246. package/agents/netsuite/netsuite-suitescript-secure-code-review-agent/harnesses/cursor.agent.md +104 -0
  247. package/agents/netsuite/netsuite-suitescript-secure-code-review-agent/harnesses/gemini.agent.md +104 -0
  248. package/agents/netsuite/netsuite-suitescript-secure-code-review-agent/harnesses/kiro-cli.agent.json +5 -0
  249. package/agents/netsuite/netsuite-suitescript-secure-code-review-agent/harnesses/kiro-ide.agent.md +104 -0
  250. package/agents/netsuite/netsuite-suitescript-secure-code-review-agent/metadata.json +44 -0
  251. package/agents/netsuite/netsuite-web-services-integration-agent/AGENT.md +119 -0
  252. package/agents/netsuite/netsuite-web-services-integration-agent/LEAST-PRIVILEGES.md +61 -0
  253. package/agents/netsuite/netsuite-web-services-integration-agent/harnesses/claude-code.agent.md +102 -0
  254. package/agents/netsuite/netsuite-web-services-integration-agent/harnesses/codex.toml +37 -0
  255. package/agents/netsuite/netsuite-web-services-integration-agent/harnesses/copilot.agent.md +109 -0
  256. package/agents/netsuite/netsuite-web-services-integration-agent/harnesses/cursor.agent.md +102 -0
  257. package/agents/netsuite/netsuite-web-services-integration-agent/harnesses/gemini.agent.md +102 -0
  258. package/agents/netsuite/netsuite-web-services-integration-agent/harnesses/kiro-cli.agent.json +5 -0
  259. package/agents/netsuite/netsuite-web-services-integration-agent/harnesses/kiro-ide.agent.md +102 -0
  260. package/agents/netsuite/netsuite-web-services-integration-agent/metadata.json +45 -0
  261. package/catalog/agents.json +7868 -6377
  262. package/catalog/asset-integrity.json +1494 -49
  263. package/catalog/install-roles.json +691 -623
  264. package/catalog/skill-manifest.json +1025 -0
  265. package/catalog/skills.json +2844 -2114
  266. package/package.json +1 -1
  267. package/plugins/vanguard-frontier-agentic/.codex-plugin/plugin.json +1 -1
  268. package/powers/README.md +3 -2
  269. package/powers/vanguard-accounting/POWER.md +2 -2
  270. package/powers/vanguard-finance/POWER.md +2 -2
  271. package/powers/vanguard-netsuite/POWER.md +41 -0
  272. package/schemas/agent.schema.json +1 -0
  273. package/schemas/skill.schema.json +2 -1
  274. package/scripts/gen_netsuite_agents.py +536 -0
  275. package/scripts/generate-docs-data.mjs +1 -0
  276. package/scripts/netsuite_data/agents/netsuite-administrator-agent.json +150 -0
  277. package/scripts/netsuite_data/agents/netsuite-ai-connector-mcp-agent.json +144 -0
  278. package/scripts/netsuite_data/agents/netsuite-ai-foundations-agent.json +144 -0
  279. package/scripts/netsuite_data/agents/netsuite-application-developer-agent.json +146 -0
  280. package/scripts/netsuite_data/agents/netsuite-audit-controls-sox-agent.json +151 -0
  281. package/scripts/netsuite_data/agents/netsuite-bi-reporting-agent.json +146 -0
  282. package/scripts/netsuite_data/agents/netsuite-data-governance-privacy-agent.json +143 -0
  283. package/scripts/netsuite_data/agents/netsuite-enterprise-architecture-agent.json +185 -0
  284. package/scripts/netsuite_data/agents/netsuite-erp-consultant-agent.json +146 -0
  285. package/scripts/netsuite_data/agents/netsuite-evidence-release-drift-agent.json +156 -0
  286. package/scripts/netsuite_data/agents/netsuite-financial-foundations-agent.json +148 -0
  287. package/scripts/netsuite_data/agents/netsuite-identity-access-role-permission-agent.json +140 -0
  288. package/scripts/netsuite_data/agents/netsuite-integration-migration-agent.json +147 -0
  289. package/scripts/netsuite_data/agents/netsuite-live-org-mutation-guard-agent.json +165 -0
  290. package/scripts/netsuite_data/agents/netsuite-maestro-agent.json +85 -0
  291. package/scripts/netsuite_data/agents/netsuite-oneworld-multisubsidiary-agent.json +140 -0
  292. package/scripts/netsuite_data/agents/netsuite-sandbox-nonproduction-governance-agent.json +147 -0
  293. package/scripts/netsuite_data/agents/netsuite-saved-searches-workbook-agent.json +147 -0
  294. package/scripts/netsuite_data/agents/netsuite-sdf-devops-release-agent.json +145 -0
  295. package/scripts/netsuite_data/agents/netsuite-sso-oauth-tba-agent.json +151 -0
  296. package/scripts/netsuite_data/agents/netsuite-suitecloud-developer-agent.json +148 -0
  297. package/scripts/netsuite_data/agents/netsuite-suiteflow-automation-agent.json +149 -0
  298. package/scripts/netsuite_data/agents/netsuite-suitefoundation-agent.json +142 -0
  299. package/scripts/netsuite_data/agents/netsuite-suitescript-secure-code-review-agent.json +150 -0
  300. package/scripts/netsuite_data/agents/netsuite-web-services-integration-agent.json +149 -0
  301. package/skills/cross-functional/netsuite-routing-protocol/SKILL.md +150 -0
  302. package/skills/cross-functional/netsuite-routing-protocol/metadata.json +18 -0
  303. package/skills/netsuite/README.md +138 -0
  304. package/skills/netsuite/netsuite-administrator-skill/SKILL.md +85 -0
  305. package/skills/netsuite/netsuite-administrator-skill/metadata.json +36 -0
  306. package/skills/netsuite/netsuite-administrator-skill/references/least-privilege.md +66 -0
  307. package/skills/netsuite/netsuite-administrator-skill/references/official-sources.md +12 -0
  308. package/skills/netsuite/netsuite-administrator-skill/references/release-drift.md +11 -0
  309. package/skills/netsuite/netsuite-administrator-skill/references/safety-checklist.md +19 -0
  310. package/skills/netsuite/netsuite-administrator-skill/references/sandbox-oauth-isolation.md +14 -0
  311. package/skills/netsuite/netsuite-ai-connector-mcp-skill/SKILL.md +88 -0
  312. package/skills/netsuite/netsuite-ai-connector-mcp-skill/metadata.json +36 -0
  313. package/skills/netsuite/netsuite-ai-connector-mcp-skill/references/least-privilege.md +63 -0
  314. package/skills/netsuite/netsuite-ai-connector-mcp-skill/references/official-sources.md +11 -0
  315. package/skills/netsuite/netsuite-ai-connector-mcp-skill/references/prompt-injection-patterns.md +13 -0
  316. package/skills/netsuite/netsuite-ai-connector-mcp-skill/references/release-drift.md +11 -0
  317. package/skills/netsuite/netsuite-ai-connector-mcp-skill/references/safety-checklist.md +19 -0
  318. package/skills/netsuite/netsuite-ai-foundations-skill/SKILL.md +85 -0
  319. package/skills/netsuite/netsuite-ai-foundations-skill/metadata.json +36 -0
  320. package/skills/netsuite/netsuite-ai-foundations-skill/references/ai-foundations-cert-status.md +12 -0
  321. package/skills/netsuite/netsuite-ai-foundations-skill/references/least-privilege.md +63 -0
  322. package/skills/netsuite/netsuite-ai-foundations-skill/references/official-sources.md +12 -0
  323. package/skills/netsuite/netsuite-ai-foundations-skill/references/release-drift.md +11 -0
  324. package/skills/netsuite/netsuite-ai-foundations-skill/references/safety-checklist.md +18 -0
  325. package/skills/netsuite/netsuite-application-developer-skill/SKILL.md +87 -0
  326. package/skills/netsuite/netsuite-application-developer-skill/metadata.json +35 -0
  327. package/skills/netsuite/netsuite-application-developer-skill/references/least-privilege.md +64 -0
  328. package/skills/netsuite/netsuite-application-developer-skill/references/official-sources.md +10 -0
  329. package/skills/netsuite/netsuite-application-developer-skill/references/release-drift.md +11 -0
  330. package/skills/netsuite/netsuite-application-developer-skill/references/safety-checklist.md +18 -0
  331. package/skills/netsuite/netsuite-application-developer-skill/references/script-type-reference.md +14 -0
  332. package/skills/netsuite/netsuite-audit-controls-sox-skill/SKILL.md +86 -0
  333. package/skills/netsuite/netsuite-audit-controls-sox-skill/metadata.json +36 -0
  334. package/skills/netsuite/netsuite-audit-controls-sox-skill/references/least-privilege.md +66 -0
  335. package/skills/netsuite/netsuite-audit-controls-sox-skill/references/official-sources.md +12 -0
  336. package/skills/netsuite/netsuite-audit-controls-sox-skill/references/release-drift.md +11 -0
  337. package/skills/netsuite/netsuite-audit-controls-sox-skill/references/safety-checklist.md +18 -0
  338. package/skills/netsuite/netsuite-audit-controls-sox-skill/references/sox-control-map.md +13 -0
  339. package/skills/netsuite/netsuite-bi-reporting-skill/SKILL.md +87 -0
  340. package/skills/netsuite/netsuite-bi-reporting-skill/metadata.json +36 -0
  341. package/skills/netsuite/netsuite-bi-reporting-skill/references/kpi-formula-reference.md +14 -0
  342. package/skills/netsuite/netsuite-bi-reporting-skill/references/least-privilege.md +64 -0
  343. package/skills/netsuite/netsuite-bi-reporting-skill/references/official-sources.md +11 -0
  344. package/skills/netsuite/netsuite-bi-reporting-skill/references/release-drift.md +11 -0
  345. package/skills/netsuite/netsuite-bi-reporting-skill/references/safety-checklist.md +18 -0
  346. package/skills/netsuite/netsuite-data-governance-privacy-skill/SKILL.md +85 -0
  347. package/skills/netsuite/netsuite-data-governance-privacy-skill/metadata.json +34 -0
  348. package/skills/netsuite/netsuite-data-governance-privacy-skill/references/least-privilege.md +66 -0
  349. package/skills/netsuite/netsuite-data-governance-privacy-skill/references/official-sources.md +10 -0
  350. package/skills/netsuite/netsuite-data-governance-privacy-skill/references/pii-field-catalog.md +12 -0
  351. package/skills/netsuite/netsuite-data-governance-privacy-skill/references/release-drift.md +11 -0
  352. package/skills/netsuite/netsuite-data-governance-privacy-skill/references/safety-checklist.md +17 -0
  353. package/skills/netsuite/netsuite-enterprise-architecture-skill/SKILL.md +86 -0
  354. package/skills/netsuite/netsuite-enterprise-architecture-skill/metadata.json +39 -0
  355. package/skills/netsuite/netsuite-enterprise-architecture-skill/references/adr-template.md +14 -0
  356. package/skills/netsuite/netsuite-enterprise-architecture-skill/references/least-privilege.md +63 -0
  357. package/skills/netsuite/netsuite-enterprise-architecture-skill/references/official-sources.md +15 -0
  358. package/skills/netsuite/netsuite-enterprise-architecture-skill/references/release-drift.md +11 -0
  359. package/skills/netsuite/netsuite-enterprise-architecture-skill/references/safety-checklist.md +19 -0
  360. package/skills/netsuite/netsuite-erp-consultant-skill/SKILL.md +85 -0
  361. package/skills/netsuite/netsuite-erp-consultant-skill/metadata.json +35 -0
  362. package/skills/netsuite/netsuite-erp-consultant-skill/references/erp-process-domain-map.md +14 -0
  363. package/skills/netsuite/netsuite-erp-consultant-skill/references/least-privilege.md +64 -0
  364. package/skills/netsuite/netsuite-erp-consultant-skill/references/official-sources.md +11 -0
  365. package/skills/netsuite/netsuite-erp-consultant-skill/references/release-drift.md +11 -0
  366. package/skills/netsuite/netsuite-erp-consultant-skill/references/safety-checklist.md +19 -0
  367. package/skills/netsuite/netsuite-evidence-release-drift-skill/SKILL.md +85 -0
  368. package/skills/netsuite/netsuite-evidence-release-drift-skill/metadata.json +36 -0
  369. package/skills/netsuite/netsuite-evidence-release-drift-skill/references/evidence-hierarchy.md +13 -0
  370. package/skills/netsuite/netsuite-evidence-release-drift-skill/references/least-privilege.md +58 -0
  371. package/skills/netsuite/netsuite-evidence-release-drift-skill/references/official-sources.md +12 -0
  372. package/skills/netsuite/netsuite-evidence-release-drift-skill/references/release-drift.md +11 -0
  373. package/skills/netsuite/netsuite-evidence-release-drift-skill/references/safety-checklist.md +18 -0
  374. package/skills/netsuite/netsuite-financial-foundations-skill/SKILL.md +85 -0
  375. package/skills/netsuite/netsuite-financial-foundations-skill/metadata.json +36 -0
  376. package/skills/netsuite/netsuite-financial-foundations-skill/references/financial-foundations-domain-map.md +12 -0
  377. package/skills/netsuite/netsuite-financial-foundations-skill/references/least-privilege.md +65 -0
  378. package/skills/netsuite/netsuite-financial-foundations-skill/references/official-sources.md +12 -0
  379. package/skills/netsuite/netsuite-financial-foundations-skill/references/release-drift.md +11 -0
  380. package/skills/netsuite/netsuite-financial-foundations-skill/references/safety-checklist.md +18 -0
  381. package/skills/netsuite/netsuite-identity-access-role-permission-skill/SKILL.md +86 -0
  382. package/skills/netsuite/netsuite-identity-access-role-permission-skill/metadata.json +36 -0
  383. package/skills/netsuite/netsuite-identity-access-role-permission-skill/references/least-privilege.md +63 -0
  384. package/skills/netsuite/netsuite-identity-access-role-permission-skill/references/official-sources.md +11 -0
  385. package/skills/netsuite/netsuite-identity-access-role-permission-skill/references/release-drift.md +11 -0
  386. package/skills/netsuite/netsuite-identity-access-role-permission-skill/references/safety-checklist.md +18 -0
  387. package/skills/netsuite/netsuite-identity-access-role-permission-skill/references/sod-conflict-matrix.md +12 -0
  388. package/skills/netsuite/netsuite-integration-migration-skill/SKILL.md +85 -0
  389. package/skills/netsuite/netsuite-integration-migration-skill/metadata.json +36 -0
  390. package/skills/netsuite/netsuite-integration-migration-skill/references/least-privilege.md +61 -0
  391. package/skills/netsuite/netsuite-integration-migration-skill/references/migration-complexity-matrix.md +14 -0
  392. package/skills/netsuite/netsuite-integration-migration-skill/references/official-sources.md +12 -0
  393. package/skills/netsuite/netsuite-integration-migration-skill/references/release-drift.md +11 -0
  394. package/skills/netsuite/netsuite-integration-migration-skill/references/safety-checklist.md +17 -0
  395. package/skills/netsuite/netsuite-live-operation-safety-skill/SKILL.md +92 -0
  396. package/skills/netsuite/netsuite-live-operation-safety-skill/metadata.json +38 -0
  397. package/skills/netsuite/netsuite-live-operation-safety-skill/references/blast-radius-guide.md +14 -0
  398. package/skills/netsuite/netsuite-live-operation-safety-skill/references/least-privilege.md +65 -0
  399. package/skills/netsuite/netsuite-live-operation-safety-skill/references/official-sources.md +14 -0
  400. package/skills/netsuite/netsuite-live-operation-safety-skill/references/release-drift.md +11 -0
  401. package/skills/netsuite/netsuite-live-operation-safety-skill/references/safety-checklist.md +24 -0
  402. package/skills/netsuite/netsuite-oneworld-multisubsidiary-skill/SKILL.md +85 -0
  403. package/skills/netsuite/netsuite-oneworld-multisubsidiary-skill/metadata.json +33 -0
  404. package/skills/netsuite/netsuite-oneworld-multisubsidiary-skill/references/intercompany-patterns.md +12 -0
  405. package/skills/netsuite/netsuite-oneworld-multisubsidiary-skill/references/least-privilege.md +64 -0
  406. package/skills/netsuite/netsuite-oneworld-multisubsidiary-skill/references/official-sources.md +9 -0
  407. package/skills/netsuite/netsuite-oneworld-multisubsidiary-skill/references/release-drift.md +11 -0
  408. package/skills/netsuite/netsuite-oneworld-multisubsidiary-skill/references/safety-checklist.md +17 -0
  409. package/skills/netsuite/netsuite-sandbox-nonproduction-governance-skill/SKILL.md +85 -0
  410. package/skills/netsuite/netsuite-sandbox-nonproduction-governance-skill/metadata.json +37 -0
  411. package/skills/netsuite/netsuite-sandbox-nonproduction-governance-skill/references/least-privilege.md +60 -0
  412. package/skills/netsuite/netsuite-sandbox-nonproduction-governance-skill/references/official-sources.md +13 -0
  413. package/skills/netsuite/netsuite-sandbox-nonproduction-governance-skill/references/release-drift.md +11 -0
  414. package/skills/netsuite/netsuite-sandbox-nonproduction-governance-skill/references/safety-checklist.md +17 -0
  415. package/skills/netsuite/netsuite-sandbox-nonproduction-governance-skill/references/sandbox-promotion-checklist.md +14 -0
  416. package/skills/netsuite/netsuite-saved-searches-workbook-skill/SKILL.md +86 -0
  417. package/skills/netsuite/netsuite-saved-searches-workbook-skill/metadata.json +34 -0
  418. package/skills/netsuite/netsuite-saved-searches-workbook-skill/references/least-privilege.md +65 -0
  419. package/skills/netsuite/netsuite-saved-searches-workbook-skill/references/official-sources.md +10 -0
  420. package/skills/netsuite/netsuite-saved-searches-workbook-skill/references/pii-field-catalog.md +14 -0
  421. package/skills/netsuite/netsuite-saved-searches-workbook-skill/references/release-drift.md +11 -0
  422. package/skills/netsuite/netsuite-saved-searches-workbook-skill/references/safety-checklist.md +18 -0
  423. package/skills/netsuite/netsuite-sdf-devops-release-skill/SKILL.md +87 -0
  424. package/skills/netsuite/netsuite-sdf-devops-release-skill/metadata.json +35 -0
  425. package/skills/netsuite/netsuite-sdf-devops-release-skill/references/least-privilege.md +64 -0
  426. package/skills/netsuite/netsuite-sdf-devops-release-skill/references/official-sources.md +10 -0
  427. package/skills/netsuite/netsuite-sdf-devops-release-skill/references/release-drift.md +11 -0
  428. package/skills/netsuite/netsuite-sdf-devops-release-skill/references/safety-checklist.md +18 -0
  429. package/skills/netsuite/netsuite-sdf-devops-release-skill/references/sdf-documentation-gates.md +13 -0
  430. package/skills/netsuite/netsuite-sso-oauth-tba-skill/SKILL.md +86 -0
  431. package/skills/netsuite/netsuite-sso-oauth-tba-skill/metadata.json +41 -0
  432. package/skills/netsuite/netsuite-sso-oauth-tba-skill/references/auth-compatibility-matrix.md +12 -0
  433. package/skills/netsuite/netsuite-sso-oauth-tba-skill/references/least-privilege.md +62 -0
  434. package/skills/netsuite/netsuite-sso-oauth-tba-skill/references/official-sources.md +17 -0
  435. package/skills/netsuite/netsuite-sso-oauth-tba-skill/references/release-drift.md +11 -0
  436. package/skills/netsuite/netsuite-sso-oauth-tba-skill/references/safety-checklist.md +18 -0
  437. package/skills/netsuite/netsuite-suitecloud-developer-skill/SKILL.md +86 -0
  438. package/skills/netsuite/netsuite-suitecloud-developer-skill/metadata.json +37 -0
  439. package/skills/netsuite/netsuite-suitecloud-developer-skill/references/least-privilege.md +61 -0
  440. package/skills/netsuite/netsuite-suitecloud-developer-skill/references/official-sources.md +12 -0
  441. package/skills/netsuite/netsuite-suitecloud-developer-skill/references/release-drift.md +11 -0
  442. package/skills/netsuite/netsuite-suitecloud-developer-skill/references/safety-checklist.md +17 -0
  443. package/skills/netsuite/netsuite-suitecloud-developer-skill/references/sdf-object-reference.md +14 -0
  444. package/skills/netsuite/netsuite-suiteflow-automation-skill/SKILL.md +85 -0
  445. package/skills/netsuite/netsuite-suiteflow-automation-skill/metadata.json +36 -0
  446. package/skills/netsuite/netsuite-suiteflow-automation-skill/references/least-privilege.md +65 -0
  447. package/skills/netsuite/netsuite-suiteflow-automation-skill/references/official-sources.md +12 -0
  448. package/skills/netsuite/netsuite-suiteflow-automation-skill/references/release-drift.md +11 -0
  449. package/skills/netsuite/netsuite-suiteflow-automation-skill/references/safety-checklist.md +18 -0
  450. package/skills/netsuite/netsuite-suiteflow-automation-skill/references/suiteflow-state-machine-guide.md +13 -0
  451. package/skills/netsuite/netsuite-suitefoundation-skill/SKILL.md +83 -0
  452. package/skills/netsuite/netsuite-suitefoundation-skill/metadata.json +35 -0
  453. package/skills/netsuite/netsuite-suitefoundation-skill/references/least-privilege.md +63 -0
  454. package/skills/netsuite/netsuite-suitefoundation-skill/references/official-sources.md +11 -0
  455. package/skills/netsuite/netsuite-suitefoundation-skill/references/release-drift.md +11 -0
  456. package/skills/netsuite/netsuite-suitefoundation-skill/references/safety-checklist.md +17 -0
  457. package/skills/netsuite/netsuite-suitefoundation-skill/references/suitefoundation-domain-map.md +14 -0
  458. package/skills/netsuite/netsuite-suitescript-secure-code-review-skill/SKILL.md +86 -0
  459. package/skills/netsuite/netsuite-suitescript-secure-code-review-skill/metadata.json +37 -0
  460. package/skills/netsuite/netsuite-suitescript-secure-code-review-skill/references/least-privilege.md +65 -0
  461. package/skills/netsuite/netsuite-suitescript-secure-code-review-skill/references/official-sources.md +12 -0
  462. package/skills/netsuite/netsuite-suitescript-secure-code-review-skill/references/oscp-vanguard-severity-map.md +14 -0
  463. package/skills/netsuite/netsuite-suitescript-secure-code-review-skill/references/release-drift.md +11 -0
  464. package/skills/netsuite/netsuite-suitescript-secure-code-review-skill/references/safety-checklist.md +18 -0
  465. package/skills/netsuite/netsuite-web-services-integration-skill/SKILL.md +85 -0
  466. package/skills/netsuite/netsuite-web-services-integration-skill/metadata.json +38 -0
  467. package/skills/netsuite/netsuite-web-services-integration-skill/references/auth-posture-matrix.md +14 -0
  468. package/skills/netsuite/netsuite-web-services-integration-skill/references/least-privilege.md +61 -0
  469. package/skills/netsuite/netsuite-web-services-integration-skill/references/official-sources.md +14 -0
  470. package/skills/netsuite/netsuite-web-services-integration-skill/references/release-drift.md +11 -0
  471. package/skills/netsuite/netsuite-web-services-integration-skill/references/safety-checklist.md +17 -0
  472. package/tests/fixtures/netsuite-maestro-routing/expected/001-happy-finance-setup.json +6 -0
  473. package/tests/fixtures/netsuite-maestro-routing/expected/002-happy-suitescript-security.json +6 -0
  474. package/tests/fixtures/netsuite-maestro-routing/expected/003-cross-domain-saved-search-subsidiary.json +12 -0
  475. package/tests/fixtures/netsuite-maestro-routing/inputs/001-happy-finance-setup.json +7 -0
  476. package/tests/fixtures/netsuite-maestro-routing/inputs/002-happy-suitescript-security.json +7 -0
  477. package/tests/fixtures/netsuite-maestro-routing/inputs/003-cross-domain-saved-search-subsidiary.json +7 -0
  478. package/tests/fixtures/netsuite-maestro-routing/taxonomy.json +232 -0
  479. package/tests/validate-catalog.py +1 -0
@@ -0,0 +1,536 @@
1
+ #!/usr/bin/env python3
2
+ """Generator: NetSuite agents + companion skills from per-agent JSON data files.
3
+
4
+ Reads every `scripts/netsuite_data/agents/*.json` (one file per agent, authored to
5
+ `tmp/netsuite-build/DATA-CONTRACT.md`) and emits, following the salesforce
6
+ static-review (T0) house style:
7
+
8
+ agents/netsuite/<id>/AGENT.md
9
+ agents/netsuite/<id>/metadata.json
10
+ agents/netsuite/<id>/LEAST-PRIVILEGES.md
11
+ agents/netsuite/<id>/harnesses/{codex.toml,copilot.agent.md,claude-code.agent.md,
12
+ cursor.agent.md,gemini.agent.md,kiro-ide.agent.md,
13
+ kiro-cli.agent.json}
14
+ agents/netsuite/<id>/README.md (maestro only)
15
+ skills/netsuite/<skill-id>/SKILL.md
16
+ skills/netsuite/<skill-id>/metadata.json
17
+ skills/netsuite/<skill-id>/references/*.md
18
+
19
+ Run: python3 scripts/gen_netsuite_agents.py
20
+ Then: python3 scripts/update-catalog-new-agents.py && npm run manifest:write:all
21
+ && python3 tests/validate-asset-integrity.py --write && npm run validate
22
+ """
23
+ from __future__ import annotations
24
+
25
+ import glob
26
+ import json
27
+ import os
28
+
29
+ ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
30
+ DATA_DIR = os.path.join(ROOT, "scripts", "netsuite_data", "agents")
31
+ DATE = "2026-06-09"
32
+ AUTHOR = "github: Raishin"
33
+ VERSION = "0.1.0"
34
+
35
+ # ---------------------------------------------------------------- helpers
36
+
37
+
38
+ def y(s: str) -> str:
39
+ """Safely quote a string as a single-line YAML/TOML/JSON double-quoted scalar."""
40
+ return json.dumps(s, ensure_ascii=False)
41
+
42
+
43
+ def snake(agent_id: str) -> str:
44
+ return agent_id.replace("-", "_")
45
+
46
+
47
+ def bullets(items) -> str:
48
+ return "\n".join(f"- {x}" for x in (items or []))
49
+
50
+
51
+ def numbered(items) -> str:
52
+ return "\n".join(f"{i}. {x}" for i, x in enumerate(items or [], 1))
53
+
54
+
55
+ def write(path: str, content: str) -> None:
56
+ os.makedirs(os.path.dirname(path), exist_ok=True)
57
+ with open(path, "w") as f:
58
+ f.write(content)
59
+ print(f" wrote {path.replace(ROOT + '/', '')}")
60
+
61
+
62
+ def load_agents() -> list[dict]:
63
+ files = sorted(glob.glob(os.path.join(DATA_DIR, "*.json")))
64
+ agents = []
65
+ for fp in files:
66
+ with open(fp) as f:
67
+ agents.append(json.load(f))
68
+ return agents
69
+
70
+
71
+ # ---------------------------------------------------------------- agent body (shared by harnesses)
72
+
73
+
74
+ def agent_body(a: dict) -> str:
75
+ """Canonical agent contract body — used in AGENT.md and all markdown harnesses."""
76
+ aid = a["id"]
77
+ skill = a.get("companion_skill")
78
+ parts = [
79
+ f"# {a['name']}",
80
+ "",
81
+ f"Use this canonical agent only for `{aid}` work.",
82
+ "",
83
+ ]
84
+ if a.get("is_maestro"):
85
+ parts += [
86
+ "## Required Skills",
87
+ "",
88
+ "Before answering, read and follow:",
89
+ "",
90
+ "- `skills/cross-functional/netsuite-routing-protocol/SKILL.md`",
91
+ "",
92
+ ]
93
+ elif skill:
94
+ parts += [
95
+ "## Required Skill",
96
+ "",
97
+ "Before answering, read and follow:",
98
+ "",
99
+ f"- `skills/netsuite/{skill['id']}/SKILL.md`",
100
+ "",
101
+ f"Load files under `skills/netsuite/{skill['id']}/references/` only when the task "
102
+ "needs that reference. Do not dump reference text into the response.",
103
+ "",
104
+ ]
105
+ parts += ["## Mission", "", a.get("mission", a.get("focus", "")), ""]
106
+ if a.get("scope_owned"):
107
+ parts += ["## Scope Owned", "", bullets(a["scope_owned"]), ""]
108
+ if a.get("out_of_scope"):
109
+ parts += ["## Out of Scope", "", bullets(a["out_of_scope"]), ""]
110
+ if a.get("cert_alignment"):
111
+ parts += ["## NetSuite Certification / Role Alignment", "", a["cert_alignment"], ""]
112
+ if a.get("required_inputs"):
113
+ parts += ["## Required Inputs", "", bullets(a["required_inputs"]), ""]
114
+ parts += ["## Operating Rules", "", bullets(a.get("operating_rules", [])), ""]
115
+ if a.get("evidence_requirements"):
116
+ parts += ["## Evidence Requirements", "", bullets(a["evidence_requirements"]), ""]
117
+ parts += ["## Refusal Triggers", "", bullets(a.get("refusal_triggers", [])), ""]
118
+ parts += ["## Escalation Triggers", "", bullets(a.get("escalation_triggers", [])), ""]
119
+ parts += [
120
+ "## Permission / Tooling Posture",
121
+ "",
122
+ (
123
+ "Static review only. Never invokes NetSuite SuiteTalk/REST/SOAP APIs, SuiteScript, "
124
+ "SDF, or account credentials. Works from sanitized configuration excerpts. Does not "
125
+ "approve, deploy, or mutate any NetSuite account. Routes every live-account change to "
126
+ "`netsuite-live-org-mutation-guard-agent` with a named human decision owner."
127
+ ),
128
+ "",
129
+ "## Output Format",
130
+ "",
131
+ numbered([
132
+ (
133
+ "Verdict (Critical / High / Medium / Low / Unknown — Unknown when account type, "
134
+ "subsidiary, or material facts are absent)"
135
+ ),
136
+ "Brutal assessment (what is wrong or unproven)",
137
+ (
138
+ "Facts (label each [LIVE_EVIDENCE] / [REPOSITORY_EVIDENCE] / [USER_PROVIDED] / "
139
+ "[OFFICIAL_DOCUMENTATION] / [INFERENCE] / [UNVERIFIED])"
140
+ ),
141
+ "Assumptions",
142
+ "Findings with risk ratings",
143
+ "Adversarial stress test",
144
+ "Least-privilege posture (custom role, never Administrator)",
145
+ "Safe next actions",
146
+ "Escalation trigger (named target agent + human owner)",
147
+ "Open questions",
148
+ ]),
149
+ ]
150
+ return "\n".join(parts)
151
+
152
+
153
+ # ---------------------------------------------------------------- agent files
154
+
155
+
156
+ def agent_md(a: dict) -> str:
157
+ return (
158
+ "---\n"
159
+ "metadata:\n"
160
+ f' author: "{AUTHOR}"\n'
161
+ f' version: "{VERSION}"\n'
162
+ "---\n\n"
163
+ f"# {a['name']}\n\n"
164
+ f"> Agent for `{a['id']}`. {a['summary']}\n\n"
165
+ "## Harness Variants\n\n"
166
+ "- `harnesses/codex.toml` — Codex native agent configuration.\n"
167
+ "- `harnesses/copilot.agent.md` — GitHub Copilot / VS Code custom agent definition.\n"
168
+ "- `harnesses/claude-code.agent.md` — Claude Code Markdown-family adapter.\n"
169
+ "- `harnesses/cursor.agent.md` — Cursor Markdown-family adapter.\n"
170
+ "- `harnesses/gemini.agent.md` — Gemini CLI Markdown-family adapter.\n"
171
+ "- `harnesses/kiro-ide.agent.md` — Kiro IDE Markdown-family adapter.\n"
172
+ "- `harnesses/kiro-cli.agent.json` — Kiro CLI JSON adapter.\n\n"
173
+ "## Canonical Contract\n\n"
174
+ f"{agent_body(a)}\n"
175
+ )
176
+
177
+
178
+ def agent_metadata(a: dict) -> str:
179
+ companion = []
180
+ if a.get("companion_skill"):
181
+ companion = [a["companion_skill"]["id"]]
182
+ aid = a["id"]
183
+ hv = {
184
+ "codex": f"agents/netsuite/{aid}/harnesses/codex.toml",
185
+ "copilot": f"agents/netsuite/{aid}/harnesses/copilot.agent.md",
186
+ "claude-code": f"agents/netsuite/{aid}/harnesses/claude-code.agent.md",
187
+ "cursor": f"agents/netsuite/{aid}/harnesses/cursor.agent.md",
188
+ "gemini": f"agents/netsuite/{aid}/harnesses/gemini.agent.md",
189
+ "kiro-ide": f"agents/netsuite/{aid}/harnesses/kiro-ide.agent.md",
190
+ "kiro-cli": f"agents/netsuite/{aid}/harnesses/kiro-cli.agent.json",
191
+ }
192
+ return json.dumps({
193
+ "id": aid,
194
+ "name": a["name"],
195
+ "type": "agent",
196
+ "provider": "netsuite",
197
+ "harnesses": ["codex", "copilot", "claude-code", "cursor", "gemini", "kiro"],
198
+ "harness_variants": hv,
199
+ "summary": a["summary"],
200
+ "source_type": a.get("source_type", "original"),
201
+ **({"source_attribution": a["source_attribution"]} if a.get("source_attribution") else {}),
202
+ "official_docs": a["official_docs"],
203
+ "security_notes": a["security_notes"],
204
+ "last_verified": DATE,
205
+ "path": f"agents/netsuite/{aid}/",
206
+ "companion_skills": companion,
207
+ "execution_tier": "static-review",
208
+ "lifecycle": "experimental",
209
+ "author": AUTHOR,
210
+ "version": VERSION,
211
+ }, indent=2) + "\n"
212
+
213
+
214
+ def least_privileges_md(a: dict) -> str:
215
+ lp = a.get("least_privilege", {}) or {}
216
+ perms = lp.get("permissions", [])
217
+ perm_lines = "\n".join(
218
+ f"- **{p.get('name','?')}** ({p.get('level','View')}) — {p.get('why','')}" for p in perms
219
+ ) or "- No standing NetSuite permissions required (static review of sanitized excerpts only)."
220
+ forbidden = bullets(lp.get("forbidden", ["Administrator role"])) or "- Administrator role"
221
+ skill = a.get("companion_skill")
222
+ companion_line = (
223
+ f"`{skill['id']}` — {skill.get('name','companion skill')}" if skill else "None (router/structural role)."
224
+ )
225
+ return (
226
+ f"# Least-privilege NetSuite posture for {a['name']}\n\n"
227
+ "## Execution tier\n\n"
228
+ "**T0 — Static Review**\n\n"
229
+ 'Rationale: `execution_tier: "static-review"` declared in `metadata.json`. This agent '
230
+ "reviews sanitized configuration excerpts and never holds a live NetSuite session.\n\n"
231
+ "## Identity model\n\n"
232
+ "No live NetSuite identity is required for the agent itself. When a human operator acts on "
233
+ "this agent's review, they SHOULD use the least-privilege custom role below — never the "
234
+ "Administrator role.\n\n"
235
+ "## Recommended custom role\n\n"
236
+ f"- **Custom role name:** {lp.get('custom_role_name', 'NetSuite Reviewer (custom)')}\n"
237
+ f"- **Copy from standard role:** {lp.get('based_on_standard_role', 'a relevant standard role')} "
238
+ "(NetSuite guidance: start from a copy of a standard role, then remove unneeded permissions).\n"
239
+ f"- **Modules in scope:** {', '.join(lp.get('modules', []) or ['scoped to remit'])}\n"
240
+ f"- **Two-Factor Authentication required:** {'Yes' if lp.get('requires_2fa') else 'Per account policy'}\n\n"
241
+ "### Minimal permissions\n\n"
242
+ f"{perm_lines}\n\n"
243
+ "## Forbidden\n\n"
244
+ f"{forbidden}\n\n"
245
+ "## Blast-radius bound\n\n"
246
+ "Even if fully compromised, this agent cannot mutate a NetSuite account: it has no live "
247
+ "session, no API tokens, and no SDF deploy rights. It can only produce review text.\n\n"
248
+ "## Refusal triggers\n\n"
249
+ f"{bullets(a.get('refusal_triggers', []))}\n\n"
250
+ "## Escalation path\n\n"
251
+ "Route all live-account changes to `netsuite-live-org-mutation-guard-agent` with a named "
252
+ "human decision owner and a structured case capsule.\n\n"
253
+ "## Role creation steps\n\n"
254
+ + numbered([
255
+ "In the target SANDBOX, copy the standard role named above to a new custom role.",
256
+ "Remove every permission not listed under Minimal permissions.",
257
+ "Add only the listed permissions at the stated access level.",
258
+ "Confirm the role is NOT Administrator and grants no global/cross-subsidiary access beyond remit.",
259
+ "Enable 2FA enforcement if the role touches privileged permissions.",
260
+ "Test in sandbox, then assign to the integration/review user; monitor for least-privilege drift.",
261
+ ])
262
+ + "\n\n## Companion skill\n\n"
263
+ f"{companion_line}\n"
264
+ )
265
+
266
+
267
+ # --------------------- harness adapters
268
+
269
+
270
+ def codex_toml(a: dict) -> str:
271
+ skill = a.get("companion_skill")
272
+ rules = "\n".join(a.get("operating_rules", [])[:8]) or "- Static review only."
273
+ instr = (
274
+ (f"Load and follow the bound `{skill['id']}` skill first.\n\n" if skill else "")
275
+ + "Token discipline:\n"
276
+ "- Read only SKILL.md first; load references only when the task requires them.\n"
277
+ "- Keep answers compact: verdict, assessment, facts, assumptions, findings, stress test, "
278
+ "least-privilege posture, safe next actions, escalation, open questions.\n\n"
279
+ f"Role focus: {a.get('focus', a['summary'])}\n\n"
280
+ "Safety contract:\n"
281
+ f"{rules}\n"
282
+ "- Static review only; never invokes NetSuite APIs, SuiteScript, SDF, or credentials.\n"
283
+ "- Never depends on the Administrator role; recommends least-privilege custom roles.\n"
284
+ "- Routes all live-account changes to netsuite-live-org-mutation-guard-agent.\n"
285
+ "- Rate every finding Critical / High / Medium / Low / Unknown."
286
+ )
287
+ lines = [
288
+ f"name = {y(snake(a['id']))}",
289
+ f"description = {y(a['summary'])}",
290
+ 'model = "gpt-5.5"',
291
+ 'model_reasoning_effort = "high"',
292
+ 'sandbox_mode = "read-only"',
293
+ "",
294
+ 'developer_instructions = """',
295
+ instr,
296
+ '"""',
297
+ "",
298
+ "[metadata]",
299
+ f'author = "{AUTHOR}"',
300
+ f'version = "{VERSION}"',
301
+ ]
302
+ if skill:
303
+ lines += ["", "[[skills.config]]", f'path = "skills/netsuite/{skill["id"]}/SKILL.md"', "enabled = true"]
304
+ return "\n".join(lines) + "\n"
305
+
306
+
307
+ def md_harness(a: dict) -> str:
308
+ return f"---\nname: {y(a['name'])}\ndescription: {y(a['summary'])}\n---\n\n{agent_body(a)}\n"
309
+
310
+
311
+ def copilot_md(a: dict) -> str:
312
+ fm = (
313
+ "---\n"
314
+ f"description: {y(a['summary'])}\n"
315
+ f"name: {y(a['name'])}\n"
316
+ "tools:\n"
317
+ ' - "read"\n - "search"\n - "search/codebase"\n - "web/fetch"\n'
318
+ "disable-model-invocation: false\n"
319
+ "user-invocable: true\n"
320
+ "---\n\n"
321
+ )
322
+ return fm + agent_body(a) + "\n"
323
+
324
+
325
+ def kiro_cli_json(a: dict) -> str:
326
+ return json.dumps({
327
+ "name": a["id"],
328
+ "description": a["summary"],
329
+ "prompt": agent_body(a),
330
+ }, indent=2, ensure_ascii=False) + "\n"
331
+
332
+
333
+ def maestro_readme(a: dict, agents: list[dict]) -> str:
334
+ rows = []
335
+ for x in agents:
336
+ if x.get("is_maestro") or x.get("is_live_guard"):
337
+ continue
338
+ dk = x.get("domain_key", x["id"])
339
+ kws = ", ".join(x.get("routing_keywords", [])[:6])
340
+ rows.append(f"| `{dk}` | `{x['id']}` | {kws} |")
341
+ table = "\n".join(rows)
342
+ return (
343
+ "# NetSuite Maestro Agent\n\n"
344
+ "Entry point for the NetSuite domain. Classifies a NetSuite matter and routes it to the "
345
+ "right specialist agent, or gates it to the live-operation guard. Classification and "
346
+ "routing only — never executes or recommends executing a live NetSuite mutation.\n\n"
347
+ "---\n\n"
348
+ "## How routing works\n\n"
349
+ "### Required skills\n\n"
350
+ "- `skills/cross-functional/netsuite-routing-protocol/SKILL.md`\n\n"
351
+ "### Routing modes\n\n"
352
+ "- `single` — one specialist owns the matter.\n"
353
+ "- `parallel (N)` — multiple domains co-own; escalate conflicts.\n"
354
+ "- `live-guard-gate` — any live-account mutation intent; routes to the live-operation guard.\n"
355
+ "- `unclassified` — insufficient signal; ask for sanitized evidence.\n\n"
356
+ "### Escalation gates\n\n"
357
+ "- Financial close / posting / revenue recognition impact → audit-controls-sox agent.\n"
358
+ "- Cross-subsidiary (OneWorld) boundary risk → oneworld-multisubsidiary agent.\n"
359
+ "- AI Connector / MCP tool scope → ai-connector-mcp agent.\n"
360
+ "- Any live mutation → netsuite-live-org-mutation-guard-agent (named human owner).\n\n"
361
+ "---\n\n"
362
+ "## The NetSuite domain taxonomy\n\n"
363
+ "| Domain | Primary agent | Typical signals |\n|---|---|---|\n"
364
+ f"{table}\n\n"
365
+ "Structural roles (excluded from keyword routing):\n\n"
366
+ "| Role | Agent | Function |\n|---|---|---|\n"
367
+ "| Maestro | `netsuite-maestro-agent` | Classify + route only |\n"
368
+ "| Live Guard | `netsuite-live-org-mutation-guard-agent` | Gate all live mutations |\n\n"
369
+ "---\n\n"
370
+ "## What the maestro will refuse\n\n"
371
+ "- Requests for account credentials, tokens, or the Administrator role.\n"
372
+ "- Direct execution of any live NetSuite mutation.\n"
373
+ "- Claiming a Coming-Soon certification is available.\n\n"
374
+ "---\n\n"
375
+ "## Eval coverage\n\n"
376
+ "Routing is covered by `tests/fixtures/netsuite-maestro-routing/`. Run "
377
+ "`npm run validate:maestro-routing`.\n\n"
378
+ "---\n\n"
379
+ "Part of the Vanguard Frontier Agentic NetSuite portfolio.\n"
380
+ )
381
+
382
+
383
+ # ---------------------------------------------------------------- skill files
384
+
385
+
386
+ def skill_md(a: dict) -> str:
387
+ s = a["companion_skill"]
388
+ refs = s.get("references", [])
389
+ ref_lines = "\n".join(
390
+ f"- [{r['file']}](references/{r['file']}) — {r.get('purpose','')}" for r in refs
391
+ ) or "- (no additional references)"
392
+ frontmatter = "---\n" + f"name: {s['id']}\n" + f"description: {y(s['description'])}\n"
393
+ if a.get("source_type") == "adapted":
394
+ frontmatter += "license: UPL-1.0\n"
395
+ return frontmatter + (
396
+ "allowed-tools: Read Grep Glob\n"
397
+ "metadata:\n"
398
+ f' author: "{AUTHOR}"\n'
399
+ f' version: "{VERSION}"\n'
400
+ f' updated: "{DATE}"\n'
401
+ f" category: {s.get('category', 'compliance')}\n"
402
+ " lifecycle: experimental\n"
403
+ " execution_tier: static-review\n"
404
+ " mcp_servers: []\n"
405
+ " oauth_scopes: []\n"
406
+ " run_as_permissions:\n"
407
+ " required: []\n"
408
+ " denied: []\n"
409
+ "---\n\n"
410
+ f"# {s['name']}\n\n"
411
+ "## Purpose\n\n"
412
+ f"{a.get('focus', a['summary'])} T0 static review — no NetSuite account connection required; "
413
+ "output is a draft for human review.\n\n"
414
+ "## When This Skill Owns the Task\n\n"
415
+ f"{bullets(s.get('when', []))}\n\n"
416
+ "## Recommended Workflow\n\n"
417
+ f"{numbered(s.get('workflow_steps', []))}\n\n"
418
+ "## Evidence Hierarchy\n\n"
419
+ f"{s.get('evidence_hierarchy_note', 'LIVE_EVIDENCE > REPOSITORY_EVIDENCE > USER_PROVIDED > OFFICIAL_DOCUMENTATION > INFERENCE > UNVERIFIED > BLOCKED')}\n\n"
420
+ "## Safety Checklist\n\n"
421
+ f"{bullets(s.get('safety_checklist', []))}\n\n"
422
+ "## Rules — Hard-Stop Constraints\n\n"
423
+ "- Static review only; never connect to a live NetSuite account or invoke APIs/SuiteScript/SDF.\n"
424
+ "- Never request or accept credentials, tokens, or secrets.\n"
425
+ "- Never depend on the Administrator role; recommend least-privilege custom roles (note 2FA).\n"
426
+ "- Prefer OAuth 2.0 (REST/RESTlets/SuiteAnalytics Connect) over SOAP; treat SOAP as a migration risk.\n"
427
+ "- Never claim a Coming-Soon certification is available.\n\n"
428
+ "## Refusal Triggers\n\n"
429
+ f"{bullets(a.get('refusal_triggers', []))}\n\n"
430
+ "## T0 Contract\n\n"
431
+ "No account connection, no OAuth, no secrets. Output is draft review text for a human owner.\n\n"
432
+ "## Security Notes\n\n"
433
+ f"{a['security_notes']}\n\n"
434
+ "## Reference File Index\n\n"
435
+ f"{ref_lines}\n"
436
+ )
437
+
438
+
439
+ def skill_metadata(a: dict) -> str:
440
+ s = a["companion_skill"]
441
+ obj = {
442
+ "id": s["id"],
443
+ "name": s["name"],
444
+ "type": "skill",
445
+ "provider": "netsuite",
446
+ "harnesses": ["claude-code", "codex", "cursor", "gemini", "kiro", "other"],
447
+ "summary": s["description"][:300] if len(s["description"]) >= 20 else a["summary"],
448
+ "source_type": a.get("source_type", "original"),
449
+ "category": s.get("category", "compliance"),
450
+ "execution_tier": "static-review",
451
+ "oauth_scopes": [],
452
+ "mcp_servers": [],
453
+ "run_as_permissions": {},
454
+ "sandbox_only": False,
455
+ "production_allowed": True,
456
+ "official_docs": a["official_docs"],
457
+ "security_notes": a["security_notes"],
458
+ "last_verified": DATE,
459
+ "path": f"skills/netsuite/{s['id']}",
460
+ "author": AUTHOR,
461
+ "version": VERSION,
462
+ }
463
+ if a.get("source_attribution"):
464
+ obj["source_attribution"] = a["source_attribution"]
465
+ return json.dumps(obj, indent=2, ensure_ascii=False) + "\n"
466
+
467
+
468
+ def reference_file(a: dict, r: dict) -> str:
469
+ """Generate a focused reference doc."""
470
+ fname = r["file"]
471
+ purpose = r.get("purpose", "")
472
+ if fname == "official-sources.md":
473
+ body = "\n".join(f"- {u}" for u in a["official_docs"])
474
+ return f"# Official Sources\n\n{purpose}\n\nVerified {DATE} against official Oracle/NetSuite documentation:\n\n{body}\n"
475
+ if fname == "least-privilege.md":
476
+ return least_privileges_md(a) # reuse the same content for the skill reference
477
+ if fname == "safety-checklist.md":
478
+ s = a["companion_skill"]
479
+ return f"# Safety Checklist\n\n{purpose}\n\n{bullets(s.get('safety_checklist', []))}\n\n## Refusal triggers\n\n{bullets(a.get('refusal_triggers', []))}\n"
480
+ if fname == "release-drift.md":
481
+ return (
482
+ f"# Release Drift\n\n{purpose}\n\nNetSuite releases biannually. Content verified {DATE}.\n\n"
483
+ "Release-sensitive items to re-verify each release:\n\n"
484
+ "- SOAP web services removal timeline (REST + OAuth 2.0 recommended for new integrations "
485
+ "from 2026.1; new SOAP integrations blocked at 2027.1).\n"
486
+ "- Certification availability (AI Specialist/Professional and BI & Reporting Professional "
487
+ "are Coming Soon — re-check status).\n"
488
+ "- AI Connector / MCP permission names and role restrictions.\n"
489
+ )
490
+ # topic-specific or unknown reference: emit a focused stub seeded from the agent content
491
+ return (
492
+ f"# {fname.replace('.md','').replace('-',' ').title()}\n\n{purpose}\n\n"
493
+ f"Scope: {a.get('focus', a['summary'])}\n\n"
494
+ f"{bullets(a.get('scope_owned', []))}\n"
495
+ )
496
+
497
+
498
+ # ---------------------------------------------------------------- build
499
+
500
+
501
+ def build() -> None:
502
+ agents = load_agents()
503
+ if not agents:
504
+ print("No agent data files found in scripts/netsuite_data/agents/. Nothing to do.")
505
+ return
506
+ print(f"Generating {len(agents)} NetSuite agents + companion skills...\n")
507
+ for a in agents:
508
+ aid = a["id"]
509
+ adir = os.path.join(ROOT, "agents", "netsuite", aid)
510
+ hdir = os.path.join(adir, "harnesses")
511
+ print(f"[{aid}]")
512
+ write(os.path.join(adir, "AGENT.md"), agent_md(a))
513
+ write(os.path.join(adir, "metadata.json"), agent_metadata(a))
514
+ write(os.path.join(adir, "LEAST-PRIVILEGES.md"), least_privileges_md(a))
515
+ write(os.path.join(hdir, "codex.toml"), codex_toml(a))
516
+ write(os.path.join(hdir, "copilot.agent.md"), copilot_md(a))
517
+ write(os.path.join(hdir, "claude-code.agent.md"), md_harness(a))
518
+ write(os.path.join(hdir, "cursor.agent.md"), md_harness(a))
519
+ write(os.path.join(hdir, "gemini.agent.md"), md_harness(a))
520
+ write(os.path.join(hdir, "kiro-ide.agent.md"), md_harness(a))
521
+ write(os.path.join(hdir, "kiro-cli.agent.json"), kiro_cli_json(a))
522
+ if a.get("is_maestro"):
523
+ write(os.path.join(adir, "README.md"), maestro_readme(a, agents))
524
+ # companion skill
525
+ s = a.get("companion_skill")
526
+ if s:
527
+ sdir = os.path.join(ROOT, "skills", "netsuite", s["id"])
528
+ write(os.path.join(sdir, "SKILL.md"), skill_md(a))
529
+ write(os.path.join(sdir, "metadata.json"), skill_metadata(a))
530
+ for r in s.get("references", []):
531
+ write(os.path.join(sdir, "references", r["file"]), reference_file(a, r))
532
+ print("\nNetSuite agents + skills generated.")
533
+
534
+
535
+ if __name__ == "__main__":
536
+ build()
@@ -56,6 +56,7 @@ const taxonomy = [
56
56
  { category: 'Infrastructure as Code', providers: ['terraform'] },
57
57
  { category: 'AI & Compute', providers: ['nvidia'] },
58
58
  { category: 'Developer Platforms', providers: ['backstage', 'dotnet', 'generic', 'multi-cloud'] },
59
+ { category: 'ERP & Finance', providers: ['netsuite', 'accounting', 'finance'] },
59
60
  { category: 'Business Functions', providers: ['salesforce', 'legal', 'hr', 'marketing'] },
60
61
  ];
61
62