$npx -y skills add lubusIN/frappe-skills --skill frappe-routerRoute to the appropriate Frappe skill based on task type. Use as the entry point when working on Frappe projects to determine which specialized skill to apply.
| 1 | # Frappe Router |
| 2 | |
| 3 | Route to the appropriate Frappe skill based on your task. |
| 4 | |
| 5 | ## When to use |
| 6 | |
| 7 | - First step when starting any Frappe-related work |
| 8 | - To determine which specialized skill applies to your task |
| 9 | |
| 10 | ## Procedure |
| 11 | |
| 12 | ### 0) Identify task type |
| 13 | |
| 14 | | Task | Skill | |
| 15 | |------|-------| |
| 16 | | Understand project structure, versions, apps | → `frappe-project-triage` | |
| 17 | | Scaffold new app, hooks, architecture, background jobs | → `frappe-app-development` | |
| 18 | | Create/modify DocTypes, fields, controllers | → `frappe-doctype-development` | |
| 19 | | Build REST/RPC APIs, webhooks, integrations | → `frappe-api-development` | |
| 20 | | Customize Desk UI, form scripts, list views, JS API | → `frappe-desk-customization` | |
| 21 | | Build Vue 3 frontends with Frappe UI, portals | → `frappe-frontend-development` | |
| 22 | | UI/UX patterns from CRM/Helpdesk/HRMS | → `frappe-ui-patterns` | |
| 23 | | Create print formats, email templates, Jinja, PDFs | → `frappe-printing-templates` | |
| 24 | | Build reports (Builder, Query, Script) | → `frappe-reports` | |
| 25 | | Create public web forms for data collection | → `frappe-web-forms` | |
| 26 | | Write or run tests | → `frappe-testing` | |
| 27 | | Set up dev environment with Docker/FM | → `frappe-manager` | |
| 28 | | Build CRM/Helpdesk/enterprise systems | → `frappe-enterprise-patterns` | |
| 29 | |
| 30 | ### 1) Run triage first (recommended) |
| 31 | |
| 32 | Before deep work, run `frappe-project-triage` to understand: |
| 33 | - Project type (bench/FM/standalone) |
| 34 | - Frappe version |
| 35 | - Installed apps |
| 36 | - Available tooling |
| 37 | |
| 38 | ### 2) Combine skills as needed |
| 39 | |
| 40 | Complex tasks may require multiple skills: |
| 41 | - New app = `frappe-app-development` + `frappe-doctype-development` + `frappe-api-development` + `frappe-testing` |
| 42 | - Feature with UI = `frappe-doctype-development` + `frappe-desk-customization` + `frappe-api-development` |
| 43 | - Custom frontend = `frappe-frontend-development` + `frappe-api-development` |
| 44 | - Document workflow = `frappe-doctype-development` + `frappe-printing-templates` + `frappe-reports` |
| 45 | - Enterprise app = `frappe-enterprise-patterns` + `frappe-doctype-development` |
| 46 | |
| 47 | ## Quick decision tree |
| 48 | |
| 49 | ``` |
| 50 | Is this about understanding the project? |
| 51 | → frappe-project-triage |
| 52 | |
| 53 | Is this about creating a new app or app architecture? |
| 54 | → frappe-app-development |
| 55 | |
| 56 | Is this about data models or DocTypes? |
| 57 | → frappe-doctype-development |
| 58 | |
| 59 | Is this about APIs or external access? |
| 60 | → frappe-api-development |
| 61 | |
| 62 | Is this about Desk UI, form scripts, or client-side JS? |
| 63 | → frappe-desk-customization |
| 64 | |
| 65 | Is this about a Vue 3 frontend or portal? |
| 66 | → frappe-frontend-development |
| 67 | |
| 68 | Is this about UI/UX patterns or app design? |
| 69 | → frappe-ui-patterns |
| 70 | |
| 71 | Is this about print formats, PDFs, or Jinja templates? |
| 72 | → frappe-printing-templates |
| 73 | |
| 74 | Is this about reports or data analysis views? |
| 75 | → frappe-reports |
| 76 | |
| 77 | Is this about public web forms? |
| 78 | → frappe-web-forms |
| 79 | |
| 80 | Is this about testing? |
| 81 | → frappe-testing |
| 82 | |
| 83 | Is this about local dev environment? |
| 84 | → frappe-manager |
| 85 | |
| 86 | Is this a complex enterprise system? |
| 87 | → frappe-enterprise-patterns |
| 88 | ``` |
| 89 | |
| 90 | ## Guardrails |
| 91 | |
| 92 | - **Always run triage first** before making code changes to unknown projects |
| 93 | - **Check Frappe version** before recommending features (API availability varies significantly between v13, v14, v15, v16) |
| 94 | - **Don't assume ERPNext** - many projects use Frappe Framework without ERPNext |
| 95 | - **Verify site context** - commands like `bench migrate` affect specific sites |
| 96 | |
| 97 | ## Common Mistakes |
| 98 | |
| 99 | | Mistake | Why It Fails | Fix | |
| 100 | |---------|--------------|-----| |
| 101 | | Skipping project triage | Applying wrong patterns for version | Always run triage first | |
| 102 | | Using ERPNext-specific code in Frappe-only projects | Module not found errors | Check installed apps first | |
| 103 | | Wrong skill for task | Incomplete implementation | Match task type to skill carefully | |
| 104 | | Ignoring version differences | Deprecated/missing APIs | Check version compatibility in skill references | |
| 105 | | Working on wrong site | Changes don't appear | Always specify `--site` flag | |
| 106 | | Using vanilla JS/jQuery for frontends | Ecosystem mismatch | Use Frappe UI (Vue 3) via `frappe-frontend-development` | |
| 107 | | Custom app shell for CRUD apps | Inconsistent UX | Follow CRM/Helpdesk patterns via `frappe-enterprise-patterns` | |