SKILL.md
Frappe Full-Stack App Builder
Global Rules
- Use bare
bench. Not./env/bin/bench. Not a full path. - Do not run
which bench,bench --version,bench --help, or check frappe version. No discovery commands. - Do not delegate bench detection to a subagent. Run
ls apps/ sites/ Procfileyourself. - Do not create DocType folders with
mkdir. Frappe creates them viabench migrate. - Run
bench startin a background process only. - Before running
bench start, check if it's already running in an existing terminal. Do not start a second instance. - Always pass
--site <site>explicitly to bench commands. Never run barebench migrate.
Flow Selection
Determine which flow applies, then read ONLY the relevant file:
Creating a brand new app
Read [new-app.md](./references/new-app.md) — covers bench setup, app scaffolding, site creation, and installation.
Working on an existing app
Read [existing-app.md](./references/existing-app.md) — covers finding the bench, locating the app, confirming site, and extending features.
Feature References
Load ONLY the references needed for the current task:
| Topic | When to load | File |
|---|---|---|
| Site management | Finding/creating/managing sites | [site-management.md](./references/site-management.md) |
| DocTypes | Creating/modifying DocTypes, fields, naming | [doctypes.md](./references/doctypes.md) |
| Controllers | Document lifecycle, server logic | [controllers.md](./references/controllers.md) |
| Whitelisted APIs | REST endpoints, @frappe.whitelist() |
[api.md](./references/api.md) |
| Database & ORM | frappe.db, queries, raw SQL |
[database.md](./references/database.md) |
| Caching | Redis, frappe.cache |
[caching.md](./references/caching.md) |
| Realtime | WebSocket, publish_realtime |
[realtime.md](./references/realtime.md) |
| Background jobs | frappe.enqueue, scheduled jobs |
[background-jobs.md](./references/background-jobs.md) |
| Hooks | hooks.py patterns |
[hooks.md](./references/hooks.md) |
| Permissions | Roles, DocType permissions, has_permission |
[permissions.md](./references/permissions.md) |
| Testing | Writing & running tests | [testing.md](./references/testing.md) |
| Frontend & UI | Desk UI, Vue SPA, portal pages | [frontend.md](./references/frontend.md) (router → 3 sub-files) |
| Bench CLI | All bench commands reference | [bench-operations.md](./references/bench-operations.md) |