miyabi__analyze_task_intent
Analyzes user tasks to determine if they are development-related or general tasks, enabling appropriate routing and processing for optimal task handling.
Instructions
ユーザーのタスクを分析し、開発関連か一般タスクかを判定します
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | 分析するユーザーのプロンプト |
Implementation Reference
- src/handlers.js:146-160 (handler)The core handler logic for the 'miyabi__analyze_task_intent' tool. It uses helper functions to classify the input prompt as development, article writing, or general task and returns the result as JSON in the standard MCP content format.case "miyabi__analyze_task_intent": { const isDev = isDevelopmentTask(args.prompt); const isArticle = isArticleWritingTask(args.prompt); return { content: [{ type: "text", text: JSON.stringify({ isDevelopmentTask: isDev, isArticleWritingTask: isArticle, taskType: isArticle ? "article" : (isDev ? "development" : "general"), prompt: args.prompt }, null, 2) }] }; }
- src/handlers.js:48-60 (schema)The input schema definition for the tool, specifying that it requires a 'prompt' string parameter.name: "miyabi__analyze_task_intent", description: "ユーザーのタスクを分析し、開発関連か一般タスクかを判定します", inputSchema: { type: "object", properties: { prompt: { type: "string", description: "分析するユーザーのプロンプト" } }, required: ["prompt"] } },
- src/handlers.js:45-136 (registration)The listToolsHandler function registers the 'miyabi__analyze_task_intent' tool by including it in the returned list of available tools with its schema.export function listToolsHandler() { return [ { name: "miyabi__analyze_task_intent", description: "ユーザーのタスクを分析し、開発関連か一般タスクかを判定します", inputSchema: { type: "object", properties: { prompt: { type: "string", description: "分析するユーザーのプロンプト" } }, required: ["prompt"] } }, { name: "miyabi__auto_dispatch", description: "タスクを自動的に適切なハンドラーに振り分けます(開発タスク→Miyabi、一般タスク→Manus)", inputSchema: { type: "object", properties: { prompt: { type: "string", description: "振り分けるタスクのプロンプト" } }, required: ["prompt"] } }, { name: "miyabi__handle_development_task", description: "開発タスクを処理します(Issue作成→Agent実行)", inputSchema: { type: "object", properties: { prompt: { type: "string", description: "開発タスクの内容" }, projectPath: { type: "string", description: "プロジェクトのパス(オプション)" } }, required: ["prompt"] } }, { name: "miyabi__generate_article", description: "医療AI関連の学術記事を生成します(LLMO対策、サムネイル指示付き)", inputSchema: { type: "object", properties: { articleTitle: { type: "string", description: "参照元の論文/記事のタイトル" }, articleAuthor: { type: "string", description: "著者名" }, articleSource: { type: "string", description: "出典" }, articleUrl: { type: "string", description: "参照元のURL" }, keyConcepts: { type: "string", description: "キーコンセプト(箇条書き)" }, perspective: { type: "string", description: "執筆者のペルソナ・専門分野" }, angle: { type: "string", description: "論文の切り口" }, deepDivePoints: { type: "string", description: "特に深掘りしたい論点" } }, required: ["articleTitle", "articleUrl", "perspective", "angle"] } } ]; }
- src/handlers.js:11-23 (helper)Helper function to detect if the prompt relates to development tasks by checking for relevant keywords.export function isDevelopmentTask(prompt) { const devKeywords = [ 'コード', 'プログラム', 'バグ', 'デバッグ', 'テスト', 'デプロイ', 'API', 'データベース', 'フロントエンド', 'バックエンド', 'リファクタリング', '実装', '開発', 'アプリ', 'ウェブサイト', 'システム', 'モジュール', 'code', 'program', 'bug', 'debug', 'test', 'deploy', 'api', 'database', 'frontend', 'backend', 'refactor', 'implement', 'develop', 'app', 'website', 'system', 'module' ]; const lowerPrompt = prompt.toLowerCase(); return devKeywords.some(keyword => lowerPrompt.includes(keyword.toLowerCase())); }
- src/handlers.js:30-39 (helper)Helper function to detect if the prompt is for article writing tasks by checking for relevant keywords.export function isArticleWritingTask(prompt) { const articleKeywords = [ '記事', '論文', 'note', 'ブログ', '執筆', '書いて', '作成', 'article', 'paper', 'blog', 'write', 'create', 'post', '医療AI', '医療', 'AI', 'LLMO', 'サムネイル', 'ハッシュタグ' ]; const lowerPrompt = prompt.toLowerCase(); return articleKeywords.some(keyword => lowerPrompt.includes(keyword.toLowerCase())); }