/SKILL.md
Complete Frappe Framework development reference for building ERPNext apps. Use when creating custom DocTypes, controllers, hooks, REST APIs, form scripts, background jobs, or any Frappe/ERPNext development. Contains full API documentation for Document, Database, Controllers, Hooks, REST API, Form Scripts, Testing, and common patterns.
npx skillsauth add 6missedcalls/erpnext-skill erpnext-frappe-devInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Complete documentation for building applications on Frappe Framework / ERPNext. This skill contains comprehensive API documentation that Claude Code needs to build any Frappe app from scratch.
Use this skill when:
bench new-app my_app
bench --site mysite install-app my_app
hooks.py — App-level configuration and event handlers{doctype}.py — Python controller (server-side logic){doctype}.js — Form script (client-side logic){doctype}.json — DocType definition| Reference | Contents |
|-----------|----------|
| reference/frappe-framework-complete.md | MAIN REFERENCE — Full API docs for Document, Database, Controllers, Hooks, REST API, Form Scripts, Testing |
| reference/document-api.md | Document CRUD operations |
| reference/database-api.md | Database queries and transactions |
| reference/hooks-reference.md | hooks.py configuration |
| reference/rest-api.md | REST API endpoints |
| reference/form-scripts.md | Client-side JavaScript |
| reference/index.md | ERPNext module documentation index |
| reference/accounting/ | Accounting module reference |
| reference/stock/ | Inventory/Stock module reference |
| reference/manufacturing/ | Manufacturing module reference |
| reference/crm/ | CRM module reference |
| reference/hr-payroll/ | HR & Payroll module reference |
| reference/api/ | REST & Developer API reference |
# DocType "Customer" creates:
# - Database table `tabCustomer`
# - Python controller customer.py
# - Form script customer.js
doc = frappe.get_doc("Customer", "CUST-001")
doc.customer_name = "Updated Name"
doc.save()
class Customer(Document):
def validate(self):
if not self.email:
frappe.throw("Email required")
def on_submit(self):
self.create_linked_records()
# hooks.py
doc_events = {
"Sales Order": {
"on_submit": "my_app.events.on_sales_order_submit"
}
}
frappe.get_doc(doctype, name) # Get document
frappe.new_doc(doctype) # Create new
doc.insert() # Insert to DB
doc.save() # Update in DB
doc.delete() # Delete
doc.db_set(field, value) # Direct DB update
frappe.db.get_list(doctype, filters, fields) # With permissions
frappe.db.get_all(doctype, filters, fields) # All records
frappe.db.get_value(doctype, name, field) # Single value
frappe.db.set_value(doctype, name, field, val) # Direct update
frappe.db.exists(doctype, name) # Check exists
frappe.db.count(doctype, filters) # Count records
autoname → before_insert → validate → before_save →
on_update → after_insert → on_submit → on_cancel
GET /api/resource/{doctype} # List
GET /api/resource/{doctype}/{name} # Read
POST /api/resource/{doctype} # Create
PUT /api/resource/{doctype}/{name} # Update
DELETE /api/resource/{doctype}/{name} # Delete
POST /api/method/{dotted.path} # Custom method
frappe.ui.form.on('DocType', {
refresh(frm) { },
validate(frm) { },
fieldname(frm) { } // Field change
});
Start with: reference/frappe-framework-complete.md
This file contains 20KB+ of comprehensive documentation covering all Frappe APIs with code examples.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.