Claude-skill-registry frappe-workflow-generator
Generate Frappe Workflows for document state management and approvals. Use when creating approval workflows, state transitions, or multi-step document processes.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/frappe-workflow-generator" ~/.claude/skills/majiayu000-claude-skill-registry-frappe-workflow-generator && rm -rf "$T"
manifest:
skills/data/frappe-workflow-generator/SKILL.mdsource content
Frappe Workflow Generator
Generate production-ready Frappe Workflows for document state management, approvals, and business process automation.
When to Use This Skill
Claude should invoke this skill when:
- User wants to create approval workflows
- User needs document state transitions
- User requests multi-step approval processes
- User mentions workflows, approvals, or document states
- User wants role-based approval routing
- User needs to implement document lifecycle management
Capabilities
1. Workflow JSON Generation
Basic Approval Workflow:
{ "name": "Sales Invoice Approval", "document_type": "Sales Invoice", "is_active": 1, "workflow_state_field": "workflow_state", "states": [ { "state": "Draft", "doc_status": "0", "allow_edit": "Sales User", "update_field": "status", "update_value": "Draft" }, { "state": "Pending Approval", "doc_status": "0", "allow_edit": "Sales Manager", "update_field": "status", "update_value": "Pending" }, { "state": "Approved", "doc_status": "1", "update_field": "status", "update_value": "Approved" }, { "state": "Rejected", "doc_status": "2", "update_field": "status", "update_value": "Rejected" } ], "transitions": [ { "state": "Draft", "action": "Submit for Approval", "next_state": "Pending Approval", "allowed": "Sales User", "allow_self_approval": 0 }, { "state": "Pending Approval", "action": "Approve", "next_state": "Approved", "allowed": "Sales Manager" }, { "state": "Pending Approval", "action": "Reject", "next_state": "Rejected", "allowed": "Sales Manager" }, { "state": "Rejected", "action": "Revise", "next_state": "Draft", "allowed": "Sales User" } ] }
2. Conditional Transitions
Workflow with Amount-Based Routing:
{ "transitions": [ { "state": "Draft", "action": "Submit", "next_state": "Pending L1 Approval", "allowed": "Sales User", "condition": "doc.grand_total <= 10000" }, { "state": "Draft", "action": "Submit", "next_state": "Pending L2 Approval", "allowed": "Sales User", "condition": "doc.grand_total > 10000 && doc.grand_total <= 50000" }, { "state": "Draft", "action": "Submit", "next_state": "Pending Director Approval", "allowed": "Sales User", "condition": "doc.grand_total > 50000" } ] }
References
Frappe Workflow Core:
- Workflow: https://github.com/frappe/frappe/blob/develop/frappe/workflow/doctype/workflow/workflow.py
- Workflow State: https://github.com/frappe/frappe/blob/develop/frappe/workflow/doctype/workflow_state/workflow_state.py
Official Documentation: