add language.json

This commit is contained in:
朱潮 2026-06-23 18:35:23 +08:00
parent 05ed2e8d45
commit e4af642268
51 changed files with 780 additions and 7 deletions

View File

@ -10,7 +10,7 @@ from typing import List, Optional
from dataclasses import dataclass
from fastapi import APIRouter, HTTPException, Query, UploadFile, File, Form
from pydantic import BaseModel
from utils.settings import SKILLS_DIR, PROJECT_NAME
from utils.settings import SKILLS_DIR, PROJECT_NAME, SKILL_DEFAULT_LANGUAGE
import aiofiles
logger = logging.getLogger('app')
@ -425,7 +425,87 @@ def get_skill_metadata_legacy(skill_path: str) -> Optional[dict]:
return None
def get_official_skills(base_dir: str) -> List[SkillItem]:
# Language code aliases. Keep aligned with utils/fastapi_utils.py:get_language_text.
_LANGUAGE_ALIASES = {
'jp': 'ja',
}
def normalize_language(lang: Optional[str]) -> Optional[str]:
"""Normalize a language code: lowercase + alias resolution.
Returns None for falsy input so callers can branch on "no language requested".
"""
if not lang:
return None
code = lang.strip().lower()
if not code:
return None
return _LANGUAGE_ALIASES.get(code, code)
def load_skill_translations(skill_path: str) -> dict:
"""Load language.json from a skill directory.
The file format is::
{
"ja": {"description": "...", "category": "..."},
"zh": {"description": "...", "category": "..."}
}
Missing file is treated as "no translations" and returns {}.
Malformed JSON or non-dict shape is logged as a warning and also returns {}
so a broken translation file never breaks the skill list endpoint.
"""
translations_path = os.path.join(skill_path, 'language.json')
if not os.path.exists(translations_path):
return {}
try:
with open(translations_path, 'r', encoding='utf-8') as f:
data = json.load(f)
except json.JSONDecodeError as e:
logger.warning(f"Invalid JSON in {translations_path}: {e}; falling back to defaults")
return {}
except Exception as e:
logger.warning(f"Failed to read {translations_path}: {e}; falling back to defaults")
return {}
if not isinstance(data, dict):
logger.warning(f"language.json must be a JSON object: {translations_path}")
return {}
return data
def apply_skill_translation(metadata: dict, skill_path: str, lang: Optional[str]) -> dict:
"""Override description/category in `metadata` with translations for `lang`.
Per-field fallback: if the requested language only translates one field,
the other keeps its default value. Unknown language => no change.
Mutates and returns `metadata` for caller convenience.
"""
if not lang:
return metadata
translations = load_skill_translations(skill_path)
if not translations:
return metadata
entry = translations.get(lang)
if not isinstance(entry, dict):
return metadata
translated_description = entry.get('description')
if isinstance(translated_description, str) and translated_description.strip():
metadata['description'] = translated_description
translated_category = entry.get('category')
if isinstance(translated_category, str) and translated_category.strip():
metadata['category'] = translated_category
return metadata
def get_official_skills(base_dir: str, language: Optional[str] = None) -> List[SkillItem]:
"""Get all official skills from the skills directory
Args:
@ -461,6 +541,7 @@ def get_official_skills(base_dir: str) -> List[SkillItem]:
if os.path.isdir(skill_path):
metadata = get_skill_metadata_legacy(skill_path)
if metadata:
apply_skill_translation(metadata, skill_path, language)
skills.append(SkillItem(
name=metadata['name'],
description=metadata['description'],
@ -473,7 +554,7 @@ def get_official_skills(base_dir: str) -> List[SkillItem]:
return skills
def get_user_skills(base_dir: str, bot_id: str) -> List[SkillItem]:
def get_user_skills(base_dir: str, bot_id: str, language: Optional[str] = None) -> List[SkillItem]:
"""Get all user uploaded skills for a specific bot
Args:
@ -495,6 +576,7 @@ def get_user_skills(base_dir: str, bot_id: str) -> List[SkillItem]:
if os.path.isdir(skill_path):
metadata = get_skill_metadata_legacy(skill_path)
if metadata:
apply_skill_translation(metadata, skill_path, language)
skills.append(SkillItem(
name=metadata['name'],
description=metadata['description'],
@ -508,13 +590,20 @@ def get_user_skills(base_dir: str, bot_id: str) -> List[SkillItem]:
@router.get("/api/v1/skill/list", response_model=SkillListResponse)
async def list_skills(
bot_id: str = Query(..., description="Bot ID to fetch user skills for")
bot_id: str = Query(..., description="Bot ID to fetch user skills for"),
language: Optional[str] = Query(
None,
description="Optional language code (e.g. ja, zh, en). When provided, "
"description/category are replaced with translations from "
"the skill's language.json. Unknown codes fall back silently.",
)
):
"""
Get list of all available skills (official + user uploaded)
Args:
bot_id: Bot ID to fetch user uploaded skills for
language: Optional language code for description/category translation
Returns:
SkillListResponse containing all skills
@ -523,21 +612,31 @@ async def list_skills(
- Official skills are read from /skills/common and /skills/{PROJECT_NAME}
- User skills are read from /projects/uploads/{bot_id}/skills directory
- User skills are marked with user_skill: true
- language=jp is treated as ja (consistent with chat API)
- When language is omitted, falls back to SKILL_DEFAULT_LANGUAGE env var;
if that is also empty, returns the original description/category.
"""
try:
# Get the project base directory
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Resolve effective language:
# 1. Query param wins when explicitly provided.
# 2. Otherwise fall back to SKILL_DEFAULT_LANGUAGE env var.
# 3. If neither is set, lang == None -> no translation override.
effective_language = language if language else SKILL_DEFAULT_LANGUAGE
lang = normalize_language(effective_language)
# Get official skills
official_skills = get_official_skills(base_dir)
official_skills = get_official_skills(base_dir, language=lang)
# Get user skills for the specific bot
user_skills = get_user_skills(base_dir, bot_id)
user_skills = get_user_skills(base_dir, bot_id, language=lang)
# Combine both lists (user skills first)
all_skills = user_skills + official_skills
logger.info(f"Found {len(official_skills)} official skills and {len(user_skills)} user skills for bot {bot_id}")
logger.info(f"Found {len(official_skills)} official skills and {len(user_skills)} user skills for bot {bot_id} (language={lang})")
return SkillListResponse(
skills=all_skills,

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "PrePrompt フックと MCP サーバーを通じて、RAG およびテーブル RAG の検索ツールを提供します。",
"category": "データ・取得"
},
"zh": {
"description": "通过 PrePrompt 钩子和 MCP 服务器提供 RAG 与表格 RAG 检索工具。",
"category": "数据检索"
},
"en": {
"description": "Provides RAG and table RAG retrieval tools through a PrePrompt hook and MCP server.",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "PrePrompt フックと MCP サーバーを通じて、RAG およびテーブル RAG の検索ツールを提供します。",
"category": "データ・取得"
},
"zh": {
"description": "通过 PrePrompt 钩子和 MCP 服务器提供 RAG 与表格 RAG 检索工具。",
"category": "数据检索"
},
"en": {
"description": "Provides RAG and table RAG retrieval tools through a PrePrompt hook and MCP server.",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "mcp-ui プロトコルを利用して、データをインタラクティブなダッシュボードカード UI としてレンダリングします。",
"category": "インタラクティブ UI"
},
"zh": {
"description": "使用 mcp-ui 协议将数据渲染为可交互的仪表盘卡片 UI。",
"category": "交互式 UI"
},
"en": {
"description": "Renders data as an interactive dashboard card UI using the mcp-ui protocol.",
"category": "Interactive UI"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "変更履歴、コメント、書式の保持、テキスト抽出に対応した、包括的な文書の作成・編集・分析機能。Claude がプロフェッショナルな文書(.docx ファイル)を扱う必要がある場合に使用します:(1) 新規文書の作成、(2) 内容の変更・編集、(3) 変更履歴の操作、(4) コメントの追加、その他あらゆる文書関連タスク。",
"category": "文書処理"
},
"zh": {
"description": "全面的文档创建、编辑与分析能力,支持修订追踪、批注、格式保留与文本抽取。当 Claude 需要处理专业文档(.docx 文件)时使用,包括:(1) 创建新文档,(2) 修改或编辑内容,(3) 处理修订追踪,(4) 添加批注,以及其他任何文档相关任务。",
"category": "文档处理"
},
"en": {
"description": "Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks",
"category": "Document Processing"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "IMAP/SMTP 経由でメールを読み書きします。新着・未読メッセージの確認、本文の取得、メールボックスの検索、既読/未読のマーク付け、添付ファイル付きメールの送信に対応します。標準的な IMAP/SMTP サーバーで動作します。",
"category": "コミュニケーション"
},
"zh": {
"description": "通过 IMAP/SMTP 收发邮件。支持检查新邮件/未读邮件、获取邮件内容、搜索邮箱、标记已读/未读、以及发送带附件的邮件。可与任何标准的 IMAP/SMTP 服务器配合使用。",
"category": "通讯协作"
},
"en": {
"description": "Read and send email via IMAP/SMTP. Check for new/unread messages, fetch content, search mailboxes, mark as read/unread, and send emails with attachments. Works with any standard IMAP/SMTP server.",
"category": "Communication"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "MCP ツールのレスポンスを通じて、インタラクティブな UI コンポーネントを提供します。",
"category": "インタラクティブ UI"
},
"zh": {
"description": "通过 MCP 工具响应提供可交互的 UI 组件。",
"category": "交互式 UI"
},
"en": {
"description": "Provides interactive UI components through MCP tool responses.",
"category": "Interactive UI"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "テキストや表の抽出、新規 PDF の作成、文書のマージ/分割、フォーム処理に対応する、包括的な PDF 操作ツールキット。Claude が PDF フォームに入力する必要がある場合や、PDF 文書をプログラムで大規模に処理・生成・解析する必要がある場合に使用します。",
"category": "文書処理"
},
"zh": {
"description": "全面的 PDF 操作工具集,支持文本与表格抽取、创建新 PDF、合并/拆分文档以及表单处理。当 Claude 需要填写 PDF 表单,或大批量地以编程方式处理、生成、分析 PDF 文档时使用。",
"category": "文档处理"
},
"en": {
"description": "Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.",
"category": "Document Processing"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "プレゼンテーションの作成・編集・分析。Claude がプレゼンテーション(.pptx ファイル)を扱う必要がある場合に使用します:(1) 新規プレゼンテーションの作成、(2) 内容の変更・編集、(3) レイアウト操作、(4) コメントや発表者ノートの追加、その他あらゆるプレゼンテーション関連タスク。",
"category": "文書処理"
},
"zh": {
"description": "演示文稿的创建、编辑与分析。当 Claude 需要处理演示文稿(.pptx 文件)时使用,包括:(1) 创建新演示文稿,(2) 修改或编辑内容,(3) 处理版式布局,(4) 添加批注或演讲者备注,以及其他任何演示文稿相关任务。",
"category": "文档处理"
},
"en": {
"description": "Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks",
"category": "Document Processing"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "ファイルをアップロードし、公開 URL または一時 URL を返します。アセットの公開、ファイルの共有、他のスキルにアップロード用のヘルパーを提供したい場合に使用します。",
"category": "Web サービス"
},
"zh": {
"description": "上传文件并返回公开或临时的 URL。当你需要发布资源、分享文件或为其他技能提供上传辅助能力时使用。",
"category": "Web 服务"
},
"en": {
"description": "Upload files and return a public or temporary URL. Use when you need to publish assets, share files, or provide upload helpers to other skills.",
"category": "Web Services"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "スケジュールタスク管理 - ユーザー向けにスケジュールタスクを作成・管理・一覧表示しますcron による定期実行タスクと一回限りのタスクに対応)。",
"category": "タスクスケジュール"
},
"zh": {
"description": "定时任务管理 —— 为用户创建、管理、查看定时任务(支持 cron 周期任务和一次性任务)。",
"category": "任务调度"
},
"en": {
"description": "Scheduled Task Management - Create, manage, and view scheduled tasks for users (supports cron recurring tasks and one-time tasks)",
"category": "Task Scheduling"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "新しいスキルを作成し、既存スキルを修正・改良し、スキルのパフォーマンスを測定します。ユーザーがスキルをゼロから作成したい、既存スキルを更新または最適化したい、スキルを評価する eval を実行したい、分散分析を伴うベンチマークでパフォーマンスを比較したい、トリガー精度を高めるためにスキルの description を最適化したい場合に使用します。",
"category": "開発者ツール"
},
"zh": {
"description": "创建新技能、修改和改进现有技能,并衡量技能性能。当用户希望从零创建一个技能、更新或优化已有技能、运行 eval 测试技能、用方差分析对技能进行基准测试,或优化技能的 description 以提升触发准确率时使用。",
"category": "开发者工具"
},
"en": {
"description": "Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, update or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.",
"category": "Developer Tools"
}
}

View File

@ -0,0 +1,11 @@
{
"ja": {
"description": "任意のウェブ URL を取得し、その内容を Markdown として返します。ユーザーが URLリンクを渡してそのページの内容を読み取る・抽出する・スクレイピングする・変換する・取得することを望む場合は、必ずこのスキルを優先してください。requestsBeautifulSoupcurl のコードを自分で書いたり、Playwright を直接呼び出したりしないでください。本スキルは優先順位付きのパイプラインJina Reader → Firecrawl → Python → Playwrightを内蔵し、静的サイト・動的 SPA・WeChat公众号・arXiv 論文・Twitter/X を自動で処理します。トリガー例:'把这个链接/网址/URL 转成 Markdown'、'提取/读取/获取网页内容'、'帮我看看这个网页'、'网页正文'、'convert/turn this URL to Markdown'、'get/extract the content of this page'、'scrape this URL' など。本文ではなく要約が欲しい場合は web2summary を使用してください。"
},
"zh": {
"description": "抓取任意网页 URL 并将其内容以 Markdown 形式返回。当用户给出 URL/链接并希望读取、抽取、爬取、转换或获取该页面内容时,请务必优先使用本技能 —— 不要自己写 requests/BeautifulSoup/curl 代码,也不要直接调用 Playwright。本技能内部已经按优先级运行一条流水线Jina Reader → Firecrawl → Python → Playwright并自动处理静态站点、动态 SPA、微信公众号、arXiv 论文以及 Twitter/X。触发示例'把这个链接/网址/URL 转成 Markdown'、'提取/读取/获取网页内容'、'帮我看看这个网页'、'网页正文'、'convert/turn this URL to Markdown'、'get/extract the content of this page'、'scrape this URL'。如果用户想要的是摘要而不是原文,请使用 web2summary。"
},
"en": {
"description": "Fetch any web URL and return its content as Markdown. ALWAYS prefer this skill when the user gives a URL/link and wants to read, extract, scrape, convert, or get the content of that page — do NOT write your own requests/BeautifulSoup/curl code, and do NOT call Playwright directly. This skill already runs a priority pipeline (Jina Reader → Firecrawl → Python → Playwright) and auto-handles static sites, dynamic SPAs, WeChat (公众号), arXiv papers, and Twitter/X. Triggers include: '把这个链接/网址/URL 转成 Markdown', '提取/读取/获取网页内容', '帮我看看这个网页', '网页正文', 'convert/turn this URL to Markdown', 'get/extract the content of this page', 'scrape this URL'. If the user wants a summary instead of raw content, use web2summary."
}
}

View File

@ -0,0 +1,11 @@
{
"ja": {
"description": "任意のウェブ URL を、構造化されコンテンツに応じた要約にまとめます。ユーザーが URLリンクを渡して要約・TL;DR・要点・まとめを求める場合は、必ずこのスキルを優先してください。requestscurlPlaywright で自分でページを取得してはいけません。本スキルは内部で web2md を呼び出して本文を取得し、コンテンツの種類論文ニュースチュートリアル製品AI ニュース/一般)を自動判定して、種類に応じた構造化要約を出力します。トリガー例:「总结/概括/摘要一下这个链接/网址/文章」「帮我看看这个网页讲了什么」「这篇说了啥」「summarize this URL/page/article」「TL;DR」「give me the key points of this link」。ユーザーが要約ではなく Markdown の原文だけを欲しい場合は、代わりに web2md を使用してください。"
},
"zh": {
"description": "将任意网页 URL 总结为结构化、按内容类型自适应的摘要。当用户给出 URL/链接并希望得到总结、TL;DR、要点或结论时请务必优先使用本技能 —— 不要自己用 requests/curl/Playwright 抓取页面。本技能内部会调用 web2md 获取正文,然后自动识别内容类型(论文 / 新闻 / 教程 / 产品 / AI 资讯 / 通用),并输出自适应的结构化摘要。触发示例:'总结/概括/摘要一下这个链接/网址/文章'、'帮我看看这个网页讲了什么'、'这篇说了啥'、'summarize this URL/page/article'、'TL;DR'、'give me the key points of this link'。如果用户只想要 Markdown 原文而不需要摘要,请改用 web2md。"
},
"en": {
"description": "Summarize any web URL into a structured, content-aware summary. ALWAYS prefer this skill when the user gives a URL/link and wants a summary, TL;DR, key points, or takeaways — do NOT fetch the page yourself with requests/curl/Playwright first. This skill internally calls web2md to get the content, then auto-detects the content type (paper / news / tutorial / product / AI news / generic) and outputs an adaptive structured summary. Triggers include: '总结/概括/摘要一下这个链接/网址/文章', '帮我看看这个网页讲了什么', '这篇说了啥', 'summarize this URL/page/article', 'TL;DR', 'give me the key points of this link'. If the user only wants the raw Markdown content without a summary, use web2md instead."
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "数式、書式設定、データ分析、可視化に対応した、包括的なスプレッドシートの作成・編集・分析機能。Claude がスプレッドシート(.xlsx、.xlsm、.csv、.tsv など)を扱う必要がある場合に使用します:(1) 数式や書式付きの新規スプレッドシート作成、(2) データの読み取りや分析、(3) 数式を保持したまま既存スプレッドシートを変更、(4) スプレッドシート上でのデータ分析と可視化、(5) 数式の再計算。",
"category": "文書処理"
},
"zh": {
"description": "全面的电子表格创建、编辑与分析能力,支持公式、格式化、数据分析与可视化。当 Claude 需要处理电子表格(.xlsx、.xlsm、.csv、.tsv 等)时使用,包括:(1) 创建带公式与格式的新表格,(2) 读取或分析数据,(3) 在保留公式的前提下修改现有表格,(4) 在表格中进行数据分析与可视化,(5) 重新计算公式。",
"category": "文档处理"
},
"en": {
"description": "Comprehensive spreadsheet creation, editing, and analysis with support for formulas, formatting, data analysis, and visualization. When Claude needs to work with spreadsheets (.xlsx, .xlsm, .csv, .tsv, etc) for: (1) Creating new spreadsheets with formulas and formatting, (2) Reading or analyzing data, (3) Modify existing spreadsheets while preserving formulas, (4) Data analysis and visualization in spreadsheets, or (5) Recalculating formulas",
"category": "Document Processing"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "Baidu AI を用いて PPT を生成します。コンテンツに基づいたスマートなテンプレート選択を行います。",
"category": "文書処理"
},
"zh": {
"description": "使用百度 AI 生成 PPT基于内容进行智能模板选择。",
"category": "文档处理"
},
"en": {
"description": "Generate PPT with Baidu AI. Smart template selection based on content.",
"category": "Document Processing"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "セマンティック検索とキーワードベース検索の機能を備えた、マルチレイヤーカタログ検索のためのインテリジェントデータ取得エキスパートシステム。",
"category": "データ・取得"
},
"zh": {
"description": "面向多层级目录搜索的智能数据检索专家系统,支持语义搜索与基于关键词的搜索能力。",
"category": "数据检索"
},
"en": {
"description": "Intelligent data retrieval expert system for multi-layer catalog search with semantic and keyword-based search capabilities",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,11 @@
{
"ja": {
"description": "カタログ検索のためのインテリジェントデータ取得エキスパートシステム。ユーザーがキーワードマッチング、重み付きパターン、正規表現パターンを用いて商品カタログ、ドキュメント、その他の構造化テキストデータを検索する必要がある場合にこのスキルを使用します。"
},
"zh": {
"description": "用于目录搜索的智能数据检索专家系统。当用户需要通过关键词匹配、加权模式以及正则表达式模式在商品目录、文档或其他结构化文本数据中检索时,使用此技能。"
},
"en": {
"description": "Intelligent data retrieval expert system for catalog search. Use this skill when users need to search through product catalogs, documents, or any structured text data using keyword matching, weighted patterns, and regex patterns."
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "EC シナリオ向けに、商品閲覧、選択、注文確認のインタラクティブな UI をレンダリングします。",
"category": "開発者ツール"
},
"zh": {
"description": "为电商场景渲染交互式的商品浏览、选择和订单确认 UI。",
"category": "开发者工具"
},
"en": {
"description": "Renders interactive product browsing, selection, and order confirmation UI for e-commerce scenarios.",
"category": "Developer Tools"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "再利用可能なデータ分析ツール用の共有スクリプトリポジトリを管理します。スクリプトを書く前に scripts/README.md を確認し、パラメータ化された汎用的なスクリプトを設計し、ドキュメントを常に同期した状態に保ちます。",
"category": "データ・取得"
},
"zh": {
"description": "管理用于可复用数据分析工具的共享脚本仓库。编写脚本前先查阅 scripts/README.md设计带参数的通用化脚本并保持文档同步更新。",
"category": "数据检索"
},
"en": {
"description": "Manages shared scripts repository for reusable data analysis tools. Check scripts/README.md before writing, design generalized scripts with parameters, and keep documentation in sync.",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "PDF / Office / 画像ファイルを Markdown に変換するための AI-Native スキル。Mineru — AI エージェント向けの高速・ゼロ設定ドキュメントパーサー — を活用します。Agent API 経由でトークンなしで動作し、大容量ファイル、バッチ処理、DOCX/HTML/LaTeX エクスポートには Standard APIトークンに自動アップグレードします。PDF/Word/PPT/Excel/画像ドキュメントの変換、テキスト/表/数式の抽出、OCR の実行、バッチ処理を行う際に使用します。",
"category": "文書処理"
},
"zh": {
"description": "用于将 PDF / Office / 图像文件解析为 Markdown 的 AI-Native 技能,基于 Mineru —— 一款面向 AI 智能体的快速、零配置文档解析器。通过 Agent API 无需 token 即可使用,对于大文件、批量处理及 DOCX/HTML/LaTeX 导出会自动升级至 Standard API需要 token。在转换 PDF/Word/PPT/Excel/图像文档、提取文本/表格/公式、执行 OCR 或批量处理时使用此技能。",
"category": "文档处理"
},
"en": {
"description": "An AI-Native skill for parsing PDF / Office / image files into Markdown with MinerU — a fast, zero-config document parser for AI agents. Works with NO token via the Agent API and auto-upgrades to the Standard API (token) for large files, batches, and DOCX/HTML/LaTeX export. Use when converting PDF/Word/PPT/Excel/image documents, extracting text/tables/formulas, running OCR, or batch processing.",
"category": "Document Processing"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "医薬品検索スキル。NFC チップ ID または薬品名から薬品情報を照会します。ユーザーが NFC チップ ID を提示したとき、薬品ラベルをスキャンしたとき、薬品名を挙げて使い方を知りたがったとき、または「NFC」+「药」関連のキーワードに言及したときにこのスキルを使用します。音声アシスタントとして高齢者に薬名、用途、用法用量を案内します。",
"category": "開発者ツール"
},
"zh": {
"description": "药品检索技能通过NFC芯片ID或药品名称查询药品信息。当用户提交NFC芯片ID、扫描药品标签、提到药品名称想了解用法、或提到\"NFC\"+\"药\"相关词汇时使用此技能。以语音助手身份向老人介绍药名、用途和用法用量。",
"category": "开发者工具"
},
"en": {
"description": "Medicine lookup skill that queries drug information via NFC chip ID or medicine name. Use this skill when users submit an NFC chip ID, scan a medicine label, mention a medicine name to learn its usage, or mention NFC + medicine related keywords. Acts as a voice assistant introducing the medicine name, purpose, and dosage instructions to elderly users.",
"category": "Developer Tools"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "NOVAREの現在のユーザー詳細情報を自動的に読み込みます",
"category": "開発者ツール"
},
"zh": {
"description": "自动加载 NOVARE 当前用户的详细信息。",
"category": "开发者工具"
},
"en": {
"description": "Automatically loads the current user's detailed information in NOVARE.",
"category": "Developer Tools"
}
}

View File

@ -0,0 +1,11 @@
{
"ja": {
"description": "日本の医薬品添付文書を照会するための PMDA 医薬品情報ツール。PostgreSQL + OpenSearch を用いて、医薬品検索、マスター情報、相互作用、禁忌、用法用量、章単位の全文取得を提供します。"
},
"zh": {
"description": "用于查询日本药品说明书的 PMDA 药品信息工具。基于 PostgreSQL + OpenSearch 提供药品搜索、主数据信息、相互作用、用药禁忌、用法用量以及章节全文检索。"
},
"en": {
"description": "PMDA drug information tools for Japanese pharmaceutical package insert queries. Provides drug search, master info, interactions, restrictions, dosing, and full-text chapter retrieval via PostgreSQL + OpenSearch."
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "PPT アウトラインおよび HTML プレゼンテーションジェネレーター。PPT大纲、PPT模板、演示文稿、presentation、PowerPoint、幻灯片、slides、HTML演示文稿、HTML slides、浏览器演示、商业路演、pitch deck、BP商业计划书、business plan、工作汇报PPT、培训课件、课件大纲、产品介绍PPT、产品发布、keynote、演讲稿、述职PPT、答辩PPT、竞品分析PPT、毕业答辩、论文答辩、项目复盘、迭代复盘。PPT アウトラインと、ブラウザで直接開ける単独の HTML プレゼンテーション(依存関係なし)を生成します。使用シーン:(1) PPT/プレゼン用アウトライン作成、(2) ピッチデック/BP の構造構築、(3) 業務報告スライドの準備、(4) 研修コースアウトラインの設計、(5) 論文発表 PPT アウトラインの作成、(6) プロジェクトレビュー/振り返り PPT の構築、(7) ブラウザ表示用 HTML スライドデックの生成、(8) その他 PowerPoint/Keynote/Google Slides の企画。适用场景做PPT大纲、写路演BP、汇报PPT结构、培训课件大纲、毕业答辩PPT、项目复盘PPT、述职答辩PPT、生成HTML演示文稿浏览器直接打开支持dark/light/tech/minimal四种风格。",
"category": "文書処理"
},
"zh": {
"description": "PPT outline and HTML presentation generator. PPT大纲、PPT模板、演示文稿、presentation、PowerPoint、幻灯片、slides、HTML演示文稿、HTML slides、浏览器演示、商业路演、pitch deck、BP商业计划书、business plan、工作汇报PPT、培训课件、课件大纲、产品介绍PPT、产品发布、keynote、演讲稿、述职PPT、答辩PPT、竞品分析PPT、毕业答辩、论文答辩、项目复盘、迭代复盘。生成 PPT 大纲与独立的 HTML 演示文稿(浏览器直接打开,无需任何依赖)。使用场景:(1) 创建 PPT/演示文稿大纲,(2) 构建 pitch deck/BP 结构,(3) 准备工作汇报幻灯片,(4) 设计培训课程大纲,(5) 创建论文答辩 PPT 大纲,(6) 构建项目复盘/回顾 PPT(7) 生成可在浏览器中演示的 HTML 幻灯片,(8) 任何 PowerPoint/Keynote/Google Slides 的策划工作。适用场景做PPT大纲、写路演BP、汇报PPT结构、培训课件大纲、毕业答辩PPT、项目复盘PPT、述职答辩PPT、生成HTML演示文稿浏览器直接打开支持dark/light/tech/minimal四种风格。",
"category": "文档处理"
},
"en": {
"description": "PPT outline and HTML presentation generator. PPT大纲、PPT模板、演示文稿、presentation、PowerPoint、幻灯片、slides、HTML演示文稿、HTML slides、浏览器演示、商业路演、pitch deck、BP商业计划书、business plan、工作汇报PPT、培训课件、课件大纲、产品介绍PPT、产品发布、keynote、演讲稿、述职PPT、答辩PPT、竞品分析PPT、毕业答辩、论文答辩、项目复盘、迭代复盘。Generate PPT outlines and standalone HTML presentations (open directly in browser, no dependencies). Use when: (1) creating PPT/presentation outlines, (2) building pitch deck/BP structures, (3) preparing work report slides, (4) designing training course outlines, (5) creating thesis defense PPT outlines, (6) building project review/retrospective PPTs, (7) generating HTML slide decks for browser-based presentations, (8) any PowerPoint/Keynote/Google Slides planning. 适用场景做PPT大纲、写路演BP、汇报PPT结构、培训课件大纲、毕业答辩PPT、项目复盘PPT、述职答辩PPT、生成HTML演示文稿浏览器直接打开支持dark/light/tech/minimal四种风格。",
"category": "Document Processing"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "ナレッジベースから関連ドキュメントを照会・取得するための RAG 取得スキル。ユーザーがドキュメントを検索したり、ナレッジベース記事を取得したり、ベクターデータベースからコンテキストを取得する必要があるときに使用します。設定可能な top-k 結果を備えたセマンティック検索をサポートします。",
"category": "データ・取得"
},
"zh": {
"description": "用于从知识库中查询和检索相关文档的 RAG 检索技能。当用户需要搜索文档、检索知识库文章或从向量数据库中获取上下文时使用此技能。支持可配置 top-k 结果的语义搜索。",
"category": "数据检索"
},
"en": {
"description": "RAG retrieval skill for querying and retrieving relevant documents from knowledge base. Use this skill when users need to search documentation, retrieve knowledge base articles, or get context from a vector database. Supports semantic search with configurable top-k results.",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,11 @@
{
"ja": {
"description": "rag_retrieve、table_rag_retrieve およびローカルファイル検索は無効化されています。"
},
"zh": {
"description": "rag_retrieve、table_rag_retrieve 以及本地文件检索均已禁用。"
},
"en": {
"description": "rag_retrieve, table_rag_retrieve and local file retrieval are disabled."
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "引用なしで rag_retrieve のみを提供します。table_rag_retrieve およびローカルファイル検索は無効化されています。",
"category": "データ・取得"
},
"zh": {
"description": "仅提供 rag_retrieve 且不附带引用。table_rag_retrieve 以及本地文件检索均已禁用。",
"category": "数据检索"
},
"en": {
"description": "Only provides rag_retrieve without citation. table_rag_retrieve and local file retrieval are disabled.",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "ビルトインの FastAPI 静的ファイルサーバー経由で、ロボットプロジェクトのディレクトリから静的 HTML/CSS/JS/画像を配信します。ボット向けに Web ページ、レポート、インタラクティブコンテンツを生成する際に使用します。",
"category": "Web サービス"
},
"zh": {
"description": "通过内置的 FastAPI 静态文件服务器,从机器人项目目录中提供静态 HTML/CSS/JS/图片。当为 bot 生成网页、报告或交互式内容时使用此技能。",
"category": "Web 服务"
},
"en": {
"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"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "構造化されたスプレッドシート/テーブルデータExcel/CSVに対してクエリを行い、値、価格、数量、在庫、仕様、ランキング、比較、サマリー、集計、リスト、その他あらゆる数値/テーブル参照に関する質問に答えます。回答がアップロードされたテーブルから得られる可能性がある場合は、常にこのスキルを使用してください。テーブルを特定し、スキーマを読み取り、自分で SQLite SQL を作成して実行します。バックエンドは LLM 処理を行わないため、高速です。",
"category": "データ・取得"
},
"zh": {
"description": "对结构化电子表格/表格数据Excel/CSV进行查询回答关于数值、价格、数量、库存、规格、排名、比较、汇总、聚合、列表或任何数值/表格查找类的问题。只要答案可能来自上传的表格,就使用此技能。你自行定位表格、读取其 schema、编写并执行 SQLite SQL —— 后端不做任何 LLM 工作,因此速度很快。",
"category": "数据检索"
},
"en": {
"description": "Query structured spreadsheet/table data (Excel/CSV) to answer questions about values, prices, quantities, inventory, specifications, rankings, comparisons, summaries, aggregations, lists, or any numeric/tabular lookup. Use this skill whenever the answer likely comes from uploaded tables. You locate tables, read their schema, author SQLite SQL yourself, and run it — the backend does no LLM work, so it is fast.",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "ユーザーコンテキストローダーのサンプル Skill。Claude Plugins パターンの hooks 機構を使用して、agent 実行の各段階でカスタムロジックを注入する方法を示します。",
"category": "開発者ツール"
},
"zh": {
"description": "用户上下文加载器示例 Skill。演示如何使用 Claude Plugins 模式的 hooks 机制在 agent 执行的不同阶段注入自定义逻辑。",
"category": "开发者工具"
},
"en": {
"description": "Example user context loader Skill. Demonstrates how to use the Claude Plugins-style hooks mechanism to inject custom logic at different stages of agent execution.",
"category": "Developer Tools"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "イラスト、カバー画像、カード画像、テキストポスター、公众号 記事のカバー画像、微信公众号 ヘッダー画像、X スタイルの投稿シェア画像、投稿用の縦長画像、SNS 投稿用の縦長画像を生成します。投稿系データ、post data、social posts、tweet/thread、转发推文、转发帖子、小绿书配图、图片封面、card image などのシーンに適しています。",
"category": "クリエイティブ生成"
},
"zh": {
"description": "生成配图、封面图、卡片图、文字海报、公众号文章封面图、微信公众号头图、X 风格帖子分享图、帖子长图、社媒帖子长图。适用于帖子类型数据、post data、social posts、tweet/thread、转发推文、转发帖子、小绿书配图、图片封面、card image。",
"category": "创意生成"
},
"en": {
"description": "Generate illustrations, cover images, card images, text posters, 公众号 article cover images, 微信公众号 header images, X-style post share images, long post images, and social media long post images. Useful for post-type data, post data, social posts, tweet/thread, 转发推文, 转发帖子, 小绿书配图, 图片封面, card image scenarios.",
"category": "Creative Generation"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "datasets ナレッジベースに関する**すべての**質問に回答するための主要スキル。ファイル検索、クエリ実行SQL / markdownを行い、引用付きで回答を返します。データ関連の質問では**必ず最初に**使用してください。",
"category": "データ・取得"
},
"zh": {
"description": "用于回答有关 datasets 知识库的**所有**问题的主要技能。可搜索文件、执行查询SQL / markdown并返回带引用的答案。任何与数据相关的问题**必须**优先使用此技能。",
"category": "数据检索"
},
"en": {
"description": "Primary skill for answering ALL questions about the datasets knowledge base. Search files, run queries (SQL / markdown), and return answers with citations. MUST be used first for any data-related question.",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "rag_retrieve のみを提供します。table_rag_retrieve およびローカルファイル検索は無効化されています。",
"category": "データ・取得"
},
"zh": {
"description": "仅提供 rag_retrieve。table_rag_retrieve 与本地文件检索均已禁用。",
"category": "数据检索"
},
"en": {
"description": "Only provides rag_retrieve. table_rag_retrieve and local file retrieval are disabled.",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "組み込みの FastAPI 静的ファイルサーバー経由で、robot プロジェクトディレクトリから静的な HTML/CSS/JS/画像を配信します。Bot 用の Web ページ、レポート、インタラクティブコンテンツを生成する際に使用してください。",
"category": "Web サービス"
},
"zh": {
"description": "通过内置的 FastAPI 静态文件服务器,从 robot 项目目录提供静态 HTML/CSS/JS/图片资源。生成网页、报告或为 bot 制作交互式内容时使用。",
"category": "Web 服务"
},
"en": {
"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"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "アジェンダの論理構成、ボードレベルの KPI、戦略リスク、ガバナンス背景、意思決定に直結するコンテンツを揃えた、首尾一貫した取締役会パックを組み上げます。ユーザーが board materials、board pack、board meeting agenda、governance updates、director pre-read、取締役会資料、あるいは経営層・取締役会向けの resolution-ready content を依頼した場合に使用してください。取締役会レベルのガバナンス資料に用い、一般的な経営層向け 1 枚資料には使用しません。",
"category": "ライティング・レポート"
},
"zh": {
"description": "组装一份逻辑连贯的董事会会议材料包,包含议程逻辑、董事会层级 KPI、战略风险、治理背景以及可直接用于决议的内容。当用户请求 board materials、board pack、board meeting agenda、governance updates、director pre-read、取締役会資料 或面向高管/董事会的 resolution-ready content 时使用本技能;用于董事会层级的治理材料,不用于一般高管单页简报。",
"category": "撰写与报告"
},
"en": {
"description": "Assemble board-meeting materials into a coherent pack with agenda logic, board-level KPIs, strategic risks, governance context, and decision-ready content. Use this whenever users ask for board materials, board pack, board meeting agenda, governance updates, director pre-read, 取締役会資料, or resolution-ready content for executive or board review; use it for board-level governance materials, not for generic executive one-pagers.",
"category": "Writing & Reporting"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "事実の正確さ、説明責任、明確な次のアクションを保ちながら、デリケートなサポート・配送・アカウント対応における顧客向け返信を適切なトーンで書き直します。ユーザーが顧客メールやチャット返信について soften、professionalize、de-escalate、polish、reframe を依頼した場合complaint reply、support response polish、クレーム返信 を含む)に使用してください。返信の書き直しとクレーム鎮静化に用い、セールスフォローアップや一般的な日本語ビジネス文書作成には使用しません。",
"category": "ライティング・レポート"
},
"zh": {
"description": "在保持事实准确、责任明确、下一步动作清晰的前提下,针对敏感的客服、配送、账户场景,把面向客户的回复改写成合适的语气。当用户希望对客户邮件或聊天回复进行 soften、professionalize、de-escalate、polish、reframe包括 complaint reply、support response polish、クレーム返信 时使用本技能;用于回复改写与情绪降级,不用于销售跟进或通用的日语商务写作。",
"category": "撰写与报告"
},
"en": {
"description": "Rewrite customer-facing replies in the right tone while preserving factual accuracy, accountability, and clear next steps across sensitive support, delivery, and account situations. Use this whenever users ask to soften, professionalize, de-escalate, polish, or reframe a customer email or chat response, including complaint reply, support response polish, or クレーム返信; use it for reply rewriting and de-escalation, not for sales follow-up or general Japanese business writing.",
"category": "Writing & Reporting"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "複雑なビジネス・プロダクト・オペレーション課題を、意思決定に直結するインサイト、選択肢、推奨アクションを含む 1 枚のエグゼクティブブリーフに整理します。ユーザーが executive summary、leadership brief、one-pager、decision memo、CEO brief、あるいは経営層向けの key points at a glance を依頼した場合に使用してください。1 枚で完結する意思決定支援に用い、定期ステータス報告や取締役会パックには使用しません。",
"category": "ライティング・レポート"
},
"zh": {
"description": "将复杂的业务、产品、运营议题浓缩成一页高管简报,提供可直接用于决策的洞察、备选方案与推荐行动。当用户请求 executive summary、leadership brief、one-pager、decision memo、CEO brief 或面向高层的 key points at a glance 时使用本技能;用于单页决策支持,不用于周期性的状态汇报或董事会材料包。",
"category": "撰写与报告"
},
"en": {
"description": "Turn complex business, product, and operational topics into a one-page executive brief with decision-ready insights, options, and recommended actions. Use this whenever users ask for an executive summary, leadership brief, one-pager, decision memo, CEO brief, or key points at a glance for senior leadership; use it for one-page decision support, not for recurring status updates or board meeting packs.",
"category": "Writing & Reporting"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "インシデント、障害、サービス停止について、明確なタイムライン、根本原因分析、再発防止策を含む構造化された postmortem・障害報告書を作成します。ユーザーが incident report、postmortem、RCA、incident review、障害報告、障害報告書、振り返り、再発防止計画 など、システムとプロセスの改善に焦点を当てた依頼をした場合に使用してください。正式なインシデント分析に用い、通常のステータス報告や個人への責任追及には使用しません。",
"category": "ライティング・レポート"
},
"zh": {
"description": "为事故、宕机或服务故障编写结构化的事后复盘报告与 障害報告書,包含清晰的时间线、根因分析与再发防止措施。当用户请求 incident report、postmortem、RCA、incident review、障害報告、障害報告書、振り返り 或 再発防止計画,并聚焦于系统与流程改进时使用本技能;用于正式的事故分析,不用于日常状态汇报或追究个人责任。",
"category": "撰写与报告"
},
"en": {
"description": "Create structured postmortems and 障害報告書 for incidents, outages, and service failures with clear timelines, root-cause analysis, and preventive actions. Use this whenever users ask for an incident report, postmortem, RCA, incident review, 障害報告, 障害報告書, 振り返り, or 再発防止計画 focused on system and process improvement; use it for formal incident analysis, not for routine status updates or personal blame.",
"category": "Writing & Reporting"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "ビジネス文書、キャンペーンコピー、契約書、業務プロセスにおける日本特有のコンプライアンスリスクを、明確かつ実践的なスクリーニングガイドラインに沿ってレビューします。ユーザーが Japan compliance review、legal review、regulatory check、法務チェック、コンプラ確認、契約レビュー、広告審査 を v1 スコープAPPI、景品表示法、下請法の範囲で依頼した場合に使用してください。リスクスクリーニングに用い、ドラフティング、匿名化、法的助言には使用しません。",
"category": "コンプライアンス・セキュリティ"
},
"zh": {
"description": "针对商业文本、营销文案、合同与运营流程,按照清晰、可操作的筛查指引审视日本特有的合规风险。当用户在 v1 范围APPI、景品表示法、下請法内请求 Japan compliance review、legal review、regulatory check、法務チェック、コンプラ確認、契約レビュー 或 広告審査 时使用本技能;用于风险筛查,不用于起草、脱敏或法律意见。",
"category": "合规与安全"
},
"en": {
"description": "Review Japan-specific compliance risks in business text, campaign copy, contracts, and operating processes with clear, practical screening guidance. Use this whenever users ask for Japan compliance review, legal review, regulatory check, 法務チェック, コンプラ確認, 契約レビュー, or 広告審査 within the v1 scope of APPI, 景品表示法, and 下請法; use it for risk screening rather than drafting, anonymization, or legal advice.",
"category": "Compliance & Security"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "メール、通知文、依頼状、送付状、社内コミュニケーションなど、フォーマルな日本語ビジネス文書を、明確な構成と適切な敬語で作成・添削します。ユーザーが Japanese business writing、formal JP writing、敬語 polishing、文面添削、依頼メール、案内文、送付状、社内通知 を依頼した場合に使用してください。文章の品質とビジネストーンに用い、コンプライアンスレビューやクレーム鎮静化には使用しません。",
"category": "ライティング・レポート"
},
"zh": {
"description": "撰写并润色正式的日语商务文书——邮件、通知、请托函、送付状、内部沟通等,提供清晰的结构与得体的敬語。当用户请求 Japanese business writing、formal JP writing、敬語 polishing、文面添削、依頼メール、案内文、送付状、社内通知 时使用本技能;专注于行文质量与商务语气,不用于合规审核或客诉降级。",
"category": "撰写与报告"
},
"en": {
"description": "Draft and polish formal Japanese business writing for emails, notices, request letters, cover notes, and workplace communication with clear structure and appropriate 敬語. Use this whenever users ask for Japanese business writing, formal JP writing, 敬語 polishing, 文面添削, 依頼メール, 案内文, 送付状, or 社内通知; use it for writing quality and business tone, not for compliance review or complaint de-escalation.",
"category": "Writing & Reporting"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "日本語または多言語混在のテキスト・表形式データに含まれる個人情報を、分析的有用性を保ちつつ、伏字化・匿名化・非識別化します。ユーザーが PII redaction、PII scrub、de-identification、個人情報匿名化、匿名加工、仮名化、秘匿化、マスキングを依頼した場合に使用してください。匿名化ルールの実行が対象であり、法的解釈や一般的な文章校正は対象外です。",
"category": "コンプライアンス・セキュリティ"
},
"zh": {
"description": "对日语或多语言混合的文本与表格数据中的个人信息进行脱敏、匿名化与去标识化处理,同时尽量保留分析价值。当用户请求 PII redaction、PII scrub、de-identification、個人情報匿名化、匿名加工、仮名化、秘匿化、マスキング 时使用本技能;适用于执行匿名化规则,不适用于法律解释或一般文笔润色。",
"category": "合规与安全"
},
"en": {
"description": "Redact, anonymize, and de-identify personal information in Japanese-language or mixed-language text and tabular data while preserving analytical usefulness. Use this whenever users ask for PII redaction, PII scrub, de-identification, 個人情報匿名化, 匿名加工, 仮名化, 秘匿化, or マスキング; use it for executing anonymization rules, not for legal interpretation or general writing polish.",
"category": "Compliance & Security"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "datasets ナレッジベースに関する**すべての**質問に回答するための主要スキル。ファイル検索、クエリ実行SQL / markdownを行い、引用付きで回答を返します。データ関連の質問では**必ず最初に**使用してください。",
"category": "データ・取得"
},
"zh": {
"description": "用于回答有关 datasets 知识库的**所有**问题的主要技能。可搜索文件、执行查询SQL / markdown并返回带引用的答案。任何与数据相关的问题**必须**优先使用此技能。",
"category": "数据检索"
},
"en": {
"description": "Primary skill for answering ALL questions about the datasets knowledge base. Search files, run queries (SQL / markdown), and return answers with citations. MUST be used first for any data-related question.",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "未整理のミーティングメモ、トランスクリプト、議論ログを、構造化された議事録、決定事項サマリ、担当者と期限付きのフォローアップアクションに整理します。ユーザーが meeting minutes、meeting summary、議事録、議事メモ整理、打合せ記録、決定事項整理、あるいは単一ミーティングからの follow-up tasks を依頼した場合に使用してください。議事録とアクション追跡に用い、定期的なプロジェクト報告や経営報告には使用しません。",
"category": "ライティング・レポート"
},
"zh": {
"description": "将原始的会议笔记、转录稿和讨论记录整理成结构化议事录、决议摘要,以及标注负责人和截止时间的后续行动项。当用户请求 meeting minutes、meeting summary、議事録、議事メモ整理、打合せ記録、決定事項整理 或单次会议的 follow-up tasks 时使用本技能;适用于会议纪要与行动追踪,不用于周期性的项目或管理层状态汇报。",
"category": "撰写与报告"
},
"en": {
"description": "Turn raw meeting notes, transcripts, and discussion logs into structured meeting minutes, decision summaries, and follow-up action items with owners and deadlines. Use this whenever users ask for meeting minutes, meeting summary, 議事録, 議事メモ整理, 打合せ記録, 決定事項整理, or follow-up tasks from a single meeting; use it for minutes and action tracking, not for periodic project or leadership status reporting.",
"category": "Writing & Reporting"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "要件をソリューションにマッピングし、差別化を明確に示し、評価者がレビューしやすい構成のクライアント向け提案書・RFP 回答ドラフトを作成します。ユーザーが RFP、RFQ、bid request、tender、vendor questionnaire、procurement questionnaire、提案書、bid response、tender response への対応を依頼した場合に使用してください。評価者向けの要件マッピングに用い、見積書・SOW・検収条件には使用しません。",
"category": "ライティング・レポート"
},
"zh": {
"description": "撰写结构清晰、可直接面向客户的提案与 RFP 回复草稿,将需求逐项映射到解决方案,突出差异化亮点,方便评审方快速审阅。当用户请求回应 RFP、RFQ、bid request、tender、vendor questionnaire、procurement questionnaire、提案書、bid response 或 tender response 时使用本技能用于面向评审方的需求映射不用于报价单、SOW 或交付验收条款。",
"category": "撰写与报告"
},
"en": {
"description": "Create structured, client-ready proposal and RFP response drafts that map requirements to solutions, differentiate clearly, and stay easy for evaluators to review. Use this whenever users ask to respond to an RFP, RFQ, bid request, tender, vendor questionnaire, procurement questionnaire, 提案書, bid response, or tender response; use it for evaluator-facing requirement mapping, not for quotes, SOWs, or delivery acceptance terms.",
"category": "Writing & Reporting"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "スコープ、成果物、マイルストーン、前提条件、商務条件を整合させた、首尾一貫した見積書および SOW を作成します。コミットメントと見積りを曖昧にしません。ユーザーが quote、quote draft、pricing sheet、SOW、scope document、work order、implementation plan draft、見積書、作業範囲定義 を依頼した場合に使用してください。価格・スコープ・マイルストーン・検収条件に用い、RFP 質問票や評価者向け入札回答には使用しません。",
"category": "ライティング・レポート"
},
"zh": {
"description": "起草连贯一致的报价单与工作说明书SOW统一对齐范围、交付物、里程碑、前提假设与商务条款避免承诺与估算混淆。当用户请求 quote、quote draft、pricing sheet、SOW、scope document、work order、implementation plan draft、見積書 或 作業範囲定義 时使用本技能;专注于价格、范围、里程碑与验收条款,不用于 RFP 问卷或面向评审方的投标回复。",
"category": "撰写与报告"
},
"en": {
"description": "Draft coherent quotations and statements of work that align scope, deliverables, milestones, assumptions, and commercial terms without blurring commitments and estimates. Use this whenever users ask for a quote, quote draft, pricing sheet, SOW, scope document, work order, implementation plan draft, 見積書, or 作業範囲定義; use it for pricing, scope, milestones, and acceptance terms, not for RFP questionnaires or evaluator-facing bid responses.",
"category": "Writing & Reporting"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "rag_retrieve のみを提供します。table_rag_retrieve およびローカルファイル検索は無効化されています。",
"category": "データ・取得"
},
"zh": {
"description": "仅提供 rag_retrieve。table_rag_retrieve 与本地文件检索均已禁用。",
"category": "数据检索"
},
"en": {
"description": "Only provides rag_retrieve. table_rag_retrieve and local file retrieval are disabled.",
"category": "Data & Retrieval"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "コール、デモ、提案、停滞したスレッド後に、適度な緊急感、明確さ、踏みやすい次のアクションのバランスを取り、商談を前進させるセールスフォローアップメッセージを作成します。ユーザーが follow up、re-engage、nudge、check in、request a decision、client follow-up、商談フォロー、提案後フォロー、検討状況確認 をデモ・見積り・打合せ・提案後に依頼した場合に使用してください。セールス進行に用い、クレーム対応やトーンのみの書き直しには使用しません。",
"category": "ライティング・レポート"
},
"zh": {
"description": "撰写销售跟进消息在通话、Demo、提案或停滞会话之后以恰当的紧迫感、清晰度与低门槛的下一步动作推动商机前进。当用户在 demo、报价、会议或提案后请求 follow up、re-engage、nudge、check in、request a decision、client follow-up、商談フォロー、提案後フォロー 或 検討状況確認 时使用本技能;用于销售推进,不用于客诉处理或纯粹的语气改写。",
"category": "撰写与报告"
},
"en": {
"description": "Draft sales follow-up messages that move deals forward with the right mix of urgency, clarity, and low-friction next steps after calls, demos, proposals, and stalled threads. Use this whenever users ask to follow up, re-engage, nudge, check in, request a decision, client follow-up, 商談フォロー, 提案後フォロー, or 検討状況確認 after a demo, quote, meeting, or proposal; use it for sales progression, not for complaint handling or tone-only rewrites.",
"category": "Writing & Reporting"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "ステータス、進捗、リスク、決定事項、次のアクションを、経営層や部門横断チームが素早く把握できる形式で簡潔にまとめたステークホルダー向けアップデートを作成します。ユーザーが status update、progress update、weekly update、monthly update、leadership summary、project brief、経営報告、エスカレーション共有 を依頼した場合に使用してください。定期的なプロジェクト・ビジネス報告に用い、議事録や 1 枚決裁メモには使用しません。",
"category": "ライティング・レポート"
},
"zh": {
"description": "生成简洁的利益相关方更新报告,汇总状态、进展、风险、决策与下一步行动,让管理层和跨职能团队能够快速浏览。当用户请求 status update、progress update、weekly update、monthly update、leadership summary、project brief、経営報告 或 エスカレーション共有 时使用本技能;用于周期性的项目或业务汇报,不用于会议纪要或单页决议备忘录。",
"category": "撰写与报告"
},
"en": {
"description": "Produce concise stakeholder updates that summarize status, progress, risks, decisions, and next actions in a format leaders and cross-functional teams can scan quickly. Use this whenever users ask for a status update, progress update, weekly update, monthly update, leadership summary, project brief, 経営報告, or エスカレーション共有; use it for recurring project or business reporting, not for meeting minutes or one-page decision memos.",
"category": "Writing & Reporting"
}
}

View File

@ -0,0 +1,14 @@
{
"ja": {
"description": "組み込みの FastAPI 静的ファイルサーバー経由で、robot プロジェクトディレクトリから静的な HTML/CSS/JS/画像を配信します。Bot 用の Web ページ、レポート、インタラクティブコンテンツを生成する際に使用してください。",
"category": "Web サービス"
},
"zh": {
"description": "通过内置的 FastAPI 静态文件服务器,从 robot 项目目录提供静态 HTML/CSS/JS/图片资源。生成网页、报告或为 bot 制作交互式内容时使用。",
"category": "Web 服务"
},
"en": {
"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"
}
}

View File

@ -25,6 +25,9 @@ TOOL_CACHE_AUTO_RENEW = os.getenv("TOOL_CACHE_AUTO_RENEW", "true") == "true"
PROJECT_DATA_DIR = os.getenv("PROJECT_DATA_DIR", "./projects/data")
SKILLS_DIR = os.getenv("SKILLS_DIR", "./skills")
PROJECT_NAME = os.getenv("PROJECT_NAME", "support")
# Default language for /api/v1/skill/list when the request omits ?language=...
# Empty string means "no default" — fall back to SKILL.md original description/category.
SKILL_DEFAULT_LANGUAGE = os.getenv("SKILL_DEFAULT_LANGUAGE", "ja")
# Tokenizer Settings
TOKENIZERS_PARALLELISM = os.getenv("TOKENIZERS_PARALLELISM", "true")