Frappe_Claude_Skill_Package frappe-agent-interpreter
install
source · Clone the upstream repo
git clone https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/OpenAEC-Foundation/Frappe_Claude_Skill_Package "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/source/agents/frappe-agent-interpreter" ~/.claude/skills/openaec-foundation-frappe-claude-skill-package-frappe-agent-interpreter && rm -rf "$T"
manifest:
skills/source/agents/frappe-agent-interpreter/SKILL.mdsource content
Frappe Code Interpreter Agent
Transforms vague or incomplete Frappe/ERPNext development requests into clear, actionable technical specifications mapped to the full 61-skill catalog.
Purpose: Bridge the gap between "what the user wants" and "what needs to be built"
When to Use This Agent
USER REQUEST ANALYSIS | +-- Request is vague/incomplete | "Make the invoice do something when submitted" | --> USE THIS AGENT | +-- Request lacks technical specifics | "Add approval before order confirmation" | --> USE THIS AGENT | +-- Multiple implementation paths possible | "Automate inventory updates" | --> USE THIS AGENT | +-- Request has clear technical specs already | "Create Server Script on validate for Sales Invoice" | --> Skip agent, use relevant frappe-* skills directly
Interpretation Workflow
STEP 1: EXTRACT INTENT - What is the business problem? - What should happen? When? To what data? - Who should be affected (roles/users)? STEP 2: IDENTIFY TRIGGER CONTEXT - Document lifecycle event? (save/submit/cancel) - User action? (button click, field change) - Time-based? (daily, hourly, cron) - External event? (webhook, API call) STEP 3: DETERMINE MECHANISM - Client Script, Server Script, or Controller? - Hooks configuration needed? - Custom app required? - v16 extend_doctype_class applicable? STEP 4: GENERATE SPECIFICATION - DocType(s), event/trigger, mechanism, data flow - Error handling requirements - Version compatibility (v14/v15/v16) STEP 5: MAP TO SKILLS - List required frappe-* skills from full catalog - Note dependencies between skills
See references/workflow.md for detailed steps.
Mechanism Selection Matrix
| Requirement Pattern | Mechanism | Custom App? |
|---|---|---|
| "Auto-calculate on form" | Client Script + Server Script | No |
| "Validate before save" | Server Script (validate) | No |
| "Send notification after submit" | Server Script (on_submit) | No |
| "Add button to form" | Client Script | No |
| "Scheduled report/sync" | hooks.py scheduler_events | Yes |
| "Filter list per user" | Server Script (Permission Query) | No |
| "Custom REST API" | Server Script (API) or @frappe.whitelist() | Depends |
| "Complex transaction with rollback" | Controller | Yes |
| "External library needed (requests)" | Controller | Yes |
| "Approval workflow" | Built-in Workflow + optional Server Script | No |
| "Print format customization" | Jinja template (Print Format) | No |
| "Custom report" | Script Report or Query Report | Depends |
| "Background processing" | frappe.enqueue() | Yes |
| "File upload handling" | Controller + File hooks | Yes |
| "Cache invalidation" | Cache API + hooks | Yes |
| "Website/portal page" | Web template + routing | Yes |
| "UI component (dashboard, etc.)" | Page or Custom Page | Yes |
Clarifying Questions Framework
1. WHAT Questions
- What DocType(s) are involved?
- What data needs to change?
- What should the outcome be?
2. WHEN Questions
- On form load? On field change? Before/after save?
- Before/after submit? On a schedule? Button click?
3. WHO Questions
- All users? Specific roles? Document owner only?
4. WHERE Questions
- In the form (UI)? Database only? Report? External system?
5. ERROR Questions
- Block the operation? Show warning? Log silently?
6. VERSION Questions (v16 considerations)
- Target single version or multi-version compatibility?
- Can we use
(v16) or needextend_doctype_class
(v14+)?doc_events - Type annotations desired? (v16 best practice)
Output Specification Template
ALWAYS generate specifications in this format:
## Technical Specification ### Summary [One sentence describing what will be built] ### Business Requirement [Original user request, clarified] ### Implementation | Aspect | Value | |--------|-------| | **DocType(s)** | [List] | | **Trigger** | [Event/action] | | **Mechanism** | [Client Script / Server Script / Controller / etc.] | | **Version** | [v14 / v15 / v16 / all] | ### Data Flow 1. [Step 1] 2. [Step 2] ### Error Handling [Strategy] ### Required Skills - [ ] frappe-skill-name - for [purpose] ### Validation Criteria [How to verify it works]
Complete Skill Catalog (61 skills)
Syntax Layer (11 skills)
| Skill | Use For |
|---|---|
| Client Script JS syntax |
| Server Script Python sandbox syntax |
| Controller class syntax |
| hooks.py configuration syntax |
| Document event hook syntax |
| @frappe.whitelist() syntax |
| Jinja template syntax |
| Scheduler/enqueue syntax |
| App structure syntax |
| DocType JSON definition syntax |
| Report definition syntax |
Core Layer (7 skills)
| Skill | Use For |
|---|---|
| Database operations, ORM, raw SQL |
| Permission system, roles, rules |
| REST API, resource API |
| Workflow engine, states, transitions |
| Email, push, system notifications |
| File upload, attachment, storage |
| Redis cache, cache invalidation |
Implementation Layer (12 skills)
| Skill | Use For |
|---|---|
| Client Script implementation patterns |
| Server Script implementation patterns |
| Controller implementation patterns |
| Hook implementation patterns |
| Whitelisted method patterns |
| Jinja template patterns |
| Scheduled task/background job patterns |
| Custom app development workflow |
| Report building patterns |
| Workflow implementation patterns |
| Website/portal development |
| UI component patterns |
| External system integration |
Error Layer (7 skills)
| Skill | Use For |
|---|---|
| Client Script error patterns |
| Server Script error patterns |
| Controller error patterns |
| Hook error patterns |
| API error patterns |
| Permission error patterns |
| Database error patterns |
Ops Layer (8 skills)
| Skill | Use For |
|---|---|
| Bench CLI commands |
| Production deployment |
| Backup and restore |
| Performance tuning |
| Version upgrade procedures |
| Cloud hosting (FC, AWS, etc.) |
| App versioning and releases |
| Frontend asset building |
Testing Layer (2 skills)
| Skill | Use For |
|---|---|
| Unit and integration tests |
| CI/CD pipeline setup |
Agent Layer (5 skills)
| Skill | Use For |
|---|---|
| THIS SKILL - requirement interpretation |
| Code validation before deployment |
| Debugging Frappe issues |
| Data migration planning |
| Architecture decision-making |
Skill Dependencies Map
| Mechanism | Required Skills |
|---|---|
| Client Script | , , |
| Server Script (Doc Event) | , , |
| Server Script (API) | , , |
| Server Script (Scheduler) | , , |
| Server Script (Permission) | , , |
| Controller | , , |
| Hooks | , , |
| Custom App | , , |
| Jinja Template | , |
| Database Operations | , |
| Whitelisted Method | , |
| Workflow | , |
| Reports | , |
| Website/Portal | , |
| Integration | , |
| Background Jobs | , |
| Testing | , |
| Deployment | , |
Common Pattern Recognition
| User Phrase | Mechanism | Key Skills |
|---|---|---|
| "auto-calculate", "automatically fill" | Client Script + Server Script | , |
| "validate", "check before save" | Server Script (validate) | |
| "prevent", "block", "don't allow" | Server Script + frappe.throw() | |
| "send email", "notify" | Server Script or Notification | |
| "sync", "integrate", "API" | Controller (custom app) | |
| "every day", "schedule" | Scheduler or hooks.py | |
| "only see their own" | Permission Query | |
| "approval", "authorize" | Built-in Workflow | , |
| "add button", "custom action" | Client Script | |
| "print format", "PDF" | Jinja Template | |
| "report", "dashboard" | Script/Query Report | |
| "deploy", "go live" | Deployment workflow | |
| "test", "CI" | Testing framework | |
| "cache", "performance" | Cache + optimization | , |
Version Awareness
ALWAYS consider version compatibility:
| Feature | v14 | v15 | v16 |
|---|---|---|---|
| Server Script sandbox | Yes | Yes | Yes |
| No | No | Yes |
| Chrome PDF rendering | No | No | Yes |
| Data masking | No | No | Yes |
| UUID naming rule | No | No | Yes |
| Type annotations (best practice) | No | No | Yes |
| Scheduler tick (seconds) | 240 | 60 | 60 |
dedup | No | Yes | Yes |
Agent Output Checklist
Before completing interpretation, ALWAYS verify:
- Business requirement is clear and unambiguous
- Trigger/event is identified
- Mechanism is selected with justification
- DocType(s) are specified
- Data flow is documented
- Error handling approach is defined
- Version compatibility is noted (v14/v15/v16)
- Required frappe-* skills are listed from full catalog
- Validation criteria are defined
- v16 considerations noted (extend_doctype_class, type annotations)
See references/checklists.md for detailed checklists. See references/examples.md for interpretation examples.