Scaffold a new Frappe Framework v15 application with multi-layer architecture. Triggers: "create frappe app", "new frappe app", "scaffold frappe", "frappe app structure", "/frappe-app". Creates production-ready app structure with service layer, repository pattern, proper module organization, and v15 best practices.
View on GitHubFebruary 2, 2026
Select agents to install to:
npx add-skill https://github.com/sergio-bershadsky/ai/blob/main/plugins/frappe-dev/skills/frappe-app/SKILL.md -a claude-code --skill frappe-appInstallation paths:
.claude/skills/frappe-app/# Frappe App Scaffolding Create a professional Frappe Framework v15 application with multi-layer architecture following enterprise best practices. ## When to Use - Starting a new Frappe/ERPNext custom application - Need production-ready app structure with proper separation of concerns - Want multi-layer architecture (Controller → Service → Repository) - Building apps that require clean, maintainable code organization ## Arguments ``` /frappe-app <app_name> [--module <module_name>] ``` **Examples:** ``` /frappe-app inventory_management /frappe-app hr_extension --module Human Resources ``` ## Procedure ### Step 1: Gather Requirements Ask the user for: 1. **App name** (snake_case, e.g., `inventory_pro`) 2. **App title** (human-readable, e.g., "Inventory Pro") 3. **Primary module name** (e.g., "Inventory", "HR", "Sales") 4. **Brief description** of the app's purpose Verify the current working directory is within a `frappe-bench/apps` folder: ```bash pwd ls -la ``` ### Step 2: Generate App Structure Create the following multi-layer architecture: ``` <app_name>/ ├── <app_name>/ │ ├── __init__.py │ ├── hooks.py # App hooks and integrations │ ├── modules.txt # Module definitions │ ├── patches.txt # Database migrations │ ├── <module_name>/ # Primary module │ │ ├── __init__.py │ │ ├── doctype/ # DocType definitions │ │ │ └── __init__.py │ │ ├── api/ # REST API endpoints (v2) │ │ │ └── __init__.py │ │ ├── services/ # Business logic layer │ │ │ └── __init__.py │ │ ├── repositories/ # Data access layer │ │ │ └── __init__.py │ │ └── report/ # Custom reports │ │ └── __init__.py │ ├── public/ │ │ ├── css/ │ │ └── js/ │ ├── templates/ │ │ ├── includes/ │ │ └── pages/ │ ├── www/ # Portal pages │ └── tests/ │ ├── __init__.p