frappe-syntax-customapp

Scaffold version-aware Frappe custom apps with correct build and migration configuration.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Frappe custom apps often fail in production due to incorrect scaffolding, missing required build configuration, misconfigured module registration, and broken migration patterns. This Skill prevents those issues by providing deterministic, version-aware syntax and guardrails for building and migrating Frappe custom apps from scratch.

Core Features & Use Cases

  • Version-aware app scaffolding: Guides correct app structure for Frappe v14 (setup.py) and v15/v16+ (pyproject.toml with flit_core).
  • Critical build and install correctness: Ensures the app has the required version and correct pyproject.toml rules so the app can be built and installed reliably.
  • Safe data migration strategy: Specifies how to use patches.txt with pre_model_sync vs post_model_sync, batching, commits, and re-run semantics to reduce migration risk.
  • Correct module and fixture exports: Enforces modules.txt registration and fixture filtering rules so Custom Field and Property Setter definitions deploy consistently across sites.

Quick Start

Use the frappe-syntax-customapp skill to generate a correct v15+ Frappe custom app scaffold plan with the required pyproject.toml, hooks.py settings (required_apps and fixtures), and patches.txt structure for your targeted migration.

Frequently Asked Questions about frappe-syntax-customapp

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

FAQPage Schema
How do I scaffold a Frappe custom app correctly for v15 or v16?

To scaffold a Frappe custom app for v15 or v16, you must use a pyproject.toml file configured with flit_core, include a mandatory __version__ file, and register DocType modules in modules.txt to ensure reliable builds and installations.

What is the difference between pre_model_sync and post_model_sync patches in Frappe?

Pre_model_sync patches execute before schema updates, while post_model_sync patches run after, ensuring data modifications occur safely against the updated DocType schema during a Frappe migration.

How do I export Custom Fields and Property Setters using Frappe fixtures?

Export Custom Fields and Property Setters by configuring fixture filters in hooks.py, which ensures these definitions deploy consistently across different Frappe sites.

Why does my Frappe custom app fail during production migration?

Frappe custom app migrations fail due to missing __version__ files, incorrect pyproject.toml flit configuration, unregistered modules, or poorly placed patches lacking commit discipline and batching.

Can I use setup.py for Frappe v15 custom app scaffolding?

No, Frappe v15 and v16 require pyproject.toml with flit_core for app scaffolding, whereas setup.py is only applicable for the older v14 framework.

What is the best way to write production-safe patches for Frappe schema updates?

Write production-safe Frappe patches by placing them correctly in patches.txt, implementing batching, enforcing commit discipline, and utilizing re-run semantics to reduce migration risk.