Erpnext Impl Controllers
This skill automates ERPNext implementation and controller management, streamlining setup and ensuring consistent configurations for faster deployments.
Install on your platform
We auto-selected Claude Code based on this skill’s supported platforms.
Run in terminal (recommended)
claude mcp add erpnext-impl-controllers npx -- -y @trustedskills/erpnext-impl-controllers
Or manually add to ~/.claude/settings.json
{
"mcpServers": {
"erpnext-impl-controllers": {
"command": "npx",
"args": [
"-y",
"@trustedskills/erpnext-impl-controllers"
]
}
}
}Requires Claude Code (claude CLI). Run claude --version to verify your install.
About This Skill
What it does
This skill assists in determining how to implement server-side DocType logic within ERPNext, specifically guiding users on whether to use a Controller or a Server Script. It provides decision points and examples for implementing custom logic like importing external libraries (requests, pandas, numpy), handling complex transactions, extending DocTypes, or performing validations. The skill emphasizes the distinction between Controllers (for full Python power in custom apps) and Server Scripts (for quick, no-code solutions).
When to use it
- When needing to import external libraries like
requests,pandas, ornumpyinto ERPNext logic. - For implementing complex multi-document transactions that require rollback functionality.
- To extend or override standard ERPNext DocTypes using the
override_doctype_classin hooks.py. - When needing to perform validations or calculations before saving a document.
- If you need to trigger actions after a document is saved (e.g., sending emails, linking documents).
Key capabilities
- Provides guidance on choosing between Controllers and Server Scripts for ERPNext DocType logic.
- Offers a decision tree to help determine the appropriate hook (
validate,on_update,before_submit, etc.) based on desired functionality. - Explains the critical difference in behavior when modifying
selfwithinvalidate(changes are saved) versuson_update(changes are not saved and require usingfrappe.db.set_value). - Covers common implementation patterns, including validation with error handling.
Example prompts
- "How do I import the 'requests' library into an ERPNext DocType?"
- "Should I use a Controller or Server Script to validate data before saving?"
- "What’s the difference between the
validateandon_updatehooks in ERPNext?"
Tips & gotchas
- Critical: Changes made to
selfwithin theon_updatehook are not saved. Usefrappe.db.set_valueinstead. - This skill focuses on helping you decide how to implement logic, not providing the syntax itself; refer to
erpnext-syntax-controllersfor that. - Refer to the complete decision tree at
references/decision-tree.mdfor a comprehensive overview of all available hooks.
Tags
TrustedSkills Verification
Unlike other registries that point to live repositories, TrustedSkills pins every skill to a verified commit hash. This protects you from malicious updates — what you install today is exactly what was reviewed and verified.
Security Audits
| Gen Agent Trust Hub | Pass |
| Socket | Pass |
| Snyk | Pass |
🌐 Community
Passed automated security scans.