frappe-impl-customapp

Create a custom Frappe app with bench scaffolding, DocTypes, hooks, patches, and fixtures.

163|53|Updated Jan 14, 2026
One-click install
npx skills add https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-customapp-impertio-studio
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: frappe-impl-customapp
Source: https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package/tree/main/skills/source/impl/frappe-impl-customapp
Command: npx skills add https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-impl-customapp-impertio-studio

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you build a new Frappe app reliably so your custom DocTypes, hooks, patches, fixtures, and packaging work end-to-end on fresh sites. It prevents common production failures caused by incorrect bench setup, broken hook conventions, unsafe patches, or fixtures that overwrite the wrong data.

Core Features & Use Cases

  • Custom app creation workflow: Guides you through bench new-app, validating __version__, and configuring pyproject.toml dependencies correctly for Frappe/ERPNext.
  • DocType & module organization: Helps you decide modules, create DocType controllers/files, and keep modules.txt aligned with your directory structure.
  • Hooks, patches, and fixtures done safely: Implements v14/v15 doc_events vs v16 extend_doctype_class, shows correct patch timing, and configures fixtures to export only your app’s configuration.
  • Development + distribution lifecycle: Covers migrate/build/clear-cache/test loops, app install on another site, and semantic versioning for upgrades.

Quick Start

Create a new Frappe custom app named my_app and tell me exactly what to put in my_app/pyproject.toml, my_app/hooks.py, modules.txt, patches.txt, and how to structure a new DocType with hooks, patches, and fixtures.

Frequently Asked Questions about frappe-impl-customapp

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a custom Frappe app from scratch that won't break on fresh sites?

To build a custom Frappe app reliably, use `bench new-app` for scaffolding, configure `pyproject.toml` dependencies correctly by excluding frappe/erpnext, and align `modules.txt` with your directory structure to ensure end-to-end functionality on fresh sites.

What's the correct way to configure fixtures in a Frappe custom app?

Configuring fixtures in a Frappe custom app requires setting controlled export filters in `hooks.py` to ensure only your app’s specific configuration is exported, preventing production failures caused by overwriting the wrong data on fresh sites.

How do Frappe hooks and patches differ between v14, v15, and v16?

Frappe v14 and v15 use `doc_events` for hooks, while v16 introduces `extend_doctype_class` extension patterns; safe data migrations across these versions require correct patch timing and guard clauses for deterministic behavior.

How do I manage safe data migrations when upgrading a Frappe DocType?

Safe data migrations in Frappe require deterministic migration behavior using batching, commit strategies, and schema guards, alongside correct patch timing and guard clauses to prevent broken updates during the migrate and build lifecycle.

Why should frappe and erpnext be excluded from PyPI dependencies in my custom app?

Frappe and erpnext must be excluded from PyPI dependencies in `pyproject.toml` because the bench environment already provides them; including them causes dependency conflicts and breaks app installation on fresh sites.

What is the best way to structure modules and DocTypes in a new Frappe app?

Structuring modules and DocTypes in a new Frappe app involves deciding module organization, creating DocType controllers and files, and keeping `modules.txt` strictly aligned with your directory structure to prevent packaging and migration errors.