diff --git a/skills/linggan/baidu-search/.claude-plugin/plugin.json b/skills/linggan/baidu-search/.claude-plugin/plugin.json deleted file mode 100644 index ff61703..0000000 --- a/skills/linggan/baidu-search/.claude-plugin/plugin.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "baidu-search", - "description": "百度搜索服务", - "mcpServers": { - "web-search-mcp-server": { - "transport": "http", - "url": "https://qianfan.baidubce.com/v2/tools/web-search/mcp", - "headers": { - "Authorization": "Bearer {BAIDU_API_KEY}" - } - } - }, - "category": "Search & Intelligence" -} diff --git a/skills/linggan/baidu-search/SKILL.md b/skills/linggan/baidu-search/SKILL.md deleted file mode 100644 index 22847b6..0000000 --- a/skills/linggan/baidu-search/SKILL.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -name: baidu-search -description: Search the web using Baidu AI Search Engine (BDSE). Use for live information, documentation, or research topics. -metadata: { "openclaw": { "emoji": "🔍︎", "requires": { "bins": ["python3"], "env":["BAIDU_API_KEY"]},"primaryEnv":"BAIDU_API_KEY" } } -category: Search & Intelligence ---- - -# Baidu Search - -Search the web via Baidu AI Search API. - -## Usage - -```bash -python3 skills/baidu-search/scripts/search.py '' -``` - -## Request Parameters - -| Param | Type | Required | Default | Description | -|-------|------|----------|---------|-------------| -| query | str | yes | - | Search query | -| count | int | no | 10 | Number of results to return, range 1-50 | -| freshness | str | no | Null | Time range, two formats: format one is ”YYYY-MM-DDtoYYYY-MM-DD“, and format two includes pd, pw, pm, and py, representing the past 24 hours, past 7 days, past 31 days, and past 365 days respectively | - -## Examples - -```bash -# Basic search -python3 scripts/search.py '{"query":"人工智能"}' - -# Freshness first format "YYYY-MM-DDtoYYYY-MM-DD" example -python3 scripts/search.py '{ - "query":"最新新闻", - "freshness":"2025-09-01to2025-09-08" -}' - -# Freshness second format pd、pw、pm、py example -python3 scripts/search.py '{ - "query":"最新新闻", - "freshness":"pd" -}' - -# set count, the number of results to return -python3 scripts/search.py '{ - "query":"旅游景点", - "count": 20, -}' -``` - -## Current Status - -Fully functional. diff --git a/skills/linggan/bot-self-modifier/SKILL.md b/skills/linggan/bot-self-modifier/SKILL.md deleted file mode 100644 index 6435d8b..0000000 --- a/skills/linggan/bot-self-modifier/SKILL.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -name: bot-self-modifier -description: | - Bot 自修改技能,允许当前 bot 在对话过程中通过 API 读取和修改自身的全部配置。 - 使用场景: - - 用户要求 bot 调整行为或切换人设时(如"把你的角色改成英语老师"、"在系统提示词里加上XXX规则") → 修改系统提示词 - - 用户要求 bot 更换头像、修改自我介绍、设置开场建议问题时(如"把你的头像换成这个链接"、"更新你的描述") → 修改头像/描述/建议问题 - - 用户要求 bot 接入新工具或移除已有工具时(如"帮我接入 Jina 搜索"、"把那个 MCP 服务器删掉") → 添加/删除 MCP 服务器 - - 用户要求 bot 安装、启用、禁用或卸载技能时(如"帮我装上这个技能包"、"把 XX 技能关掉") → 管理技能列表 - - 用户要求 bot 配置 API 密钥或运行参数时(如"把 JINA_API_KEY 设置成 xxx") → 修改环境变量 - - bot 需要自主进化、动态调整自身能力边界的自动化场景 -category: Developer Tools ---- - -# Bot Self-Modifier - -## Skill Structure - -``` -bot-self-modifier/ -├── SKILL.md # Core instruction file (this file) -├── scripts/ -│ └── bot_modifier.py # Main bot modification script -``` - -## Overview - -支持以下功能: -1. **系统提示词** - 读取和修改 -2. **Bot 基本信息** - 头像、描述、建议问题的读取和修改 -3. **MCP 服务器** - 列表查看、添加和删除 -4. **技能列表** - 读取、上传、启用、禁用、删除 -5. **环境变量** - 读取和修改 - -## Quick Start - -所有操作都通过 `scripts/bot_modifier.py` 脚本执行,使用 `--action` 参数指定操作。 - -### 系统提示词操作 - -```bash -# 读取当前系统提示词 -scripts/bot_modifier.py --action get_prompt - -# 修改系统提示词 -scripts/bot_modifier.py --action set_prompt --value "你是一个专业的客服助手" -``` - -### Bot 基本信息操作 - -```bash -# 读取当前 bot 基本信息(名称、头像、描述、建议问题) -scripts/bot_modifier.py --action get_info - -# 修改 bot 标题名称 -scripts/bot_modifier.py --action set_name --value "智能客服助手" - -# 设置头像(URL) -scripts/bot_modifier.py --action set_avatar --value "https://example.com/avatar.png" - -# 设置描述 -scripts/bot_modifier.py --action set_description --value "这是一个智能客服助手" - -# 设置建议问题(JSON 数组) -scripts/bot_modifier.py --action set_suggestions --value '["你能做什么?", "帮我查一下订单", "如何退款"]' -``` - -### MCP 服务器操作 - -```bash -# 列出所有 MCP 服务器 -scripts/bot_modifier.py --action list_mcp - -# 添加 MCP 服务器(config 为 JSON 字符串) -scripts/bot_modifier.py --action add_mcp --name "my-server" --mcp-type "sse" --config '{"url": "https://example.com/sse"}' - -# 删除 MCP 服务器 -scripts/bot_modifier.py --action delete_mcp --mcp-id "" -``` - -### 技能操作 - -```bash -# 列出所有技能 -scripts/bot_modifier.py --action list_skills - -# 上传技能(zip 文件) -scripts/bot_modifier.py --action upload_skill --file /path/to/skill.zip - -# 启用技能(逗号分隔的技能名) -scripts/bot_modifier.py --action enable_skill --value "skill-name-1,skill-name-2" - -# 禁用技能(从已启用列表中移除) -scripts/bot_modifier.py --action disable_skill --value "skill-name-to-remove" - -# 删除已上传的技能 -scripts/bot_modifier.py --action delete_skill --value "skill-name" -``` - -### 环境变量操作 - -```bash -# 读取当前环境变量 -scripts/bot_modifier.py --action get_env - -# 修改环境变量(JSON 格式) -scripts/bot_modifier.py --action set_env --value '{"API_KEY": "xxx", "SECRET": "yyy"}' -``` - -## Script Usage - -### bot_modifier.py - -主脚本,通过 HTTP API 与服务端交互。 - -```bash -scripts/bot_modifier.py [OPTIONS] -``` - -**Options:** - -| Option | Required | Description | Default | -|--------|----------|-------------|---------| -| `--action` | Yes | 操作类型(见下方列表) | - | -| `--value` | Depends | 操作值(提示词内容/技能名/环境变量 JSON) | - | -| `--name` | For add_mcp | MCP 服务器名称 | - | -| `--mcp-type` | For add_mcp | MCP 服务器类型 (sse/streamable-http) | sse | -| `--config` | For add_mcp | MCP 服务器配置 JSON | - | -| `--mcp-id` | For delete_mcp | MCP 服务器 ID | - | -| `--file` | For upload_skill | Skill zip 文件路径 | - | - -**Available Actions:** - -| Action | Description | -|--------|-------------| -| `get_prompt` | 读取系统提示词 | -| `set_prompt` | 修改系统提示词(需要 --value) | -| `get_info` | 读取 bot 基本信息(名称、头像、描述、建议问题) | -| `set_name` | 修改 bot 标题名称(需要 --value) | -| `set_avatar` | 设置头像 URL(需要 --value) | -| `set_description` | 设置描述(需要 --value) | -| `set_suggestions` | 设置建议问题(需要 --value,JSON 数组) | -| `list_mcp` | 列出 MCP 服务器 | -| `add_mcp` | 添加 MCP 服务器(需要 --name, --config) | -| `delete_mcp` | 删除 MCP 服务器(需要 --mcp-id) | -| `list_skills` | 列出所有技能 | -| `upload_skill` | 上传技能 zip(需要 --file) | -| `enable_skill` | 启用技能(需要 --value,逗号分隔技能名) | -| `disable_skill` | 禁用技能(需要 --value,技能名) | -| `delete_skill` | 删除已上传技能(需要 --value) | -| `get_env` | 读取环境变量 | -| `set_env` | 修改环境变量(需要 --value,JSON 格式) | - -## Common Workflows - -### 工作流 1: 查看并修改 Bot 配置 - -```bash -# 1. 先查看当前配置 -scripts/bot_modifier.py --action get_prompt -scripts/bot_modifier.py --action get_info -scripts/bot_modifier.py --action get_env -scripts/bot_modifier.py --action list_mcp -scripts/bot_modifier.py --action list_skills - -# 2. 修改需要的配置 -scripts/bot_modifier.py --action set_prompt --value "新的提示词内容" -``` - -### 工作流 2: 添加新 MCP 服务器并配置环境变量 - -```bash -# 1. 添加 MCP 服务器 -scripts/bot_modifier.py --action add_mcp --name "jina-search" --mcp-type "sse" --config '{"url": "https://mcp.jina.ai/sse"}' - -# 2. 配置需要的环境变量 -scripts/bot_modifier.py --action set_env --value '{"JINA_API_KEY": "jina_xxx"}' -``` - -### 工作流 3: 上传并启用新技能 - -```bash -# 1. 上传技能包 -scripts/bot_modifier.py --action upload_skill --file /path/to/my-skill.zip - -# 2. 启用技能 -scripts/bot_modifier.py --action enable_skill --value "my-skill" - -# 3. 配置技能所需的环境变量 -scripts/bot_modifier.py --action set_env --value '{"SKILL_API_KEY": "xxx"}' -``` diff --git a/skills/linggan/caiyun-weather/SKILL.md b/skills/linggan/caiyun-weather/SKILL.md deleted file mode 100644 index f5ab38f..0000000 --- a/skills/linggan/caiyun-weather/SKILL.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -name: caiyun-weather -description: "通过彩云天气 API 查询天气数据 — 实时天气、逐小时/一周预报、历史天气和天气预警。当用户询问任何城市的天气、温度、空气质量、天气预报、降雨概率、历史天气或天气预警时使用此技能。需要设置 CAIYUN_WEATHER_API_TOKEN 环境变量。Use when: user asks about current weather, temperature, air quality, forecast, rain, historical weather, or alerts for any city." -metadata: - { - "openclaw": - { - "requires": - { - "bins": ["python3"], - "env": ["CAIYUN_WEATHER_API_TOKEN"], - }, - "primaryEnv": "CAIYUN_WEATHER_API_TOKEN", - }, - } -category: Weather ---- - -# 彩云天气 (Caiyun Weather) - -通过彩云天气 API 查询天气数据。支持直接使用城市名称(中文或英文),无需提供经纬度。 - -## 前置条件 - -使用前需设置环境变量: - -```bash -export CAIYUN_WEATHER_API_TOKEN="你的API密钥" -``` - -免费申请 API 密钥:https://docs.caiyunapp.com/weather-api/ - -## 何时使用 - -✅ **使用此技能:** -- "北京现在天气怎么样?" -- "上海明天会下雨吗?" -- "深圳未来一周天气预报" -- "广州空气质量如何?" -- "杭州过去24小时的天气" -- "成都有没有天气预警?" -- "What's the weather in Beijing?" -- 用户询问任何城市的天气、温度、空气质量、预报或预警 - -❌ **不要使用此技能:** -- 气候趋势分析或长期历史数据 -- 航空/航海专业气象(METAR、TAF) -- 用户未配置彩云天气 API Token - -## 命令 - -使用 `--city` 加城市名称(中文或英文)。如需精确定位,可使用 `--lng` 和 `--lat`。 - -### 实时天气 - -```bash -python3 "{{skill_path}}/scripts/caiyun_weather.py" realtime --city "北京" -``` - -### 逐小时预报(72小时) - -```bash -python3 "{{skill_path}}/scripts/caiyun_weather.py" hourly --city "上海" -``` - -### 一周预报(7天) - -```bash -python3 "{{skill_path}}/scripts/caiyun_weather.py" weekly --city "深圳" -``` - -### 历史天气(过去24小时) - -```bash -python3 "{{skill_path}}/scripts/caiyun_weather.py" history --city "杭州" -``` - -### 天气预警 - -```bash -python3 "{{skill_path}}/scripts/caiyun_weather.py" alerts --city "成都" -``` - -### 使用坐标(可选) - -对于无法通过城市名识别的地点: - -```bash -python3 "{{skill_path}}/scripts/caiyun_weather.py" realtime --lng 116.4074 --lat 39.9042 -``` - -## 内置城市(即时查询) - -北京、上海、广州、深圳、杭州、成都、武汉、南京、重庆、西安、天津、苏州、郑州、长沙、青岛、大连、厦门、昆明、贵阳、哈尔滨、沈阳、长春、福州、合肥、济南、南昌、石家庄、太原、呼和浩特、南宁、海口、三亚、拉萨、乌鲁木齐、兰州、西宁、银川、香港、澳门、台北、珠海、东莞、佛山、无锡、宁波、温州 - -英文名和其他全球城市通过在线地理编码自动解析。 - -## 说明 - -- 脚本仅使用 Python 标准库,无需 pip 安装 -- 内置城市即时解析,其他城市通过 OpenStreetMap 地理编码 -- API 对中国地区数据最为精准 -- 有频率限制,请避免短时间内频繁请求 diff --git a/skills/linggan/competitor-news-intel/SKILL.md b/skills/linggan/competitor-news-intel/SKILL.md deleted file mode 100644 index 9758cad..0000000 --- a/skills/linggan/competitor-news-intel/SKILL.md +++ /dev/null @@ -1,217 +0,0 @@ ---- -name: competitor-news-intel -description: Research competitor news, organize developments by company and theme, and produce actionable competitive intelligence with impact assessment and follow-up recommendations. Use when the user asks for competitor monitoring, competitor news tracking, market watch summaries, or business intelligence from external updates. 中文触发词包括:竞品跟踪、竞对情报、竞品新闻、市场监听、舆情观察、竞品周报、最近竞品有什么动作。 -category: Search & Intelligence ---- - -# Competitor News Intelligence - -## Overview - -This skill monitors and synthesizes competitor-related news into actionable business intelligence. - -It is appropriate when the user needs more than a list of links. The output should explain: -- what happened -- why it matters -- who it affects -- what to monitor next - -## Quick Start - -When the user asks for competitor research or monitoring: - -1. Confirm the competitor set -2. Confirm the time range and region -3. Clarify what kinds of events matter -4. Retrieve or review relevant information -5. Organize it into a structured intelligence brief with impact assessment - -### 中文任务映射 -- “跟踪一下最近竞品动态” → `collect` 或 `run` -- “做一份竞对周报” → `run` -- “最近竞品有什么动作” → `collect` -- “帮我长期监控这几个竞品” → `plan-recurring` + `schedule-job` -- “看下竞品最近有没有融资/发布新产品” → `collect` + category filtering - - -## Input Requirements - -| Field | Required | Description | -|-------|----------|-------------| -| competitors | yes | Company names, brands, or product lines | -| objective | yes | Monitoring, weekly digest, event scan, strategic watch | -| time range | no | Today, past 7 days, month, quarter, custom | -| geography | no | Country, region, or market | -| event categories | no | Product launch, pricing, partnership, hiring, financing, regulation, PR, channel | -| output depth | no | Brief scan / standard intelligence / detailed watch | -| audience | no | Founder, strategy team, sales, product, leadership | - -## Workflow Decision Tree - -### Quick Monitoring Brief -Use this for short competitor update summaries. - -### Standard Intelligence Brief -Use this for grouped event analysis with implications. - -### Strategic Watch -Use this when the user wants patterns, momentum, and what to watch next. - -### Recurring Monitoring -Use this when the user wants periodic competitor watch outputs. Pair with `schedule-job`. - -## Instructions - -### Step 1: Define monitoring scope -Clarify: -- which competitors matter most -- which kinds of events matter most -- what decision the monitoring should support - -### Step 2: Gather evidence -Use available search skills such as `baidu-search` when current information is needed. - -For each relevant update, capture: -- competitor -- date -- event type -- short description -- source - -### Step 3: Classify events -Typical categories: -- product / feature launch -- pricing or packaging change -- partnership or channel move -- hiring or org change -- financing or M&A -- regulatory or compliance issue -- brand or PR movement - -### Step 4: Assess impact -For each important event, explain: -- likely business impact -- urgency level -- affected function (sales, product, strategy, marketing) -- whether follow-up monitoring is needed - -### Step 5: Produce intelligence output -Do not stop at listing news. Synthesize patterns across competitors when possible. - -## Scripts - -### CLI Usage - -Use the following commands when you need stable structured outputs: - -```bash -poetry run python skills/competitor-news-intel/scripts/intel_cli.py collect --input-json '' -poetry run python skills/competitor-news-intel/scripts/intel_cli.py analyze --input-json '' --output json -poetry run python skills/competitor-news-intel/scripts/intel_cli.py run --input-json '' --output json -poetry run python skills/competitor-news-intel/scripts/intel_cli.py plan-recurring --input-json '' -``` - -### Recommended Uses -- `collect` - gather candidate competitor developments -- `analyze` - classify, deduplicate, and assess impact from collected events -- `run` - complete end-to-end intelligence generation -- `plan-recurring` - generate a schedule-ready monitoring message for `schedule-job` -- Real-time collection requires `BAIDU_API_KEY` - -```markdown -# Competitor News Intelligence Brief - -## Summary -[Short overview of the competitive landscape during the period] - -## Monitoring Scope -- Competitors: -- Time range: -- Geography: -- Key event categories: - -## Key Developments -### [Competitor / Event] -- Date: -- Category: -- What happened: -- Why it matters: -- Impact level: Low / Medium / High -- Suggested follow-up: - -## Cross-Competitor Patterns -- [Pattern] - -## Risks and Opportunities for Us -- [Implication] - -## Watch List -- [Item to keep monitoring] - -## Source Log -- [Source] - [Date] - [Competitor] - [Headline or key point] -``` - -## Quality Checklist - -Before finalizing, verify: -- the scope matches the requested competitors and timeframe -- event categories are consistent -- impact labels are justified, not arbitrary -- links or sources are attributable -- repeated news is de-duplicated -- the brief includes implications, not just headlines - -## Fallback Strategy - -If the evidence is sparse: -- return a lighter monitoring brief -- highlight missing visibility -- recommend additional competitors, keywords, or sources to track - -## Related Skills - -- `skills/baidu-search/SKILL.md` - retrieve current external information -- `skills/auto-daily-summary/SKILL.md` - condense larger result sets into shorter periodic summaries -- `skills/schedule-job/SKILL.md` - automate recurring competitor monitoring -- `skills/market-academic-insight/SKILL.md` - use when the task broadens into industry or technology research - -## Examples - -**User**: "帮我跟踪一下最近一周几家竞品的新闻" - -Expected output: -- structured competitor brief -- event categorization -- impact assessment -- watch list - -**User**: "做一份竞对情报周报" - -Expected output: -- weekly summary -- grouped developments -- cross-competitor patterns -- implications for our team - -**User**: "最近竞品有什么动作?" - -Expected output: -- recent developments -- event categories -- impact notes - -**User**: "帮我长期监控这几个竞品" - -Expected output: -- monitoring structure -- recommendation to combine with `schedule-job` -- suggested recurring payload - -**User**: "看下竞品最近有没有融资或者发新品" - -Expected output: -- filtered developments -- impact assessment -- follow-up watch list - diff --git a/skills/linggan/contract-document-generator/SKILL.md b/skills/linggan/contract-document-generator/SKILL.md deleted file mode 100644 index a76c1aa..0000000 --- a/skills/linggan/contract-document-generator/SKILL.md +++ /dev/null @@ -1,188 +0,0 @@ ---- -name: contract-document-generator -description: Draft contracts and formal business documents, rewrite clauses, identify risks, and organize negotiation-ready language. Use when the user asks for contract drafting, clause revision, legal-style document generation, formal agreement structuring, or document-ready policy and terms content. 中文触发词包括:合同起草、协议生成、条款修改、风险审查、保密协议、正式文档撰写。 -category: Writing & Reporting ---- - -# Contract & Document Generator - -## Overview - -This skill handles the **content layer** of contracts and formal documents: -- drafting and rewriting clauses -- structuring agreements -- highlighting risks and ambiguities -- preparing negotiation-ready revisions - -It does **not** replace file-format skills. Use `docx` and `pdf` for the final document container when needed. - -## Quick Start - -When the user asks for a contract or formal document: - -1. Identify the document type -2. Clarify the governing context and required clauses -3. Confirm whether the task is drafting, editing, summarizing, or risk review -4. Produce a structured output with clear labels for assumptions and unresolved items -5. If the user needs a file, pass the final content to `docx` or `pdf` - -### 中文任务映射 -- “起草一份合同” → new draft -- “改一下这段条款” → clause revision -- “审一下风险” → risk review -- “整理成正式文件” → draft + docx/pdf handoff - - -## Input Requirements - -| Field | Required | Description | -|-------|----------|-------------| -| document type | yes | NDA, service agreement, employment clause, terms, policy, notice, memo | -| objective | yes | Drafting, revision, review, comparison, simplification | -| parties / stakeholders | no | The involved entities or roles | -| jurisdiction / governing law | no | Legal or regional context | -| must-have clauses | no | Required provisions | -| prohibited or risky clauses | no | Clauses to avoid or watch | -| tone / style | no | Formal, plain language, business-friendly, negotiation-ready | -| output format | no | Clause list, full draft, risk memo, redline guidance | - -## Workflow Decision Tree - -### New Draft -Use when the user wants a first version of a contract or formal document. - -### Clause Revision -Use when the user wants to rewrite specific language, tighten wording, or simplify terms. - -### Risk Review -Use when the user wants to understand what is risky, ambiguous, one-sided, or incomplete. - -### Comparison / Negotiation Support -Use when the user wants a position memo, fallback language, or issue-by-issue negotiation guidance. - -## Instructions - -### Step 1: Define document role -Clarify what the document is supposed to do: -- bind parties -- allocate risk -- state responsibilities -- define process -- provide internal or external communication - -### Step 2: Identify the minimum structure -Typical sections may include: -- parties and definitions -- scope -- payment or consideration -- obligations -- confidentiality -- IP ownership -- term and termination -- liability and indemnity -- dispute resolution -- notices - -Only include sections relevant to the user’s objective. - -### Step 3: Mark assumptions explicitly -If party names, law, numbers, dates, or scope are missing, mark them as placeholders instead of inventing them. - -### Step 4: Review for risk and ambiguity -Check for: -- undefined terms -- missing triggers or deadlines -- one-sided liability allocation -- vague performance obligations -- inconsistent terms across sections - -### Step 5: Package the output for the user’s goal -Depending on the request, return one of: -- full draft -- clause alternatives -- risk memo -- revision guidance -- negotiation checklist - -## Output Format - -### Full Draft Mode -```markdown -# [Document Title] - -## Draft Notes -- Purpose: -- Assumptions: -- Jurisdiction status: - -## Draft -[Full structured document] - -## Open Items -- [Missing information] -``` - -### Risk Review Mode -```markdown -# Contract Risk Review - -## Summary -[Short overall view] - -## Key Risks -### 1. [Risk] -- Clause / section: -- Why it matters: -- Suggested revision: - -## Missing Terms -- [Item] - -## Negotiation Suggestions -- [Suggestion] -``` - -## Quality Checklist - -Before finalizing, verify: -- placeholders are clearly marked -- legal assumptions are not presented as confirmed facts -- obligations, timing, and consequences are clear -- defined terms are used consistently -- risk comments are concrete and actionable -- document structure matches the user’s purpose - -## Fallback Strategy - -If legal context is unclear: -- provide a business draft -- mark jurisdiction-specific items as requiring legal review -- avoid pretending to give definitive legal advice - -## Related Skills - -- `skills/docx/SKILL.md` - generate a formal `.docx` document or tracked-change revision -- `skills/pdf/SKILL.md` - extract, archive, or distribute final documents in PDF - -## Examples - -**User**: "帮我起草一份软件服务合同" - -Expected output: -- structured draft -- placeholders for missing commercial terms -- open items section - -**User**: "把这段保密条款改得更平衡一些" - -Expected output: -- revised clause -- explanation of changes -- negotiation rationale if useful - -**User**: "审一下这份合同有哪些风险" - -Expected output: -- risk summary -- clause-by-clause risks -- suggested revisions diff --git a/skills/linggan/financial-report-generator/SKILL.md b/skills/linggan/financial-report-generator/SKILL.md deleted file mode 100644 index 95425ef..0000000 --- a/skills/linggan/financial-report-generator/SKILL.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -name: financial-report-generator -description: Generate management-friendly financial reporting outputs from structured financial data, including KPI summaries, variance analysis, risk notes, and reporting narratives. Use when the user asks for financial reports, management reporting, monthly or quarterly performance summaries, or finance-oriented document generation. 中文触发词包括:财务月报、财务季报、经营分析、管理层汇报、董事会报告、财务简报。 -category: Writing & Reporting ---- - -# Financial Report Generator - -## Overview - -This skill turns financial data into a reporting package that is readable, auditable, and decision-oriented. - -It is **not** a replacement for the underlying spreadsheet skill. Instead, it sits above spreadsheet handling and focuses on: -- metric interpretation -- variance explanation -- management reporting structure -- finance-oriented narrative output - -## Quick Start - -When the user asks for a financial report: - -1. Confirm the reporting period and reporting objective -2. Identify the source data format (`xlsx`, `csv`, exported tables, manual numbers) -3. Confirm the reporting audience (operator, finance lead, management, board, investor) -4. If spreadsheets need to be read or generated, reuse the `xlsx` skill -5. Produce a finance brief that explains **what changed**, **why it matters**, and **what to do next** - -### 中文任务映射 -- “做一份财务月报” → standard financial report -- “整理成董事会简报” → board / management narrative -- “看下本月经营数据有什么异常” → KPI summary + variance analysis - - -## Input Requirements - -| Field | Required | Description | -|-------|----------|-------------| -| reporting objective | yes | Why this report is needed | -| reporting period | yes | Month, quarter, year, or custom date range | -| data source | yes | File, table, pasted data, or existing workbook | -| currency / unit | no | Currency and scale such as RMB, USD, thousands, millions | -| key metrics | no | Revenue, gross margin, burn, CAC, payback, cashflow, etc. | -| comparison basis | no | vs budget, vs last month, vs last quarter, vs last year | -| audience | no | Finance, management, board, investor | -| output format | no | Markdown, HTML outline, DOCX-ready outline, XLSX companion | - -## Workflow Decision Tree - -### KPI Summary Only -Use this when the user only needs a concise performance snapshot. - -### Standard Financial Report -Use this when the user needs: -- core metrics -- variance analysis -- business interpretation -- risk notes -- recommendations - -### Board / Management Narrative -Use this when the user needs a report suitable for leadership review, not just raw data output. - -## Instructions - -### Step 1: Normalize the reporting frame -Clarify: -- reporting period -- comparison basis -- unit and currency -- whether numbers are actuals, budget, forecast, or scenario assumptions - -### Step 2: Identify core metrics -Select the metrics that matter for the objective. Typical categories: -- revenue and growth -- cost and margin -- expense structure -- cash and runway -- customer economics -- forecast vs actual variance - -### Step 3: Explain movements -For material changes, answer: -- what changed -- compared with what -- likely driver -- business significance - -Do not just restate percentages without interpretation. - -### Step 4: Separate data from commentary -Keep these layers distinct: -- reported numbers -- derived observations -- management interpretation -- recommendation or follow-up - -### Step 5: Recommend output packaging -If the user needs a file artifact: -- use `xlsx` for workbook generation or structured tables -- use `docx` for formal reporting documents -- use `pdf` for final distribution or archival - -## Output Format - -```markdown -# [Financial Report Title] - -## Executive Summary -[Short summary of performance, movement, and implications] - -## Reporting Scope -- Period: -- Comparison basis: -- Currency / unit: -- Audience: - -## KPI Snapshot -| Metric | Current | Comparison | Variance | Comment | -|--------|---------|------------|----------|---------| - -## Key Drivers -### 1. [Driver] -- What changed: -- Why it changed: -- Business implication: - -## Risks and Watch Items -- [Risk] - -## Recommended Actions -1. [Action] -2. [Action] - -## Data Notes -- Assumptions: -- Missing fields: -- Confidence / caveats: -``` - -## Quality Checklist - -Before finalizing, verify: -- units and currency are explicit -- actuals, budget, and forecast are not mixed without labeling -- large variances are explained, not merely listed -- missing assumptions are disclosed -- conclusions are tied to metrics -- output is understandable for the stated audience - -## Fallback Strategy - -If the data is incomplete: -- provide a partial report with clear caveats -- mark where assumptions were required -- list the missing fields needed for a full report - -## Related Skills - -- `skills/xlsx/SKILL.md` - spreadsheet analysis, workbook generation, formula discipline -- `skills/docx/SKILL.md` - create formal management or board documents -- `skills/pdf/SKILL.md` - generate or process final PDF outputs - -## Examples - -**User**: "根据这份月度财务表,帮我做一份管理层月报" - -Expected output: -- KPI summary -- major variances -- business interpretation -- risk notes -- action recommendations - -**User**: "把这份季度经营数据整理成董事会能看的报告结构" - -Expected output: -- executive summary -- KPI snapshot -- key drivers -- watch items -- recommended action framing diff --git a/skills/linggan/market-academic-insight/SKILL.md b/skills/linggan/market-academic-insight/SKILL.md deleted file mode 100644 index 0f775b7..0000000 --- a/skills/linggan/market-academic-insight/SKILL.md +++ /dev/null @@ -1,195 +0,0 @@ ---- -name: market-academic-insight -description: Generate structured market research and academic insight briefs with clear evidence, trends, risks, and opportunities. Use when the user asks for industry research, market trends, literature review, academic progress tracking, or evidence-based insight synthesis. 中文触发词包括:行业洞察、市场研究、学术综述、论文进展、趋势分析、研究简报。 -category: Search & Intelligence ---- - -# Market & Academic Insight - -## Overview - -This skill produces structured research briefs for two closely related scenarios: - -1. **Market insight** - industry trends, company landscape, competitor movement, regional opportunity, policy impact -2. **Academic insight** - literature scan, research progress summary, topic synthesis, evidence comparison, research gaps - -Use this skill when the user needs **research synthesis and judgment**, not just raw search results. - -## Quick Start - -When the user requests research or insight generation: - -1. Identify whether the request is primarily **market**, **academic**, or **hybrid** -2. Clarify the topic, time range, geography, audience, and output depth -3. If live information is required, use existing search skills such as `baidu-search` -4. Synthesize findings into a structured brief with **evidence separated from conclusions** - -### 中文任务映射 -- “做一份行业洞察” → market -- “总结一下论文进展” → academic -- “分析这个技术的产业机会” → hybrid -- “整理成研究简报” → standard brief - - -## Input Requirements - -Collect the following information before producing the final brief: - -| Field | Required | Description | -|-------|----------|-------------| -| topic | yes | Research topic, industry, company, or academic theme | -| mode | yes | `market` / `academic` / `hybrid` | -| objective | yes | What decision or understanding this research should support | -| time range | no | Recent month, quarter, year, or custom range | -| geography | no | Country, region, or market scope | -| audience | no | Executive, product team, investor, researcher, student | -| output language | no | Language for the final brief | -| depth | no | Quick brief / standard report / deep dive | -| -If information is missing, ask only for the fields that materially change the output. - -## Workflow Decision Tree - -### Market Insight Workflow -Use this path when the user asks about: -- market trends -- industry landscape -- competitor movement -- customer demand shifts -- regulatory or policy effects -- opportunity and risk assessment - -### Academic Insight Workflow -Use this path when the user asks about: -- literature review -- paper synthesis -- research frontier -- evidence comparison -- methodology trends -- open questions or research gaps - -### Hybrid Workflow -Use this path when the user wants both: -- market adoption + academic progress -- commercial relevance of a research area -- industry impact of an emerging technology - -## Instructions - -### Step 1: Define scope -Restate the research target in a precise sentence: -- what is being studied -- why it matters -- what decision it should support - -### Step 2: Gather evidence -Prefer recent, attributable sources. If live retrieval is needed, use `baidu-search` or other enabled search tools. - -For each key source, capture: -- source name -- date -- relevant claim or data point -- confidence or limitation - -### Step 3: Separate facts from interpretation -Always distinguish: -- **Evidence**: reported facts, data, quotes, findings -- **Analysis**: what those facts imply -- **Speculation**: what may happen next - -Never present an assumption as a confirmed fact. - -### Step 4: Synthesize by theme -Group findings into 3-6 themes such as: -- growth drivers -- demand shifts -- technology maturity -- methodological differences -- adoption barriers -- competitive positioning - -### Step 5: Produce conclusions -End with concise insight statements that answer the user’s objective, not just summarize materials. - -## Output Format - -Use the following structure by default: - -```markdown -# [Title] - -## Executive Summary -[3-6 sentence summary] - -## Research Scope -- Topic: -- Mode: -- Time range: -- Geography: -- Audience: - -## Key Findings -### 1. [Theme] -- Evidence: -- Interpretation: -- Implication: - -### 2. [Theme] -- Evidence: -- Interpretation: -- Implication: - -## Risks and Uncertainties -- [Risk / limitation] - -## Opportunities or Next Steps -- [Actionable recommendation] - -## Evidence Log -- [Source] - [Date] - [Key point] -``` - -## Quality Checklist - -Before finalizing, verify: -- conclusions directly answer the user’s goal -- evidence and judgment are clearly separated -- time range and geography are explicit when relevant -- contradictory evidence is acknowledged -- outdated or weak evidence is labeled as such -- no fabricated citations or unverified claims are included - -## Fallback Strategy - -If evidence is limited: -- say what is known -- say what remains uncertain -- suggest what additional sources or validation would improve confidence - -Do not invent detail to make the brief look complete. - -## Related Skills - -- `skills/baidu-search/SKILL.md` - retrieve current external information -- `skills/auto-daily-summary/SKILL.md` - condense a large evidence set into a recurring summary -- `skills/competitor-news-intel/SKILL.md` - competitor-focused monitoring and intelligence - -## Examples - -**User**: "帮我做一份中国 AI Agent 市场趋势洞察" - -Output should include: -- market scope and timeframe -- major players and movement -- demand signals -- risks and opportunities -- evidence log - -**User**: "总结一下多模态检索近一年的学术进展" - -Output should include: -- research scope -- major themes -- representative findings -- open research gaps -- evidence log diff --git a/skills/linggan/ragflow-loader/.claude-plugin/plugin.json b/skills/linggan/ragflow-loader/.claude-plugin/plugin.json deleted file mode 100644 index e106987..0000000 --- a/skills/linggan/ragflow-loader/.claude-plugin/plugin.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "ragflow-loader", - "description": "知识库检索服务", - "hooks": { - "PrePrompt": [ - { - "type": "command", - "command": "python hooks/pre_prompt.py" - } - ] - }, - "mcpServers": { - "rag_retrieve": { - "transport": "http", - "url": "http://host.docker.internal:9382/mcp/", - "headers": { - "api_key": "ragflow-utqbVQDtWDeOumJEsqItG_X4PCckeIOghNXcU37K8Hs", - "X-Dataset-Ids": "{dataset_ids}" - } - } - }, - "category": "Data & Retrieval" -} diff --git a/skills/linggan/sales-decision-report/SKILL.md b/skills/linggan/sales-decision-report/SKILL.md deleted file mode 100644 index b4aedc0..0000000 --- a/skills/linggan/sales-decision-report/SKILL.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -name: sales-decision-report -description: Analyze sales data and produce decision-oriented reports with KPI summaries, anomaly explanation, channel and region analysis, and HTML-ready report structure. Use when the user asks for sales analysis, management dashboards, sales summaries, or decision reports from business data. 中文触发词包括:销售分析、经营分析、销售周报、销售月报、数据决策报告、HTML 报表。 -category: Writing & Reporting ---- - -# Sales Decision Report - -## Overview - -This skill turns sales data into a decision report for operators, managers, and leadership teams. - -It focuses on: -- KPI interpretation -- trend and anomaly analysis -- region / channel / product comparisons -- action-oriented reporting -- HTML-ready report structure for later automation - -## Quick Start - -When the user asks for a sales analysis report: - -1. Confirm the business objective -2. Confirm the source data and dimensions -3. Clarify comparison logic and reporting period -4. Analyze the data into findings, not just tables -5. Package the result as a structured report, optionally in HTML outline form - -### 中文任务映射 -- “做销售周报/销售月报” → quick summary 或 standard report -- “分析一下为什么业绩下滑” → diagnostic analysis -- “生成一个 HTML 报表结构” → HTML report structure -- “做经营分析和行动建议” → decision report - - -## Input Requirements - -| Field | Required | Description | -|-------|----------|-------------| -| business objective | yes | What decision the report should support | -| reporting period | yes | Daily, weekly, monthly, quarterly, custom | -| source data | yes | CSV, XLSX, pasted table, dashboard export | -| dimensions | no | Region, channel, product, team, customer segment | -| target / benchmark | no | Budget, target, last period, YoY, MoM | -| key KPIs | no | Revenue, orders, conversion, AOV, repeat rate, returns | -| audience | no | Sales ops, regional lead, GM, founder | -| output mode | no | Summary / detailed report / HTML-ready outline | - -## Workflow Decision Tree - -### Quick Sales Summary -Use for short KPI snapshots and headline findings. - -### Diagnostic Analysis -Use when the user wants to know why performance moved. - -### Decision Report -Use when the user wants recommendations, priorities, and next actions. - -### HTML Report Structure -Use when the user explicitly wants an HTML report or a report that will later be automated into HTML. - -## Instructions - -### Step 1: Frame the question -Clarify whether the report is about: -- performance monitoring -- problem diagnosis -- opportunity finding -- action prioritization - -### Step 2: Read the data by level -Review performance across: -- total performance -- time trend -- region -- channel -- product or category -- customer segment - -Only include dimensions that materially affect the decision. - -### Step 3: Identify meaningful changes -Look for: -- sharp increases or declines -- missed targets -- concentration risks -- outlier regions or channels -- mix shifts -- repeatable strengths - -### Step 4: Turn findings into decisions -Each important finding should answer: -- what happened -- where it happened -- likely cause -- what action should follow - -### Step 5: Prepare report packaging -If HTML is requested, structure content into sections suitable for cards, tables, and chart blocks. - -## Output Format - -### Standard Report -```markdown -# [Sales Report Title] - -## Executive Summary -[Short performance summary] - -## Reporting Scope -- Period: -- Objective: -- Audience: -- Data source: - -## KPI Snapshot -| KPI | Current | Target / Comparison | Variance | Comment | -|-----|---------|---------------------|----------|---------| - -## Key Findings -### 1. [Finding] -- What happened: -- Why it matters: -- Likely cause: -- Recommended action: - -## Risks and Opportunities -- [Item] - -## Recommended Actions -1. [Action] -2. [Action] -``` - -### HTML-ready Outline -```markdown -# HTML Report Structure - -## Page Header -- Title -- Period selector -- Summary badges - -## Section 1: KPI Cards -- Revenue -- Orders -- Conversion -- Average order value - -## Section 2: Trend Analysis -- Time-series highlights -- Major inflection points - -## Section 3: Breakdown Views -- Region table -- Channel table -- Product table - -## Section 4: Actions -- Priority actions -- Owners or next-step suggestions -``` - -## Quality Checklist - -Before finalizing, verify: -- the report supports a clear business decision -- metrics and benchmarks are labeled correctly -- anomalies are explained, not just surfaced -- recommendations follow logically from findings -- dimensions are not overloaded without purpose -- HTML output is structured, not just prose copied into sections - -## Fallback Strategy - -If data quality is weak: -- note missing or inconsistent fields -- avoid overconfident conclusions -- provide best-effort observations plus a data cleanup list - -## Related Skills - -- `skills/xlsx/SKILL.md` - spreadsheet reading, analysis, and output handling -- `skills/financial-report-generator/SKILL.md` - finance-oriented reporting when the task is more financial than sales-oriented -- `skills/auto-daily-summary/SKILL.md` - recurring condensed summary outputs - -## Examples - -**User**: "根据这份销售表做一个月度经营分析" - -Expected output: -- KPI summary -- channel/region findings -- anomalies -- recommended actions - -**User**: "帮我生成一个销售分析 HTML 报表结构" - -Expected output: -- HTML-ready page outline -- sections for KPI, trends, breakdowns, and action items diff --git a/skills/linggan/seedream/SKILL.md b/skills/linggan/seedream/SKILL.md deleted file mode 100755 index 4697b71..0000000 --- a/skills/linggan/seedream/SKILL.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -name: seedream -description: 使用火山引擎 Seedream/Seedance API 生成高质量图片和视频。适用于文生图、图生图、文生视频、图生视频以及生成关联组图的场景。 -category: Creative Generation ---- - -# Seedream - -本 Skill 封装了火山引擎(Volcengine)的 Seedream-4.5 图片生成和 Seedance-1.5 视频生成能力,支持文生图、图生图、文生视频、图生视频。 - -## 使用方法 - -### 文生图 -生成单张图片(默认分辨率): -```bash -python {baseDir}/scripts/generate_image.py --prompt "一只赛博朋克风格的猫" -``` - -指定分辨率(如 2K, 4K 或具体像素): -```bash -python {baseDir}/scripts/generate_image.py --prompt "壮丽的山川日出" --size "2K" -``` - -### 图生图 -提供参考图片 URL: -```bash -python {baseDir}/scripts/generate_image.py --prompt "将其风格变为印象派" --image "https://example.com/input.jpg" -``` - -### 生成组图 -生成一组内容关联的图片(最多 15 张): -```bash -python {baseDir}/scripts/generate_image.py --prompt "一个宇航员在不同行星上的探险经历" --sequential --max-images 4 -``` - -## 参数说明 - -- `--prompt`: (必选) 图像生成的文本描述。 -- `--model`: (可选) 模型 ID,默认为 `doubao-seedream-4-5-251128`。 -- `--size`: (可选) 图像尺寸。支持 `2K`, `4K` 或 `2048x2048` 等格式。 -- `--image`: (可选) 参考图 URL 或 Base64 编码。 -- `--sequential`: (可选) 开启组图生成功能。 -- `--max-images`: (可选) 组图生成的最大图片数量(1-15)。 - -## 工作流 - -1. 调用 `generate_image.py` 脚本。 -2. 脚本会输出以 `MEDIA_URL: ` 开头的图片链接。 -3. 提取链接并使用 Markdown 语法展示:`![Generated Image](URL)`。 -4. 除非用户要求,否则无需下载图片。 - -## 注意事项 - -- Seedream-4.5 支持中英文提示词。 -- 组图功能仅在 Seedream-4.5/4.0 模型中有效。 -- 确保提供的图片 URL 可公开访问。 - ---- - -## 视频生成 - -### 文生视频 -```bash -python {baseDir}/scripts/generate_video.py --prompt "无人机以极快速度穿越复杂障碍或自然奇观,带来沉浸式飞行体验" -``` - -### 图生视频 -提供参考图片 URL: -```bash -python {baseDir}/scripts/generate_video.py --prompt "让画面中的人物动起来" --image "https://example.com/input.jpg" -``` - -指定视频时长(5 或 10 秒): -```bash -python {baseDir}/scripts/generate_video.py --prompt "日出延时摄影" --duration 10 -``` - -固定摄像机位: -```bash -python {baseDir}/scripts/generate_video.py --prompt "一只猫在桌上跳跃" --camera-fixed -``` - -### 视频参数说明 - -- `--prompt`: (必选) 视频生成的文本描述。 -- `--model`: (可选) 模型 ID,默认为 `doubao-seedance-1-5-pro-251215`。 -- `--image`: (可选) 参考图 URL,用于图生视频。 -- `--duration`: (可选) 视频时长,5 或 10 秒,默认 5。 -- `--camera-fixed`: (可选) 固定摄像机位。 -- `--no-watermark`: (可选) 去除水印。 -- `--poll-interval`: (可选) 轮询间隔秒数,默认 5。 -- `--max-wait`: (可选) 最大等待秒数,默认 600。 - -### 视频生成工作流 - -1. 调用 `generate_video.py` 脚本。 -2. 脚本会自动创建异步任务并轮询结果。 -3. 完成后输出以 `MEDIA_URL: ` 开头的视频链接。 -4. 提取链接并展示给用户(视频链接可直接访问)。 -5. 视频生成通常需要 1-3 分钟,请耐心等待。 - -### 视频注意事项 - -- Seedance 视频生成是异步任务,脚本会自动轮询等待结果。 -- 支持中英文提示词。 -- 图生视频时,确保图片 URL 可公开访问。 diff --git a/skills/linggan/static-hosting/SKILL.md b/skills/linggan/static-hosting/SKILL.md deleted file mode 100644 index 9309372..0000000 --- a/skills/linggan/static-hosting/SKILL.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: static-hosting -description: Serve static HTML/CSS/JS/images from robot project directories via the built-in FastAPI static file server. Use when generating web pages, reports, or interactive content for a bot. -category: Web Services ---- - -# Static Hosting - -Host static files (HTML, CSS, JS, images, fonts, etc.) under the bot's project directory and get public URLs. - -## Usage - -Write files to `/app/projects/robot/{ASSISTANT_ID}/`, then run the script to get the public URL: - -```bash -python3 {SKILL_DIR}/scripts/get_url.py -``` - -Example: - -```bash -python3 {SKILL_DIR}/scripts/get_url.py /app/projects/robot/{ASSISTANT_ID}/index.html -# => https://engine.aitravelmaster.com/robots/[bot-id]/index.html -``` - -## Notes - -- Inside HTML, use **relative paths** to reference other assets (e.g. `href="css/style.css"`) -- `index.html` is auto-served at the directory URL -- All files under `/robots/` are publicly accessible, no authentication diff --git a/skills/linggan/static-site-deploy/SKILL.md b/skills/linggan/static-site-deploy/SKILL.md deleted file mode 100644 index cb077bf..0000000 --- a/skills/linggan/static-site-deploy/SKILL.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -name: static-site-deploy -description: |- - Deploy, download, and browse static HTML sites on VPS via FTP. -triggers: - - deploy static site - - deploy html - - deploy to vps - - static deploy - - download from vps - - list files on vps - - browse ftp - - read file from vps - - 部署静态网站 - - 部署HTML - - 部署到VPS - - 从服务器下载 - - 浏览服务器文件 - - 读取服务器文件 -category: Web Services ---- - -# Static Site Deploy - -Upload, download, read, and browse static HTML files on a VPS via FTP. - -## Use when - -- Deploying static HTML/CSS/JS files to a VPS -- Downloading deployed files from VPS -- Reading file contents directly from VPS (without downloading to local) -- Browsing files and directories on VPS -- Publishing a single-page app, landing page, or documentation site -- User says "deploy", "upload to server", "publish site", "download from server", "read file", or "list files" - -## Prerequisites - -- ASSISTANT_ID environment variable must be set (bot_id) -- Deployment script configured with FTP credentials - -## Deployment Workflow - -### Phase 1: Prepare - -1. Identify the source directory (e.g., `./dist/`, `./build/`, `./public/`, or user-specified) -2. Determine `project-name`: - - From user input, OR - - From the source directory's parent folder name -3. Verify ASSISTANT_ID environment variable is set - -### Phase 2: Deploy - -Execute the deploy script: - -```bash -# Basic usage -bash scripts/deploy.sh - -# With custom config -bash scripts/deploy.sh --config /path/to/config.yml - -# Dry run (preview without uploading) -bash scripts/deploy.sh --dry-run -``` - -The script will: -- Upload files to VPS -- Show deployment summary and progress -- Verify deployment via FTP and HTTP checks - -### Phase 3: Verify - -The script automatically verifies: -1. **FTP verification** - confirms files are present on server -2. **HTTP verification** - confirms site is accessible (expects HTTP 200) - -Final output shows: -``` -=== Deploy Complete === -URL: https://domain/path/to/deploy/ -``` - -## Error Handling - -| Error | Detection | Fix | -|-------|-----------|-----| -| FTP connection refused | curl returns "connection refused" | Check FTP service is running, verify port | -| FTP auth failed | curl returns 530 | Check username/password in config | -| Upload permission denied | curl returns 553 | Check FTP user write permission on web_root | -| HTTP 404 | curl returns 404 | Confirm Nginx root matches FTP upload path | -| HTTP 403 | curl returns 403 | Fix permissions: files 644, directories 755 | - -## Implementation Notes - -- Use `scripts/deploy.sh` for uploading files to VPS -- Use `scripts/download.sh` for downloading files from VPS -- Use `scripts/list.sh` for browsing FTP directory contents -- Use `scripts/read.sh` for reading file contents directly from FTP (output to stdout) -- Verify ASSISTANT_ID environment variable is set before calling scripts -- Show the command to the user before executing -- The scripts handle all FTP operations, progress display, and verification - -## List Files Workflow - -To browse files on VPS: - -```bash -# List all projects under bot directory -bash scripts/list.sh - -# List files in a specific project -bash scripts/list.sh -``` - -The list script will: -- Read bot_id from ASSISTANT_ID environment variable -- Show directory contents from `/{bot_id}/` or `/{bot_id}/{project_name}/` -- Mark directories with trailing `/` -- Only list current directory level (non-recursive) - -## Download Workflow - -To download files from VPS: - -```bash -# Basic usage -bash scripts/download.sh - -# With custom config -bash scripts/download.sh --config /path/to/config.yml -``` - -The download script will: -- Read bot_id from ASSISTANT_ID environment variable -- Download files from `/{bot_id}/{project_name}/` -- Save to the specified target directory -- Show download summary and file count - -## Read File Workflow - -To read a file's content directly from VPS (output to stdout, no local download): - -```bash -# Read a file from a project -bash scripts/read.sh / - -# With custom config -bash scripts/read.sh /index.html --config /path/to/config.yml -``` - -The read script will: -- Read bot_id from ASSISTANT_ID environment variable -- Fetch the file from `/{bot_id}/{file-path}` via FTP -- Output file contents directly to stdout diff --git a/skills/linggan/voice-notification/SKILL.md b/skills/linggan/voice-notification/SKILL.md deleted file mode 100644 index 31b8ed4..0000000 --- a/skills/linggan/voice-notification/SKILL.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -name: voice-notification -description: Voice Notification - Push voice broadcast messages to active voice sessions for real-time TTS playback -category: Communication ---- - -# Voice Notification - Voice Broadcast - -Push voice broadcast messages to users' active voice sessions. The message will be played via TTS when the session is in idle state. - -## Quick Start - -When a user requests to send a voice notification: -1. Compose the message content -2. Call voice_notify.py to send the broadcast - -## Instructions - -### Tool Path - -```bash -python {skill_dir}/scripts/voice_notify.py broadcast --message "Your message here" -``` - -### Parameters - -| Parameter | Required | Description | -|-----------|----------|-------------| -| `--message` | Yes | The message content to be spoken via TTS | - -### Response - -- Success: `{"success": true, "queued": true}` -- Error: `{"success": false, "error": "..."}` - -## Examples - -**User**: "Send a voice notification: the meeting is starting" - -```bash -python {skill_dir}/scripts/voice_notify.py broadcast \ - --message "The meeting is starting soon, please get ready" -``` - -**User**: "Notify me via voice that my coffee is ready" - -```bash -python {skill_dir}/scripts/voice_notify.py broadcast \ - --message "Your coffee is ready, please come pick it up" -``` - -## Guidelines - -- The target user must have an active voice session connected to `/api/v3/voice/realtime` -- The voice session must be in lite mode (`voice_mode: "lite"`) -- Messages are queued and played when the session enters idle state -- Keep messages concise for better TTS experience -- Message language should match the user's preferred language diff --git a/skills/linggan/weather-china/SKILL.md b/skills/linggan/weather-china/SKILL.md deleted file mode 100644 index 6235002..0000000 --- a/skills/linggan/weather-china/SKILL.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -name: weather-china -description: 中国天气预报查询 - 基于中国天气网(weather.com.cn)获取7天天气预报和生活指数数据。纯 Python 实现,无需 API Key。 -version: 1.0.2 -tags: [weather, china, forecast, chinese, weather-cn, life-index, 7day-forecast] -metadata: {"openclaw":{"emoji":"🌤️","requires":{"bins":["python3"]}}} -allowed-tools: [exec] -category: Weather ---- - -# 中国天气预报查询 (China Weather) - -基于 [中国天气网](https://www.weather.com.cn) 获取 7 天天气预报和生活指数数据。纯 Python 实现,无需 API Key。 - -## Quick Usage - -```bash -# 查询天气(格式化文本输出) -python3 skills/weather-china/lib/weather_cn.py query 南京 -python3 skills/weather-china/lib/weather_cn.py query 北京 -python3 skills/weather-china/lib/weather_cn.py query 成都 - -# JSON 输出(结构化数据) -python3 skills/weather-china/lib/weather_cn.py json 上海 -``` - -## Example Output - -```text -城市: 南京 (代码: 101190101) -数据来源: weather.com.cn -查询时间: 2026-03-04 16:31:55 - -[4日(今天)] 阴转多云, 10℃/5℃, 东风 4-5级转3-4级 - 感冒指数: 易发 - 风较大,易发生感冒,注意防护。 - 运动指数: 较适宜 - 风力较强且气温较低,请进行室内运动。 - 过敏指数: 较易发 - 外出需远离过敏源,适当采取防护措施。 - 穿衣指数: 冷 - 建议着棉衣加羊毛衫等冬季服装。 - 洗车指数: 较不宜 - 风力较大,洗车后会蒙上灰尘。 - 紫外线指数: 最弱 - 辐射弱,涂擦SPF8-12防晒护肤品。 - -[5日(明天)] 阴转多云, 11℃/4℃, 北风 3-4级 - 感冒指数: 少发 - 无明显降温,感冒机率较低。 - ... -``` - -## Supported Cities - -支持查询中国天气网覆盖的所有城市和地区。输入城市名称即可自动搜索匹配,无需手动配置。 - -常见城市(如北京、上海、广州、深圳、成都、杭州、南京等 60+ 城市)已内置代码,查询更快。其他城市会通过搜索接口自动查找城市代码。 - -## Data Available - -- **7天预报**: 日期、天气状况、高/低温度、风向风力 -- **生活指数**: 感冒、运动、过敏、穿衣、洗车、紫外线等 - -## Use Cases - -当用户询问以下问题时使用本 skill: - -- "今天天气怎么样" -- "明天会下雨吗" -- "[城市名]天气预报" -- "南京这周天气如何" -- "出门需要带伞吗" -- "穿什么衣服合适" - -## Notes - -1. **数据来源**: 中国天气网,数据可能略有延迟 -2. **城市名称**: 使用标准城市名,如"成都"、"南京" -3. **网络依赖**: 需要能访问 -4. **无需 API Key**: 直接解析天气网页面数据