Skip to content

Commit e0c2721

Browse files
FreekHeijtingclaude
andcommitted
docs: V2.6 validation complete - INDEX.md, README.md, ROADMAP.md
- INDEX.md rebuilt with all 53 skills cataloged by category - README.md updated for v2.0 (53 skills, 7 categories, MIT, ~85% coverage) - ROADMAP.md finalized: V2.0 100% complete - Validation passed: all SKILL.md under 500 lines, no erpnext- refs, all frontmatter valid V2.0 upgrade complete. 53 deterministic skills for Frappe Framework v14-v16. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent a90b121 commit e0c2721

3 files changed

Lines changed: 207 additions & 167 deletions

File tree

INDEX.md

Lines changed: 146 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,109 @@
1-
# ERPNext Skills Package - Index
2-
3-
> Complete collection of 28 deterministic skills for generating flawless ERPNext/Frappe code.
4-
5-
---
6-
7-
## Package Overview
8-
9-
| Category | Skills | Description |
10-
|----------|:------:|-------------|
11-
| [Syntax](#syntax-skills) | 8 | Language patterns and API syntax |
12-
| [Core](#core-skills) | 3 | Database, Permissions, API fundamentals |
13-
| [Implementation](#implementation-skills) | 8 | Step-by-step development workflows |
14-
| [Error Handling](#error-handling-skills) | 7 | Robust error handling patterns |
15-
| [Agents](#agent-skills) | 2 | Intelligent code interpretation & validation |
16-
| **Total** | **28** | |
17-
18-
**Compatibility**: Frappe/ERPNext v14, v15, v16
19-
20-
---
21-
22-
## Syntax Skills
23-
24-
Foundation skills that define HOW to write code.
25-
26-
| Skill | Description | Key Topics |
27-
|-------|-------------|------------|
28-
| `frappe-syntax-clientscripts` | Client-side JavaScript patterns | frappe.ui.form, triggers, field manipulation |
29-
| `frappe-syntax-serverscripts` | Server Script sandbox patterns | Restricted Python, frappe namespace, doc events |
30-
| `frappe-syntax-controllers` | Document Controller patterns | Lifecycle hooks, autoname, UUID (v16), flags |
31-
| `frappe-syntax-hooks` | hooks.py configuration | doc_events, override_doctype_class, scheduler |
32-
| `frappe-syntax-whitelisted` | @frappe.whitelist() methods | API endpoints, permissions, async patterns |
33-
| `frappe-syntax-jinja` | Jinja templating patterns | Print formats, web templates, filters |
34-
| `frappe-syntax-scheduler` | Scheduled jobs patterns | Cron syntax, background jobs, tick intervals |
35-
| `frappe-syntax-customapp` | Custom app structure | Module creation, fixtures, patches |
36-
37-
---
38-
39-
## Core Skills
40-
41-
Cross-cutting concerns that apply to all development.
42-
43-
| Skill | Description | Key Topics |
44-
|-------|-------------|------------|
45-
| `frappe-core-database` | Database operations | frappe.db API, transactions, SQL patterns |
46-
| `frappe-core-permissions` | Permission system | Roles, user permissions, data masking (v16) |
47-
| `frappe-core-api` | API design patterns | REST, RPC, webhooks, authentication |
48-
49-
---
50-
51-
## Implementation Skills
52-
53-
Step-by-step workflows for common development tasks.
54-
55-
| Skill | Description | When to Use |
56-
|-------|-------------|-------------|
57-
| `frappe-impl-clientscripts` | Client Script workflows | Form customization, UX enhancement |
58-
| `frappe-impl-serverscripts` | Server Script workflows | Quick server-side logic without custom app |
59-
| `frappe-impl-controllers` | Controller workflows | Full DocType customization |
60-
| `frappe-impl-hooks` | hooks.py workflows | Extending existing DocTypes |
61-
| `frappe-impl-whitelisted` | API endpoint workflows | Building custom API endpoints |
62-
| `frappe-impl-jinja` | Template workflows | Print formats, emails, reports |
63-
| `frappe-impl-scheduler` | Scheduled job workflows | Background processing, automation |
64-
| `frappe-impl-customapp` | Custom app workflows | Building complete Frappe apps |
65-
66-
---
67-
68-
## Error Handling Skills
69-
70-
Robust error handling patterns for production code.
71-
72-
| Skill | Description | Covers |
73-
|-------|-------------|--------|
74-
| `frappe-errors-clientscripts` | Client-side error handling | JavaScript errors, API call failures |
75-
| `frappe-errors-serverscripts` | Server Script error handling | Sandbox limitations, exception handling |
76-
| `frappe-errors-controllers` | Controller error handling | Validation, transaction failures |
77-
| `frappe-errors-hooks` | hooks.py error handling | Hook failures, event handling |
78-
| `frappe-errors-database` | Database error handling | Deadlocks, constraints, transactions |
79-
| `frappe-errors-permissions` | Permission error handling | Access denied, graceful degradation |
80-
| `frappe-errors-api` | API error handling | HTTP errors, response formatting |
81-
82-
---
83-
84-
## Agent Skills
85-
86-
Intelligent skills that orchestrate other skills.
87-
88-
| Skill | Description | Use Case |
89-
|-------|-------------|----------|
90-
| `frappe-agent-interpreter` | Requirements → Technical specs | Vague requests like "make invoice auto-calculate" |
91-
| `frappe-agent-validator` | Code validation against all skills | Verify code before deployment |
1+
# Frappe Claude Skill Package — Index
2+
3+
> 53 deterministic skills for Frappe Framework v14-v16 development and operations.
4+
5+
## Quick Stats
6+
7+
| Category | Count | Purpose |
8+
|----------|:-----:|---------|
9+
| syntax/ | 11 | Code syntax reference |
10+
| core/ | 7 | Cross-cutting concerns |
11+
| impl/ | 13 | Implementation workflows |
12+
| errors/ | 7 | Error handling |
13+
| ops/ | 8 | Operations & deployment |
14+
| agents/ | 5 | Intelligent agents |
15+
| testing/ | 2 | Quality & CI/CD |
16+
| **Total** | **53** | |
17+
18+
## Skills by Category
19+
20+
### syntax/ — Code Syntax Reference
21+
22+
| Skill | Description |
23+
|-------|-------------|
24+
| [frappe-syntax-clientscripts](skills/source/syntax/frappe-syntax-clientscripts/) | Use when writing client-side JavaScript for ERPNext/Frappe form events, field manipulation, server calls, or child table handling in v14/v15/v16. |
25+
| [frappe-syntax-controllers](skills/source/syntax/frappe-syntax-controllers/) | Use when writing Python Document Controllers for ERPNext/Frappe DocTypes. |
26+
| [frappe-syntax-customapp](skills/source/syntax/frappe-syntax-customapp/) | Use when building Frappe custom apps from scratch. |
27+
| [frappe-syntax-doctypes](skills/source/syntax/frappe-syntax-doctypes/) | Use when creating or modifying DocType JSON definitions, choosing fieldtypes, configuring naming rules, adding child tables, or setting up tree structures. |
28+
| [frappe-syntax-hooks](skills/source/syntax/frappe-syntax-hooks/) | Use when configuring Frappe hooks.py for app events, scheduler tasks, document events, fixtures, boot session, jenv customization, or website routing. |
29+
| [frappe-syntax-hooks-events](skills/source/syntax/frappe-syntax-hooks-events/) | Use when implementing document lifecycle hooks via doc_events in hooks.py, understanding event execution order, or extending/overriding document behavior from another app. |
30+
| [frappe-syntax-jinja](skills/source/syntax/frappe-syntax-jinja/) | Use when writing Jinja templates for ERPNext/Frappe Print Formats, Email Templates, and Portal Pages. |
31+
| [frappe-syntax-reports](skills/source/syntax/frappe-syntax-reports/) | Use when building Query Reports, Script Reports, or configuring Report Builder, including chart data integration. |
32+
| [frappe-syntax-scheduler](skills/source/syntax/frappe-syntax-scheduler/) | Use when configuring scheduler events and background jobs in Frappe/ERPNext v14/v15/v16. |
33+
| [frappe-syntax-serverscripts](skills/source/syntax/frappe-syntax-serverscripts/) | Use when writing Python code for ERPNext/Frappe Server Scripts including Document Events, API endpoints, Scheduler Events, and Permission Queries. |
34+
| [frappe-syntax-whitelisted](skills/source/syntax/frappe-syntax-whitelisted/) | Use when creating Frappe Whitelisted Methods (Python API endpoints) for v14/v15/v16. |
35+
36+
### core/ — Cross-Cutting Concerns
37+
38+
| Skill | Description |
39+
|-------|-------------|
40+
| [frappe-core-api](skills/source/core/frappe-core-api/) | Use when building ERPNext/Frappe API integrations (v14/v15/v16) including REST API, RPC API, authentication, webhooks, and rate limiting. |
41+
| [frappe-core-cache](skills/source/core/frappe-core-cache/) | Use when implementing Redis caching, cache invalidation, or distributed locking in Frappe. |
42+
| [frappe-core-database](skills/source/core/frappe-core-database/) | Use when performing database operations in ERPNext/Frappe v14-v16. |
43+
| [frappe-core-files](skills/source/core/frappe-core-files/) | Use when handling file uploads, attachments, private/public file access, or S3 storage configuration. |
44+
| [frappe-core-notifications](skills/source/core/frappe-core-notifications/) | Use when implementing email notifications, system alerts, Assignment Rules, Auto Repeat, or ToDo items. |
45+
| [frappe-core-permissions](skills/source/core/frappe-core-permissions/) | Use when implementing the Frappe/ERPNext permission system. |
46+
| [frappe-core-workflow](skills/source/core/frappe-core-workflow/) | Use when creating or modifying Frappe Workflows, defining states and transitions, adding action conditions, or troubleshooting workflow permission errors. |
47+
48+
### impl/ — Implementation Workflows
49+
50+
| Skill | Description |
51+
|-------|-------------|
52+
| [frappe-impl-clientscripts](skills/source/impl/frappe-impl-clientscripts/) | Use when implementing client-side form features in Frappe/ERPNext: field visibility, cascading filters, calculated fields, custom buttons, server calls, form validation, child table logic, debugging. |
53+
| [frappe-impl-controllers](skills/source/impl/frappe-impl-controllers/) | Use when building Document Controllers in a custom Frappe app: file creation, lifecycle hooks, validation, autoname, submittable workflows, controller override. |
54+
| [frappe-impl-customapp](skills/source/impl/frappe-impl-customapp/) | Use when building a custom Frappe app from scratch. |
55+
| [frappe-impl-hooks](skills/source/impl/frappe-impl-hooks/) | Use when implementing hooks.py configurations in a Frappe custom app. |
56+
| [frappe-impl-integrations](skills/source/impl/frappe-impl-integrations/) | Use when implementing OAuth providers, Connected Apps, Webhooks, Payment Gateways, or Data Import/Export in Frappe. |
57+
| [frappe-impl-jinja](skills/source/impl/frappe-impl-jinja/) | Use when building Jinja templates in Frappe: Print Formats, Email Templates, Notification templates, Portal Pages, and custom Jinja methods. |
58+
| [frappe-impl-reports](skills/source/impl/frappe-impl-reports/) | Use when building Script Reports, Query Reports, dashboard charts, or Number Cards in ERPNext. |
59+
| [frappe-impl-scheduler](skills/source/impl/frappe-impl-scheduler/) | Use when implementing scheduled tasks and background jobs in Frappe v14/v15/v16. |
60+
| [frappe-impl-serverscripts](skills/source/impl/frappe-impl-serverscripts/) | Use when implementing server-side features via Setup > Server Script: document validation, auto-fill, API endpoints, scheduled tasks, permission queries. |
61+
| [frappe-impl-ui-components](skills/source/impl/frappe-impl-ui-components/) | Use when building custom dialogs, extending List View, creating Page controllers, or adding Kanban/Calendar views and realtime updates. |
62+
| [frappe-impl-website](skills/source/impl/frappe-impl-website/) | Use when building portal pages, Web Forms, website routes, or configuring themes and SEO in Frappe. |
63+
| [frappe-impl-whitelisted](skills/source/impl/frappe-impl-whitelisted/) | Use when building API endpoints with @frappe.whitelist() in Frappe. |
64+
| [frappe-impl-workflow](skills/source/impl/frappe-impl-workflow/) | Use when implementing document Workflows, approval chains, or state-based transitions in Frappe. |
65+
66+
### errors/ — Error Handling
67+
68+
| Skill | Description |
69+
|-------|-------------|
70+
| [frappe-errors-api](skills/source/errors/frappe-errors-api/) | Use when debugging or handling API errors in Frappe/ERPNext v14/v15/v16. |
71+
| [frappe-errors-clientscripts](skills/source/errors/frappe-errors-clientscripts/) | Use when debugging or preventing errors in Frappe Client Scripts. |
72+
| [frappe-errors-controllers](skills/source/errors/frappe-errors-controllers/) | Use when debugging or preventing errors in Frappe Document Controllers. |
73+
| [frappe-errors-database](skills/source/errors/frappe-errors-database/) | Use when handling database errors in Frappe/ERPNext. |
74+
| [frappe-errors-hooks](skills/source/errors/frappe-errors-hooks/) | Use when debugging hooks.py errors in Frappe/ERPNext. |
75+
| [frappe-errors-permissions](skills/source/errors/frappe-errors-permissions/) | Use when debugging or handling permission errors in Frappe/ERPNext. |
76+
| [frappe-errors-serverscripts](skills/source/errors/frappe-errors-serverscripts/) | Use when debugging or preventing errors in Frappe Server Scripts. |
77+
78+
### ops/ — Operations & Deployment
79+
80+
| Skill | Description |
81+
|-------|-------------|
82+
| [frappe-ops-app-lifecycle](skills/source/ops/frappe-ops-app-lifecycle/) | Use when scaffolding a new Frappe app, configuring app settings, building assets, running tests, deploying, updating, or publishing to marketplace. |
83+
| [frappe-ops-backup](skills/source/ops/frappe-ops-backup/) | Use when configuring backups, restoring sites, encrypting backup files, scheduling automated backups, or planning disaster recovery. |
84+
| [frappe-ops-bench](skills/source/ops/frappe-ops-bench/) | Use when running bench commands, managing sites, configuring multi-tenancy, or setting up domains. |
85+
| [frappe-ops-cloud](skills/source/ops/frappe-ops-cloud/) | Use when working with Frappe Cloud, Press API, provisioning sites, or managing benches on Frappe Cloud infrastructure. |
86+
| [frappe-ops-deployment](skills/source/ops/frappe-ops-deployment/) | Use when deploying Frappe/ERPNext to production, configuring Nginx or Supervisor, setting up Docker, enabling SSL, or hardening security. |
87+
| [frappe-ops-frontend-build](skills/source/ops/frappe-ops-frontend-build/) | Use when configuring frontend asset bundling, migrating from build.json (v14) to esbuild (v15+), or troubleshooting SCSS/CSS compilation. |
88+
| [frappe-ops-performance](skills/source/ops/frappe-ops-performance/) | Use when tuning MariaDB, configuring Redis memory, sizing Gunicorn workers, setting up CDN, or profiling slow queries. |
89+
| [frappe-ops-upgrades](skills/source/ops/frappe-ops-upgrades/) | Use when upgrading Frappe/ERPNext between major versions (v14 to v15, v15 to v16), troubleshooting failed migrations, or planning rollback. |
90+
91+
### agents/ — Intelligent Agents
92+
93+
| Skill | Description |
94+
|-------|-------------|
95+
| [frappe-agent-architect](skills/source/agents/frappe-agent-architect/) | Use when designing multi-app Frappe architectures, deciding whether to split functionality into separate apps, or implementing cross-app communication patterns. |
96+
| [frappe-agent-debugger](skills/source/agents/frappe-agent-debugger/) | Use when debugging Frappe errors, using bench console for live inspection, analyzing tracebacks, or reading Frappe log files. |
97+
| [frappe-agent-interpreter](skills/source/agents/frappe-agent-interpreter/) | Use when receiving vague or unclear ERPNext/Frappe development requests that need interpretation. |
98+
| [frappe-agent-migrator](skills/source/agents/frappe-agent-migrator/) | Use when migrating a Frappe app between major versions, detecting breaking API changes, or resolving post-migration errors. |
99+
| [frappe-agent-validator](skills/source/agents/frappe-agent-validator/) | Use when reviewing or validating Frappe/ERPNext code against best practices and common pitfalls. |
100+
101+
### testing/ — Quality & CI/CD
102+
103+
| Skill | Description |
104+
|-------|-------------|
105+
| [frappe-testing-cicd](skills/source/testing/frappe-testing-cicd/) | Use when setting up CI/CD pipelines for Frappe apps, configuring GitHub Actions test workflows, or adding linting and security scanning. |
106+
| [frappe-testing-unit](skills/source/testing/frappe-testing-unit/) | Use when writing unit tests, integration tests, creating test fixtures, or running tests with bench run-tests. |
92107

93108
---
94109

@@ -104,65 +119,70 @@ What do you need to build?
104119
│ └─► syntax-serverscripts + impl-serverscripts + errors-serverscripts
105120
106121
├─► Full DocType customization
107-
│ └─► syntax-controllers + impl-controllers + errors-controllers
108-
│ + database + permissions
122+
│ └─► syntax-controllers + syntax-doctypes + impl-controllers + errors-controllers
123+
│ + core-database + core-permissions
109124
110125
├─► Extend existing ERPNext DocType
111-
│ └─► syntax-hooks + impl-hooks + errors-hooks
126+
│ └─► syntax-hooks + syntax-hooks-events + impl-hooks + errors-hooks
112127
113128
├─► Build API endpoints
114-
│ └─► syntax-whitelisted + impl-whitelisted + api-patterns + errors-api
129+
│ └─► syntax-whitelisted + impl-whitelisted + core-api + errors-api
115130
116131
├─► Print formats / Templates
117132
│ └─► syntax-jinja + impl-jinja
118133
134+
├─► Reports & Dashboards
135+
│ └─► syntax-reports + impl-reports
136+
119137
├─► Scheduled automation
120138
│ └─► syntax-scheduler + impl-scheduler + syntax-hooks
121139
122140
├─► Complete custom app
123-
│ └─► syntax-customapp + impl-customapp + (all relevant skills)
141+
│ └─► syntax-customapp + impl-customapp + ops-app-lifecycle
142+
143+
├─► Workflows & Approvals
144+
│ └─► core-workflow + impl-workflow
145+
146+
├─► External integrations
147+
│ └─► impl-integrations + core-api + errors-api
148+
149+
├─► UI components (dialogs, lists, realtime)
150+
│ └─► impl-ui-components + impl-clientscripts
151+
152+
├─► Website / Portal
153+
│ └─► impl-website + syntax-jinja + impl-jinja
154+
155+
├─► Deploy to production
156+
│ └─► ops-deployment + ops-bench + ops-performance + ops-backup
157+
158+
├─► CI/CD & Testing
159+
│ └─► testing-unit + testing-cicd
160+
161+
├─► Version upgrade (v14→v15→v16)
162+
│ └─► ops-upgrades + agent-migrator
163+
164+
├─► Multi-app architecture
165+
│ └─► agent-architect + ops-app-lifecycle
166+
167+
├─► Debug an error
168+
│ └─► agent-debugger + relevant errors/* skill
124169
125170
└─► Don't know where to start?
126-
└─► code-interpreter (will recommend skills)
171+
└─► agent-interpreter (will analyze your request and recommend skills)
127172
```
128173

129174
---
130175

131-
## Version-Specific Features
132-
133-
### v14 Only
134-
- Basic Server Scripts
135-
- Standard permissions
136-
137-
### v15+
138-
- Type annotations
139-
- `before_discard` / `on_discard` hooks
140-
- `Desk User` role
141-
142-
### v16+
143-
- **UUID autoname** - Globally unique document IDs
144-
- **Data Masking** - Field-level data protection
145-
- Chrome PDF rendering
146-
- 60-second scheduler tick (was 4 minutes)
147-
- `extend_doctype_class` hook
148-
149-
---
150-
151176
## Related Documentation
152177

153178
| Document | Description |
154179
|----------|-------------|
155-
| [DEPENDENCIES.md](docs/DEPENDENCIES.md) | Skill dependency matrix |
156-
| [INSTALL.md](INSTALL.md) | Installation instructions |
180+
| [README.md](README.md) | Project overview and installation |
157181
| [ROADMAP.md](ROADMAP.md) | Project status and history |
158182
| [LESSONS.md](LESSONS.md) | Technical discoveries |
183+
| [WAY_OF_WORK.md](WAY_OF_WORK.md) | 7-phase methodology |
184+
| [CHANGELOG.md](CHANGELOG.md) | Version history |
159185

160186
---
161187

162-
## Contributing
163-
164-
This package is maintained by OpenAEC Foundation. For issues or contributions, see the GitHub repository.
165-
166-
---
167-
168-
*ERPNext Skills Package v1.0 | Last updated: 2026-01-18*
188+
*Frappe Claude Skill Package v2.0 | 53 skills | Last updated: 2026-03-20*

0 commit comments

Comments
 (0)