Skill125 repo starsupdated 2mo ago
frappe-agent-interpreter
>
Install in Claude Code
Copygit clone --depth 1 https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package /tmp/frappe-agent-interpreter && cp -r /tmp/frappe-agent-interpreter/skills/source/agents/frappe-agent-interpreter ~/.claude/skills/frappe-agent-interpreterThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
# 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](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 `extend_doctype_class` (v16) or need `doc_events` (v14+)? - Type annotations desired? (v16 best practice) ## Output Specification Template ALWAYS generate specifications in this format: ```markdown ## 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 | |-------|---------| | `frappe-syntax-clientscripts` | Client Script JS syntax | | `frappe-syntax-serverscripts` | Server Script Python sandbox syntax | | `frappe-syntax-controllers` | Controller class syntax | | `frappe-syntax-hooks` | hooks.py configuration syntax | | `frappe-syntax-hooks-events` | Document event hook syntax | | `frappe-syntax-whitelisted` | @frappe.whitelist() syntax | | `frappe-syntax-jinja` | Jinja template syntax | | `frappe-syntax-scheduler` | Scheduler/enqueue syntax | | `frappe-syntax-customapp` | App structure syntax | | `frappe-syntax-doctypes` | DocType JSON definition syntax | | `frappe-syntax-reports` | Report definition syntax | ### Core Layer (7 skills) | Skill | Use For | |-------|---------| | `frappe-core-database` | Database operations, ORM, raw SQL | | `frappe-core-permissions` | Permission system, roles, rules | | `frappe-core-api` | REST API, resource API | | `frappe-core-workflow` | Workflow engine, states, transitions | | `frappe-core-notifications` | Email, push, system notifications | | `frappe-core-files` | File upload, attachment, storage | | `frappe-core-cache` | Redis cache, cache invalidation | ### Implementation Layer (12 skills) | Skill | Use For | |-------|---------| | `frappe-impl-clientscripts` | Client Script implementation patterns | | `frappe-impl-serverscripts` | Server Script implementation patterns | | `frappe-impl-controllers` | Controller implementation patterns | | `frappe-impl-hooks` | Hook implementation patterns | | `frappe-impl-whitelisted` | Whitelisted method patterns | | `frappe-impl-jinja` | Jinja template patterns |