ravana-indus-erpnext-frappe

TotalClaw 作者 totalclaw

ERPNext/Frappe 集成:CRM、库存、会计与自定义 DocType API 操作。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~ravana-indus-erpnext-frappe
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~ravana-indus-erpnext-frappe/file -o ravana-indus-erpnext-frappe.md
## 概述(中文)

ERPNext/Frappe 集成:CRM、库存、会计与自定义 DocType API 操作。

## 技能正文

# Business Claw Skills

High-level business workflows that combine multiple MCP tools into reusable, executable skills for ERPNext.

## 概述

Skills are pre-defined workflows stored as JSON files in [`definitions/`](definitions/). Each skill defines:
- **Triggers**: Natural language patterns that activate the skill
- **Tools**: MCP tools to execute in sequence
- **Input Schema**: 必填 and optional parameters
- **Workflow Steps**: Ordered execution plan with variable substitution
- **Guardrails**: Validation rules for safe execution
- **Output Template**: Formatted response message

## 可用技能

### CRM 技能

| Skill | Description | Category |
|-------|-------------|----------|
| [`create_customer`](definitions/create_customer.json) | 创建 a new customer with contact and address | crm |
| [`create_lead`](definitions/create_lead.json) | 注册 a new lead | crm |
| [`create_supplier`](definitions/create_supplier.json) | Add a new supplier | crm |

### 销售技能

| Skill | Description | Category |
|-------|-------------|----------|
| [`create_sales_order`](definitions/create_sales_order.json) | 创建 a sales order | sales |
| [`create_quotation`](definitions/create_quotation.json) | 创建 a quotation | sales |
| [`create_invoice`](definitions/create_invoice.json) | Generate sales invoice | sales |
| [`complete_sales_workflow`](definitions/complete_sales_workflow.json) | Full Quotation → SO → Invoice → Payment | sales |

### 采购技能

| Skill | Description | Category |
|-------|-------------|----------|
| [`create_purchase_order`](definitions/create_purchase_order.json) | 创建 a purchase order | purchase |

### 库存技能

| Skill | Description | Category |
|-------|-------------|----------|
| [`create_item`](definitions/create_item.json) | 创建 new item in inventory | inventory |
| [`stock_entry`](definitions/stock_entry.json) | Record stock movements | inventory |

### 项目技能

| Skill | Description | Category |
|-------|-------------|----------|
| [`create_project`](definitions/create_project.json) | 创建 a new project | project |

### 财务技能

| Skill | Description | Category |
|-------|-------------|----------|
| [`process_payment`](definitions/process_payment.json) | Record payment entry | payments |

### 工具技能

| Skill | Description | Category |
|-------|-------------|----------|
| [`search_records`](definitions/search_records.json) | 搜索 across DocTypes | utility |
| [`bulk_operation`](definitions/bulk_operation.json) | Bulk create/update/delete | utility |
| [`generic_task`](definitions/generic_task.json) | Flexible multi-step workflow | utility |

## 用法

### 加载技能

```python
from bc_skills import get_available_skills, load_skill

# List all available skills
skills = get_available_skills()
print(skills)  # ['create_customer', 'create_sales_order', ...]

# Load a specific skill
skill = load_skill("create_customer")
```

### Executing Skills

```python
from bc_skills.loader import execute_skill

result = execute_skill(
    name="create_customer",
    context={
        'customer_name': "ACME Corp",
        'customer_type': "Company",
        'customer_group': "Commercial",
        'email': "contact@acme.com"
    },
    user="Administrator"
)

print(result)
```

### Trigger Examples

Skills respond to natural language triggers:

| Trigger Phrase | Skill |
|----------------|-------|
| "create customer" | create_customer |
| "add customer" | create_customer |
| "new customer" | create_customer |
| "complete sales workflow" | complete_sales_workflow |
| "full sales process" | complete_sales_workflow |
| "process order to payment" | complete_sales_workflow |
| "create sales order" | create_sales_order |
| "generate invoice" | create_invoice |

## Skill Definition Schema

```json
{
  'name': "skill_name",
  'version': "1.0.0",
  'description': "What the skill does",
  'author': "Business Claw Team",
  'category': "crm|sales|purchase|inventory|project|payments|utility",
  
  'triggers': [
    "trigger phrase 1",
    "trigger phrase 2"
  ],
  
  'tools': [
    {
      'name': "tool_name",
      'description': "What it does",
      'required': true
    }
  ],
  
  'input_schema': {
    'type': "object",
    'properties': {
      'param_name': {
        'type': "string",
        'description': "Parameter description",
        'enum': ["option1", "option2"]
      }
    },
    'required': ["required_param"]
  },
  
  'workflow': {
    'steps': [
      {
        'step': "step_name",
        'tool': "tool_to_call",
        'arguments': {
          'doctype': "DocType",
          'data': {
            'field': "${variable}"
          }
        }
      }
    ]
  },
  
  'guardrails': {
    'rule_name': true
  },
  
  'output_template': "Formatted output {{variable}}"
}
```

## Variable Substitution

Workflow steps support `${variable}` substitution from execution context:

```json
{
  'step': "create_order",
  'tool': "create_document",
  'arguments': {
    'doctype': "Sales Order",
    'data': {
      'customer': "${customer_id}",
      'items': "${items}"
    }
  }
}
```

## Creating Custom Skills

1. 创建 a JSON file in [`definitions/`](definitions/)
2. Define triggers, tools, input schema, and workflow
3. Use the `SkillLoader` to load and execute

示例 custom skill structure:

```json
{
  'name': "my_custom_skill",
  'version': "1.0.0",
  'description': "My custom workflow",
  'category': "utility",
  'triggers': ["my trigger"],
  'tools': [
    {'name': "get_doctype_meta", 'required': true},
    {'name': "create_document", 'required': true}
  ],
  'input_schema': {
    'type': "object",
    'properties': {
      'param1': {'type': "string"}
    },
    'required': ["param1"]
  },
  'workflow': {
    'steps': [
      {
        'step': "step1",
        'tool': "get_doctype_meta",
        'arguments': {'doctype': "Item"}
      }
    ]
  },
  'output_template': "Result: {{result}}"
}
```

## 架构

- [`loader.py`](loader.py) - `SkillLoader` class manages skill loading and execution
- [`definitions/`](definitions/) - JSON files containing skill definitions
- Skills use the `ToolRouter` to execute MCP tools in sequence
- Guardrails provide validation before skill execution

## 要求

- Frappe/ERPNext environment
- `bc_mcp` module for tool routing
- JSON or YAML skill definitions

## 许可证

MIT