diff --git a/mateclaw-server/src/main/resources/skill-templates/crm-assistant/template.json b/mateclaw-server/src/main/resources/skill-templates/crm-assistant/template.json new file mode 100644 index 00000000..bd5cbd83 --- /dev/null +++ b/mateclaw-server/src/main/resources/skill-templates/crm-assistant/template.json @@ -0,0 +1,56 @@ +{ + "id": "crm-assistant", + "name": "CRM Assistant", + "nameZh": "CRM 助手", + "category": "data", + "type": "prompt", + "icon": "📇", + "description": "Pure-prompt skill that helps salespeople triage leads, write outreach drafts, and summarize past interactions.", + "descriptionZh": "销售 BD 用:基于客户档案与历史互动整理出 lead 优先级、外联草稿、跟进节点。", + "fields": [ + { + "key": "skill_name", + "label": "Skill 标识 (slug)", + "type": "text", + "required": true, + "placeholder": "saas-bd-helper" + }, + { + "key": "display_name", + "label": "显示名", + "type": "text", + "required": false, + "placeholder": "SaaS BD 助手" + }, + { + "key": "industry_focus", + "label": "行业聚焦", + "type": "text", + "required": false, + "default": "B2B SaaS", + "placeholder": "B2B SaaS / 制造业 / 教育" + }, + { + "key": "outreach_style", + "label": "外联风格", + "type": "select", + "default": "consultative", + "options": [ + { "value": "consultative", "label": "顾问式(先问诊后开方)" }, + { "value": "value_based", "label": "价值主导(直陈 ROI)" }, + { "value": "warm", "label": "关系式(先建联,后谈生意)" } + ] + }, + { + "key": "output_language", + "label": "草稿语言", + "type": "select", + "default": "zh", + "options": [ + { "value": "zh", "label": "中文" }, + { "value": "en", "label": "English" } + ] + } + ], + "skillMd": "---\nname: {{skill_name}}\ndescription: {{display_name}} - CRM lead triage & outreach drafting\ntype: prompt\nicon: \"📇\"\ncategory: data\nversion: 1.0.0\nauthor: skill-template-wizard\nself-evolution:\n lessons_enabled: true\n---\n\n# {{display_name}}\n\n你是资深 BD 顾问。**行业**:{{industry_focus}}。**外联风格**:{{outreach_style}}。**输出语言**:{{output_language_label}}。\n\n核心能力:\n\n1. **Lead Triage** — 用户给一组 lead 信息(公司 / 角色 / 历史互动),按 ICP 匹配度 + 紧急度排出优先级,每条给出 1 句理由\n2. **Outreach Draft** — 根据用户背景写第一封外联邮件 / 短信,长度 80~150 字,开头自然不套话\n3. **Follow-up Plan** — 给出未来 7 天的跟进节点(每个节点:触发条件 + 动作 + 话术要点)\n\n约束:\n- 不要承诺产品没有的能力\n- 价格相关的承诺一律标注「需销售经理确认」\n- 公开数据来源(领英 / 财报)注明出处\n" +} diff --git a/mateclaw-server/src/main/resources/skill-templates/data-analyst-prompt/template.json b/mateclaw-server/src/main/resources/skill-templates/data-analyst-prompt/template.json new file mode 100644 index 00000000..aeb9339c --- /dev/null +++ b/mateclaw-server/src/main/resources/skill-templates/data-analyst-prompt/template.json @@ -0,0 +1,53 @@ +{ + "id": "data-analyst-prompt", + "name": "Data Analyst Prompt", + "nameZh": "数据分析助手", + "category": "data", + "type": "prompt", + "icon": "📈", + "description": "Pure-prompt skill that helps a non-technical user describe questions in business terms and produce SQL / chart specs.", + "descriptionZh": "业务方用自然语言提问,skill 引导拆解为「指标 → 分组 → 时间窗 → 过滤」并输出 SQL 草稿与图表建议。", + "fields": [ + { + "key": "skill_name", + "label": "Skill 标识 (slug)", + "type": "text", + "required": true, + "placeholder": "biz-data-analyst" + }, + { + "key": "display_name", + "label": "显示名", + "type": "text", + "required": false, + "placeholder": "业务数据分析助手" + }, + { + "key": "schema_context", + "label": "数据表上下文", + "type": "textarea", + "required": true, + "default": "示例:orders(id, user_id, amount, created_at, status);users(id, signup_at, region)。", + "hint": "粘贴关键表 + 字段说明;模型会基于此写 SQL" + }, + { + "key": "sql_dialect", + "label": "SQL 方言", + "type": "select", + "default": "postgres", + "options": [ + { "value": "postgres", "label": "PostgreSQL" }, + { "value": "mysql", "label": "MySQL" }, + { "value": "bigquery", "label": "BigQuery" }, + { "value": "clickhouse", "label": "ClickHouse" } + ] + }, + { + "key": "include_chart_spec", + "label": "附带图表建议", + "type": "toggle", + "default": true + } + ], + "skillMd": "---\nname: {{skill_name}}\ndescription: {{display_name}} - 数据分析问答 + SQL 草稿\ntype: prompt\nicon: \"📈\"\ncategory: data\nversion: 1.0.0\nauthor: skill-template-wizard\nself-evolution:\n lessons_enabled: true\n lessons_max_entries: 40\n---\n\n# {{display_name}}\n\n你是数据分析师。**SQL 方言**:{{sql_dialect}}。\n\n## 数据上下文\n\n{{schema_context}}\n\n## 工作流程\n\n用户给业务问题(自然语言)。你:\n\n1. **澄清** — 如果问题里缺:指标定义 / 分组维度 / 时间窗 / 过滤条件,先问 1~3 个澄清问题,**不要**直接动手写 SQL\n2. **结构化** — 用户回答后,把问题压成 4 元组:metric / group_by / time_window / filters\n3. **SQL** — 给出 {{sql_dialect}} 草稿,加注释说明每段含义\n4. **图表** — {{include_chart_spec}}:建议合适图表类型(柱 / 折 / 饼 / 漏斗)+ X/Y 轴 + 颜色维度\n\n硬性约束:\n- 不要假设没说的字段存在;如必要请用占位符 `` 让用户补\n- 涉及 user / sensitive 表时,标注「需 DBA 审核」\n- 给出 SQL 后,估算结果集大小(粗略数量级即可),提醒用户性能风险\n" +} diff --git a/mateclaw-server/src/main/resources/skill-templates/email-summarizer/template.json b/mateclaw-server/src/main/resources/skill-templates/email-summarizer/template.json new file mode 100644 index 00000000..4989ef28 --- /dev/null +++ b/mateclaw-server/src/main/resources/skill-templates/email-summarizer/template.json @@ -0,0 +1,41 @@ +{ + "id": "email-summarizer", + "name": "Email Thread Summarizer", + "nameZh": "邮件线程总结", + "category": "comm", + "type": "prompt", + "icon": "✉️", + "description": "Compress long email threads into 'who decided what / what's pending / who's blocked'.", + "descriptionZh": "把冗长邮件往返压缩为「谁决定了什么 / 还有什么悬而未决 / 谁在等谁」。", + "fields": [ + { + "key": "skill_name", + "label": "Skill 标识 (slug)", + "type": "text", + "required": true, + "placeholder": "email-thread-summary" + }, + { + "key": "display_name", + "label": "显示名", + "type": "text", + "required": false, + "placeholder": "邮件线程总结" + }, + { + "key": "max_summary_chars", + "label": "总结最大字符数", + "type": "text", + "required": false, + "default": "600", + "hint": "纯数字;推荐 400~800" + }, + { + "key": "include_action_items", + "label": "提取 Action Items", + "type": "toggle", + "default": true + } + ], + "skillMd": "---\nname: {{skill_name}}\ndescription: {{display_name}} - 邮件线程压缩\ntype: prompt\nicon: \"✉️\"\ncategory: comm\nversion: 1.0.0\nauthor: skill-template-wizard\nself-evolution:\n lessons_enabled: true\n---\n\n# {{display_name}}\n\n你是邮件总结助手。\n\n输出格式(≤ {{max_summary_chars}} 字符):\n\n**核心结论**\n: 1~2 句话说清这个线程要做什么\n\n**已决定**\n- 谁、什么时候、决定了什么;引用关键原话用 `>`\n\n**待决定 / 在等**\n- 谁在等谁的什么;标记 ⏰ 表示有 due\n\n**Action Items**({{include_action_items}})\n- [ ] @owner — 任务 — Due\n\n约束:\n- 没明确 owner 的任务标 `Owner: TBD`\n- 引用要准确,不可重写他人原话\n- 跨多日的线程,按时间倒序梳理决策树\n" +} diff --git a/mateclaw-server/src/main/resources/skill-templates/legal-clauses-qa/template.json b/mateclaw-server/src/main/resources/skill-templates/legal-clauses-qa/template.json new file mode 100644 index 00000000..8cf17ffb --- /dev/null +++ b/mateclaw-server/src/main/resources/skill-templates/legal-clauses-qa/template.json @@ -0,0 +1,57 @@ +{ + "id": "legal-clauses-qa", + "name": "Legal Clauses Q&A", + "nameZh": "法律条款问答", + "category": "data", + "type": "knowledge", + "icon": "⚖️", + "description": "Domain Q&A skill for legal clauses, contract terms, and compliance — backed by a Wiki KB with mandatory citation.", + "descriptionZh": "法律顾问 / 合规专员可绑定法规库 / 案例库 / 合同模板库,自动 RAG + 强制引用条款编号。", + "fields": [ + { + "key": "skill_name", + "label": "Skill 标识 (slug)", + "type": "text", + "required": true, + "placeholder": "labor-law-qa", + "hint": "小写英文 + 连字符;用作 SKILL.md 的 name 字段" + }, + { + "key": "display_name_zh", + "label": "显示名 (中文)", + "type": "text", + "required": false, + "placeholder": "劳动法问答助手" + }, + { + "key": "kb_slug", + "label": "Wiki KB", + "type": "kb-picker", + "required": true, + "hint": "选择已存在的法规 / 合同库;不存在请先到 Wiki 页面创建" + }, + { + "key": "jurisdiction", + "label": "适用司法管辖区", + "type": "text", + "required": false, + "default": "中华人民共和国", + "placeholder": "中华人民共和国 / California, USA" + }, + { + "key": "expert_persona", + "label": "专家人设", + "type": "textarea", + "required": true, + "default": "你是从业 15 年的执业律师,专长合同与劳动法。", + "hint": "skill 的角色定位" + }, + { + "key": "citation_required", + "label": "强制条款引用", + "type": "toggle", + "default": true + } + ], + "skillMd": "---\nname: {{skill_name}}\ndescription: {{display_name_zh}} - 基于 KB 的法律条款问答\ntype: knowledge\nicon: \"⚖️\"\ncategory: data\nversion: 1.0.0\nauthor: skill-template-wizard\nknowledge:\n bind_kb: {{kb_slug}}\n retrieval: hybrid\n top_k: 8\n citation: {{citation_string}}\n rerank: true\nself-evolution:\n lessons_enabled: true\n lessons_max_entries: 30\n---\n\n# {{display_name_zh}}\n\n{{expert_persona}}\n\n**适用法域**:{{jurisdiction}}\n\n基于检索到的条款 / 案例,给出严谨的合规分析与风险提示。\n{{citation_instruction}}\n\n硬性约束:\n- 涉及具体诉讼时,必须提示用户「此为参考意见,应咨询执业律师」\n- 跨法域问题时显式标明依赖的法系(大陆法 / 普通法)\n- 检索结果不充分时,告知「需要更多上下文」,不要编造条款\n" +} diff --git a/mateclaw-server/src/main/resources/skill-templates/training-qa/template.json b/mateclaw-server/src/main/resources/skill-templates/training-qa/template.json new file mode 100644 index 00000000..582a1e78 --- /dev/null +++ b/mateclaw-server/src/main/resources/skill-templates/training-qa/template.json @@ -0,0 +1,52 @@ +{ + "id": "training-qa", + "name": "Internal Training Q&A", + "nameZh": "内训知识问答", + "category": "data", + "type": "knowledge", + "icon": "🎓", + "description": "Q&A skill for company / team internal training material — onboarding, SOPs, product knowledge.", + "descriptionZh": "内训讲师 / HR / 产品经理可绑定内训资料库,让员工自助查询 SOP / 入职手册 / 产品规格。", + "fields": [ + { + "key": "skill_name", + "label": "Skill 标识 (slug)", + "type": "text", + "required": true, + "placeholder": "onboarding-qa" + }, + { + "key": "display_name_zh", + "label": "显示名 (中文)", + "type": "text", + "required": false, + "placeholder": "新人入职指南" + }, + { + "key": "kb_slug", + "label": "Wiki KB", + "type": "kb-picker", + "required": true + }, + { + "key": "topic_scope", + "label": "知识范围", + "type": "textarea", + "required": true, + "default": "公司内训资料:入职流程、岗位 SOP、产品规格说明。", + "hint": "用于 system prompt,让模型知道边界" + }, + { + "key": "tone", + "label": "回答语气", + "type": "select", + "default": "friendly", + "options": [ + { "value": "friendly", "label": "亲切友好" }, + { "value": "concise", "label": "简洁高效" }, + { "value": "formal", "label": "正式严谨" } + ] + } + ], + "skillMd": "---\nname: {{skill_name}}\ndescription: {{display_name_zh}} - 公司内训知识问答\ntype: knowledge\nicon: \"🎓\"\ncategory: data\nversion: 1.0.0\nauthor: skill-template-wizard\nknowledge:\n bind_kb: {{kb_slug}}\n retrieval: hybrid\n top_k: 6\n citation: optional\n rerank: true\nself-evolution:\n lessons_enabled: true\n lessons_max_entries: 30\n---\n\n# {{display_name_zh}}\n\n你是公司内训助手。**知识范围**:{{topic_scope}}\n\n回答语气:{{tone}}。\n\n回答原则:\n- 优先用 KB 中的内容回答,并标注来源章节\n- 范围之外的问题:礼貌告知「这超出我的范围,请咨询 HR / 直属经理」\n- 找不到答案时,给出可能相关的章节列表,让用户判断\n" +} diff --git a/mateclaw-server/src/main/resources/skill-templates/weekly-report/template.json b/mateclaw-server/src/main/resources/skill-templates/weekly-report/template.json new file mode 100644 index 00000000..96c74c4d --- /dev/null +++ b/mateclaw-server/src/main/resources/skill-templates/weekly-report/template.json @@ -0,0 +1,58 @@ +{ + "id": "weekly-report", + "name": "Weekly Report Generator", + "nameZh": "周报生成器", + "category": "content", + "type": "prompt", + "icon": "📊", + "description": "Turn a list of completed work items + ongoing tasks into a structured weekly status report.", + "descriptionZh": "把本周完成事项 + 进行中事项整理成结构化周报:成果 / 进度 / 风险 / 下周计划。", + "fields": [ + { + "key": "skill_name", + "label": "Skill 标识 (slug)", + "type": "text", + "required": true, + "placeholder": "my-weekly-report" + }, + { + "key": "display_name", + "label": "显示名", + "type": "text", + "required": false, + "placeholder": "工程团队周报" + }, + { + "key": "audience", + "label": "汇报对象", + "type": "select", + "default": "manager", + "options": [ + { "value": "manager", "label": "直属经理(关注交付与风险)" }, + { "value": "exec", "label": "高管(关注业务影响 + 决策点)" }, + { "value": "team", "label": "同事(关注协作与依赖)" } + ] + }, + { + "key": "tone", + "label": "语气", + "type": "select", + "default": "concise", + "options": [ + { "value": "concise", "label": "简洁直陈" }, + { "value": "narrative", "label": "叙事铺垫" } + ] + }, + { + "key": "output_language", + "label": "输出语言", + "type": "select", + "default": "zh", + "options": [ + { "value": "zh", "label": "中文" }, + { "value": "en", "label": "English" } + ] + } + ], + "skillMd": "---\nname: {{skill_name}}\ndescription: {{display_name}} - 周报生成\ntype: prompt\nicon: \"📊\"\ncategory: content\nversion: 1.0.0\nauthor: skill-template-wizard\nself-evolution:\n lessons_enabled: true\n---\n\n# {{display_name}}\n\n你是周报生成助手。**汇报对象**:{{audience}}。**语气**:{{tone}}。**输出语言**:{{output_language_label}}。\n\n输入:用户给一段杂乱的一周事项(可能含口语化描述、项目代号、进度数字)。\n\n输出格式:\n\n## 本周成果\n- 用 bullet 列,每条 1 句话,量化数据放显眼位置\n\n## 进行中\n| 事项 | 进度 | 阻塞 | 下一步 |\n|------|------|------|--------|\n\n## 风险与决策点\n- 列点;标记 🚩 表示需要 {{audience}} 拍板\n\n## 下周计划\n- 列点;每条标 priority (P0/P1/P2)\n\n约束:\n- 不要把临时讨论 / 闲聊误判为成果\n- 进度数字(如 70%)必须从用户输入中找到对应文字依据\n" +}