SCALE — Build Lab
開発パターン · TYPESCRIPT LIBRARY

ツールライブラリパターン

CATEGORY開発パターン TYPETypeScript Library EFFORT60〜180分 DIFFICULTY
PRIMARY CODE
ts · lib/tools-library.ts
// SCALE Base 連携ツールライブラリ
// 社内で参考・活用できる外部ツール/AIサービスを一元管理
// 各システムから `systemIds` でフィルタして表示する

export interface ExternalTool {
  id: string;
  name: string;
  url: string;
  category: string;     // 表示用のカテゴリ
  description: string;  // 1〜2行の説明
  why: string;          // なぜSCALE Baseに内包するか
  systemIds: string[];  // 表示される対象システム
  tags: string[];
  highlight?: boolean;  // Top推薦
}

export const TOOLS_LIBRARY: ExternalTool[] = [
  // ===== Design / Creative =====
  {
    id: 'v0',
    name: 'v0.dev',
    url: 'https://v0.dev',
    category: 'Design / Code',
    description: 'Vercelによるプロンプト→Reactコンポーネント生成AI',
    why: 'Design Studio の起爆剤。テキスト指示でUIが出る',
    systemIds: ['design', 'services'],
    tags: ['AI', 'UI', 'React'],
    highlight: true,
  },
  {
    id: 'galileo',
    name: 'Galileo AI',
    url: 'https://www.usegalileo.ai',
    category: 'Design',
    description: 'テキストからUI/アプリ画面を生成',
    why: 'アプリのモック・画面案を秒で作成',
    systemIds: ['design'],
    tags: ['AI', 'UI'],
  },
  {
    id: 'magic-patterns',
    name: 'Magic Patterns',
    url: 'https://www.magicpatterns.com',
    category: 'Design',
    description: 'A/Bパターン自動生成、UIバリエーション比較',
    why: 'デザイン案を大量に出して比較',
    systemIds: ['design'],
    tags: ['AI', 'UI', 'A/B'],
  },
  {
    id: 'recraft',
    name: 'Recraft',
    url: 'https://www.recraft.ai',
    category: 'Design',
    description: 'ブランド整合ベクター画像生成AI',
    why: 'ブランドガイドに沿ったアイコン・イラスト量産',
    systemIds: ['design', 'brand'],
    tags: ['AI', 'Image', 'Brand'],
  },
  {
    id: 'krea',
    name: 'Krea',
    url: 'https://www.krea.ai',
    category: 'Design',
    description: 'リアルタイム画像生成+編集',
    why: '即時フィードバックで画像を作り込める',
    systemIds: ['design'],
    tags: ['AI', 'Image'],
  },

  // ===== Research / Insight =====
  {
    id: 'exa',
    name: 'Exa',
    url: 'https://exa.ai',
    category: 'Research',
    description: 'セマンティック検索で競合・類似サービス調査',
    why: 'Service Insight のバックエンドとして理想',
    systemIds: ['insight', 'rnd'],
    tags: ['AI', 'Search'],
    highlight: true,
  },
  {
    id: 'perplexity',
    name: 'Perplexity',
    url: 'https://www.perplexity.ai',
    category: 'Research',
    description: '出典付きAI検索・調査ワークフロー',
    why: '出典付きで信頼性高くリサーチ',
    systemIds: ['insight', 'assistant', 'rnd'],
    tags: ['AI', 'Search'],
  },
  {
    id: 'consensus',
    name: 'Consensus',
    url: 'https://consensus.app',
    category: 'Research',
    description: '学術論文からエビデンス抽出',
    why: 'R&D で根拠ベースの企画に',
    systemIds: ['rnd'],
    tags: ['AI', 'Research'],
  },
  {
    id: 'elicit',
    name: 'Elicit',
    url: 'https://elicit.com',
    category: 'Research',
    description: 'リサーチワークフロー自動化',
    why: '論文・レポートの横断解析',
    systemIds: ['rnd'],
    tags: ['AI', 'Research'],
  },
  {
    id: 'kompyte',
    name: 'Kompyte',
    url: 'https://www.kompyte.com',
    category: 'Intelligence',
    description: '競合監視ダッシュボード',
    why: '競合のHP変更・価格改定を自動検知',
    systemIds: ['brand', 'insight'],
    tags: ['Monitoring', 'Competitor'],
  },

  // ===== Automation =====
  {
    id: 'n8n',
    name: 'n8n',
    url: 'https://n8n.io',
    category: 'Automation',
    description: 'OSS Zapier、自社ホスト可',
    why: 'ワークフロー基盤として強力。自社データで完結',
    systemIds: ['automation'],
    tags: ['Workflow', 'OSS'],
    highlight: true,
  },
  {
    id: 'windmill',
    name: 'Windmill',
    url: 'https://www.windmill.dev',
    category: 'Automation',
    description: 'スクリプト+ワークフロー統合',
    why: 'コードとGUIを両立したオートメーション',
    systemIds: ['automation'],
    tags: ['Workflow', 'Scripting'],
  },
  {
    id: 'trigger',
    name: 'Trigger.dev',
    url: 'https://trigger.dev',
    category: 'Automation',
    description: 'コードファーストの長時間ジョブ',
    why: 'エンジニア主導でイベント駆動自動化',
    systemIds: ['automation', 'services'],
    tags: ['Jobs', 'Code'],
  },
  {
    id: 'inngest',
    name: 'Inngest',
    url: 'https://www.inngest.com',
    category: 'Automation',
    description: 'イベント駆動ワークフロー',
    why: 'プロダクト機能にも組み込めるジョブ基盤',
    systemIds: ['automation', 'services'],
    tags: ['Events'],
  },
  {
    id: 'dify',
    name: 'Dify',
    url: 'https://dify.ai',
    category: 'AI App',
    description: 'ノーコードAIアプリ構築プラットフォーム',
    why: 'AI Ops の補完。社内AIアプリを量産',
    systemIds: ['ai-ops', 'automation'],
    tags: ['AI', 'NoCode'],
    highlight: true,
  },
  {
    id: 'langflow',
    name: 'Langflow',
    url: 'https://www.langflow.org',
    category: 'AI App',
    description: 'LangChainのビジュアルフロー',
    why: 'AIワークフローを視覚的に構築',
    systemIds: ['ai-ops', 'automation'],
    tags: ['AI', 'LangChain'],
  },

  // ===== Analytics / Data =====
  {
    id: 'posthog',
    name: 'PostHog',
    url: 'https://posthog.com',
    category: 'Analytics',
    description: 'プロダクト分析+セッションリプレイ',
    why: 'Data Lake を一気にプロダクト分析基盤に昇格',
    systemIds: ['datalake', 'services'],
    tags: ['Analytics', 'OSS'],
    highlight: true,
  },
  {
    id: 'umami',
    name: 'Umami',
    url: 'https://umami.is',
    category: 'Analytics',
    description: 'プライバシー重視の軽量分析',
    why: 'GA代替として自社HPに導入',
    systemIds: ['datalake', 'hp'],
    tags: ['Analytics', 'Privacy'],
  },
  {
    id: 'metabase',
    name: 'Metabase',
    url: 'https://www.metabase.com',
    category: 'BI',
    description: 'OSS BIダッシュボード',
    why: 'データをGUIで可視化',
    systemIds: ['datalake', 'command'],
    tags: ['BI', 'OSS'],
  },
  {
    id: 'evidence',
    name: 'Evidence',
    url: 'https://evidence.dev',
    category: 'BI',
    description: 'Markdownで書けるBIレポート',
    why: 'エンジニア主導のデータレポート',
    systemIds: ['datalake'],
    tags: ['BI', 'Markdown'],
  },
  {
    id: 'motherduck',
    name: 'MotherDuck',
    url: 'https://motherduck.com',
    category: 'DB',
    description: 'DuckDBのクラウド版',
    why: '軽量高速な分析DB。ミニマルな分析基盤',
    systemIds: ['datalake'],
    tags: ['DB', 'Analytics'],
  },

  // ===== Writing / Content =====
  {
    id: 'lex',
    name: 'Lex',
    url: 'https://lex.page',
    category: 'Writing',
    description: 'AIで書く長文エディタ',
    why: '記事・レポート執筆の生産性を上げる',
    systemIds: ['writing', 'docs'],
    tags: ['AI', 'Editor'],
  },
  {
    id: 'typefully',
    name: 'Typefully',
    url: 'https://typefully.com',
    category: 'Social',
    description: 'X スレッド予約投稿+分析',
    why: 'X運用の効率化、既存X機能と連携',
    systemIds: ['x'],
    tags: ['X', 'Scheduler'],
  },
  {
    id: 'jenni',
    name: 'Jenni AI',
    url: 'https://jenni.ai',
    category: 'Writing',
    description: '論文/記事の執筆支援AI',
    why: 'アカデミックライティング向け',
    systemIds: ['writing'],
    tags: ['AI'],
  },
  {
    id: 'frase',
    name: 'Frase',
    url: 'https://www.frase.io',
    category: 'SEO',
    description: 'SERP分析+コンテンツ最適化',
    why: 'SEO記事の上位表示ハック',
    systemIds: ['seo'],
    tags: ['SEO'],
  },
  {
    id: 'writesonic',
    name: 'Writesonic',
    url: 'https://writesonic.com',
    category: 'Writing',
    description: 'コンテンツ量産AI',
    why: 'ブログ・広告コピー量産',
    systemIds: ['writing', 'seo'],
    tags: ['AI'],
  },

  // ===== Marketing / Growth / CRM =====
  {
    id: 'gumloop',
    name: 'Gumloop',
    url: 'https://www.gumloop.com',
    category: 'Automation',
    description: 'マーケ特化AI自動化',
    why: 'リード獲得からナーチャリングまで',
    systemIds: ['automation', 'crm'],
    tags: ['AI', 'Marketing'],
  },
  {
    id: 'clay',
    name: 'Clay',
    url: 'https://www.clay.com',
    category: 'CRM',
    description: 'リード enrichment(個人情報補完)',
    why: 'CRMを数倍強化。リードデータが自動で充実',
    systemIds: ['crm'],
    tags: ['Sales', 'Data'],
    highlight: true,
  },
  {
    id: 'apollo',
    name: 'Apollo.io',
    url: 'https://www.apollo.io',
    category: 'CRM',
    description: 'リード発掘+アウトバウンド',
    why: '大量アウトバウンドの鉄板',
    systemIds: ['crm'],
    tags: ['Sales'],
  },
  {
    id: 'lemlist',
    name: 'Lemlist',
    url: 'https://www.lemlist.com',
    category: 'CRM',
    description: 'パーソナライズメール配信',
    why: '個別最適メール大量送信',
    systemIds: ['crm'],
    tags: ['Email'],
  },
  {
    id: 'instantly',
    name: 'Instantly',
    url: 'https://instantly.ai',
    category: 'CRM',
    description: '大量アウトバウンド+到達率保護',
    why: 'Gmail/Outlookのスパム判定回避',
    systemIds: ['crm'],
    tags: ['Email', 'Deliverability'],
  },

  // ===== Meeting / Voice / AI =====
  {
    id: 'granola',
    name: 'Granola',
    url: 'https://www.granola.ai',
    category: 'Meeting',
    description: '会議メモ+AIサマリ',
    why: 'Tasks作業報告と相性バツグン',
    systemIds: ['tasks', 'assistant'],
    tags: ['AI', 'Meeting'],
    highlight: true,
  },
  {
    id: 'tldv',
    name: 'tl;dv',
    url: 'https://tldv.io',
    category: 'Meeting',
    description: 'Zoom録画+議事録自動化',
    why: 'ミーティング自動議事録(社内利用中)',
    systemIds: ['tasks'],
    tags: ['Meeting'],
  },
  {
    id: 'fireflies',
    name: 'Fireflies',
    url: 'https://fireflies.ai',
    category: 'Meeting',
    description: 'AI議事録+タスク抽出',
    why: '議事録からタスク自動生成',
    systemIds: ['tasks'],
    tags: ['AI', 'Meeting'],
  },
  {
    id: 'elevenlabs',
    name: 'ElevenLabs',
    url: 'https://elevenlabs.io',
    category: 'Voice',
    description: '高品質音声生成',
    why: 'ナレーション・広告音声を自前で',
    systemIds: ['ai-ops', 'design'],
    tags: ['Voice', 'AI'],
  },
  {
    id: 'vapi',
    name: 'Vapi',
    url: 'https://vapi.ai',
    category: 'Voice',
    description: '電話AIエージェント',
    why: 'カスタマーサポート・アポ取りをAI化',
    systemIds: ['ai-ops'],
    tags: ['Voice', 'AI'],
  },

  // ===== Developer / Engineering =====
  {
    id: 'linear',
    name: 'Linear',
    url: 'https://linear.app',
    category: 'PM',
    description: 'issue tracking(開発管理)',
    why: '開発タスクとServicesの統合',
    systemIds: ['services', 'tasks'],
    tags: ['PM', 'Dev'],
  },
  {
    id: 'cursor',
    name: 'Cursor',
    url: 'https://cursor.sh',
    category: 'IDE',
    description: 'AIネイティブIDE',
    why: '開発速度が劇的に上がる',
    systemIds: ['services'],
    tags: ['AI', 'Dev'],
  },
  {
    id: 'sourcegraph',
    name: 'Sourcegraph Cody',
    url: 'https://sourcegraph.com/cody',
    category: 'Dev',
    description: '大規模コード検索AI',
    why: 'コードベース全体をAIで理解',
    systemIds: ['services'],
    tags: ['AI', 'Dev'],
  },
  {
    id: 'graphite',
    name: 'Graphite',
    url: 'https://graphite.dev',
    category: 'Dev',
    description: 'PRスタックベースのレビュー',
    why: 'レビュー体験を次世代化',
    systemIds: ['services'],
    tags: ['Dev', 'Review'],
  },

  // ===== Knowledge / Docs =====
  {
    id: 'mem',
    name: 'Mem',
    url: 'https://mem.ai',
    category: 'Notes',
    description: 'AI知識ベース',
    why: '社内ナレッジをAIで検索',
    systemIds: ['docs', 'assistant'],
    tags: ['AI', 'Notes'],
  },
  {
    id: 'reflect',
    name: 'Reflect',
    url: 'https://reflect.app',
    category: 'Notes',
    description: 'ネットワーク型ノート',
    why: '思考の連鎖を可視化',
    systemIds: ['docs'],
    tags: ['Notes'],
  },
  {
    id: 'glean',
    name: 'Glean',
    url: 'https://www.glean.com',
    category: 'Search',
    description: '社内横断検索AI',
    why: 'Slack/Notion/Driveを横断検索',
    systemIds: ['assistant', 'docs'],
    tags: ['AI', 'Search'],
  },
  {
    id: 'fibery',
    name: 'Fibery',
    url: 'https://fibery.io',
    category: 'Workspace',
    description: 'カスタムワークスペース',
    why: 'Notion代替、柔軟なデータモデル',
    systemIds: ['tasks', 'docs'],
    tags: ['Workspace'],
  },

  // ===== Unique / Emerging =====
  {
    id: 'cal',
    name: 'Cal.com',
    url: 'https://cal.com',
    category: 'Scheduler',
    description: 'OSSスケジューラ、API豊富',
    why: 'カレンダー機能の拡張',
    systemIds: ['tasks'],
    tags: ['Calendar', 'OSS'],
  },
  {
    id: 'attio',
    name: 'Attio',
    url: 'https://attio.com',
    category: 'CRM',
    description: 'データモデル柔軟なCRM',
    why: '次世代CRM、APIファースト',
    systemIds: ['crm'],
    tags: ['CRM'],
  },
  {
    id: 'outerbase',
    name: 'Outerbase',
    url: 'https://outerbase.com',
    category: 'DB Client',
    description: 'AI統合DBクライアント',
    why: 'データへのアクセスをAIで簡単に',
    systemIds: ['datalake', 'services'],
    tags: ['DB', 'AI'],
  },
  {
    id: 'arcade',
    name: 'Arcade Software',
    url: 'https://www.arcade.software',
    category: 'Demo',
    description: 'プロダクトデモをGIF化',
    why: 'デモ動画を爆速で作成',
    systemIds: ['docs', 'hp', 'brand'],
    tags: ['Demo'],
  },
  {
    id: 'supademo',
    name: 'Supademo',
    url: 'https://supademo.com',
    category: 'Demo',
    description: 'インタラクティブデモ作成',
    why: 'オンボーディング用デモに',
    systemIds: ['hr', 'docs', 'hp'],
    tags: ['Demo'],
  },
  {
    id: 'retool',
    name: 'Retool',
    url: 'https://retool.com',
    category: 'Internal Tools',
    description: '社内ツール爆速構築',
    why: '管理画面をドラッグ&ドロップで',
    systemIds: ['services', 'admin'],
    tags: ['NoCode'],
  },
];

export function toolsForSystem(systemId: string): ExternalTool[] {
  return TOOLS_LIBRARY.filter(t => t.systemIds.includes(systemId));
}

export function getHighlights(): ExternalTool[] {
  return TOOLS_LIBRARY.filter(t => t.highlight);
}

export function getAllCategories(): string[] {
  return Array.from(new Set(TOOLS_LIBRARY.map(t => t.category))).sort();
}

前提条件
Tailwind CSS v4TypeScript 5
USE CASES
  • 社内ツール集約

ツールライブラリパターン

:LiTarget: 用途

各セクションで使うミニツール(電卓・コンバーター等)を一元管理するパターン。

:LiSparkle: 特徴

  • ツール定義の単一情報源
  • カテゴリ管理
  • 検索可能

:LiCode: 実コード(SCALE Base より自動抽出)

:LiInfo: lib/tools-library.ts の中身そのもの。コピペ即可。

// SCALE Base 連携ツールライブラリ
// 社内で参考・活用できる外部ツール/AIサービスを一元管理
// 各システムから `systemIds` でフィルタして表示する

export interface ExternalTool {
  id: string;
  name: string;
  url: string;
  category: string;     // 表示用のカテゴリ
  description: string;  // 1〜2行の説明
  why: string;          // なぜSCALE Baseに内包するか
  systemIds: string[];  // 表示される対象システム
  tags: string[];
  highlight?: boolean;  // Top推薦
}

export const TOOLS_LIBRARY: ExternalTool[] = [
  // ===== Design / Creative =====
  {
    id: 'v0',
    name: 'v0.dev',
    url: 'https://v0.dev',
    category: 'Design / Code',
    description: 'Vercelによるプロンプト→Reactコンポーネント生成AI',
    why: 'Design Studio の起爆剤。テキスト指示でUIが出る',
    systemIds: ['design', 'services'],
    tags: ['AI', 'UI', 'React'],
    highlight: true,
  },
  {
    id: 'galileo',
    name: 'Galileo AI',
    url: 'https://www.usegalileo.ai',
    category: 'Design',
    description: 'テキストからUI/アプリ画面を生成',
    why: 'アプリのモック・画面案を秒で作成',
    systemIds: ['design'],
    tags: ['AI', 'UI'],
  },
  {
    id: 'magic-patterns',
    name: 'Magic Patterns',
    url: 'https://www.magicpatterns.com',
    category: 'Design',
    description: 'A/Bパターン自動生成、UIバリエーション比較',
    why: 'デザイン案を大量に出して比較',
    systemIds: ['design'],
    tags: ['AI', 'UI', 'A/B'],
  },
  {
    id: 'recraft',
    name: 'Recraft',
    url: 'https://www.recraft.ai',
    category: 'Design',
    description: 'ブランド整合ベクター画像生成AI',
    why: 'ブランドガイドに沿ったアイコン・イラスト量産',
    systemIds: ['design', 'brand'],
    tags: ['AI', 'Image', 'Brand'],
  },
  {
    id: 'krea',
    name: 'Krea',
    url: 'https://www.krea.ai',
    category: 'Design',
    description: 'リアルタイム画像生成+編集',
    why: '即時フィードバックで画像を作り込める',
    systemIds: ['design'],
    tags: ['AI', 'Image'],
  },

  // ===== Research / Insight =====
  {
    id: 'exa',
    name: 'Exa',
    url: 'https://exa.ai',
    category: 'Research',
    description: 'セマンティック検索で競合・類似サービス調査',
    why: 'Service Insight のバックエンドとして理想',
    systemIds: ['insight', 'rnd'],
    tags: ['AI', 'Search'],
    highlight: true,
  },
  {
    id: 'perplexity',
    name: 'Perplexity',
    url: 'https://www.perplexity.ai',
    category: 'Research',
    description: '出典付きAI検索・調査ワークフロー',
    why: '出典付きで信頼性高くリサーチ',
    systemIds: ['insight', 'assistant', 'rnd'],
    tags: ['AI', 'Search'],
  },
  {
    id: 'consensus',
    name: 'Consensus',
    url: 'https://consensus.app',
    category: 'Research',
    description: '学術論文からエビデンス抽出',
    why: 'R&D で根拠ベースの企画に',
    systemIds: ['rnd'],
    tags: ['AI', 'Research'],
  },
  {
    id: 'elicit',
    name: 'Elicit',
    url: 'https://elicit.com',
    category: 'Research',
    description: 'リサーチワークフロー自動化',
    why: '論文・レポートの横断解析',
    systemIds: ['rnd'],
    tags: ['AI', 'Research'],
  },
  {
    id: 'kompyte',
    name: 'Kompyte',
    url: 'https://www.kompyte.com',
    category: 'Intelligence',
    description: '競合監視ダッシュボード',
    why: '競合のHP変更・価格改定を自動検知',
    systemIds: ['brand', 'insight'],
    tags: ['Monitoring', 'Competitor'],
  },

  // ===== Automation =====
  {
    id: 'n8n',
    name: 'n8n',
    url: 'https://n8n.io',
    category: 'Automation',
    description: 'OSS Zapier、自社ホスト可',
    why: 'ワークフロー基盤として強力。自社データで完結',
    systemIds: ['automation'],
    tags: ['Workflow', 'OSS'],
    highlight: true,
  },
  {
    id: 'windmill',
    name: 'Windmill',
    url: 'https://www.windmill.dev',
    category: 'Automation',
    description: 'スクリプト+ワークフロー統合',
    why: 'コードとGUIを両立したオートメーション',
    systemIds: ['automation'],
    tags: ['Workflow', 'Scripting'],
  },
  {
    id: 'trigger',
    name: 'Trigger.dev',
    url: 'https://trigger.dev',
    category: 'Automation',
    description: 'コードファーストの長時間ジョブ',
    why: 'エンジニア主導でイベント駆動自動化',
    systemIds: ['automation', 'services'],
    tags: ['Jobs', 'Code'],
  },
  {
    id: 'inngest',
    name: 'Inngest',
    url: 'https://www.inngest.com',
    category: 'Automation',
    description: 'イベント駆動ワークフロー',
    why: 'プロダクト機能にも組み込めるジョブ基盤',
    systemIds: ['automation', 'services'],
    tags: ['Events'],
  },
  {
    id: 'dify',
    name: 'Dify',
    url: 'https://dify.ai',
    category: 'AI App',
    description: 'ノーコードAIアプリ構築プラットフォーム',
    why: 'AI Ops の補完。社内AIアプリを量産',
    systemIds: ['ai-ops', 'automation'],
    tags: ['AI', 'NoCode'],
    highlight: true,
  },
  {
    id: 'langflow',
    name: 'Langflow',
    url: 'https://www.langflow.org',
    category: 'AI App',
    description: 'LangChainのビジュアルフロー',
    why: 'AIワークフローを視覚的に構築',
    systemIds: ['ai-ops', 'automation'],
    tags: ['AI', 'LangChain'],
  },

  // ===== Analytics / Data =====
  {
    id: 'posthog',
    name: 'PostHog',
    url: 'https://posthog.com',
    category: 'Analytics',
    description: 'プロダクト分析+セッションリプレイ',
    why: 'Data Lake を一気にプロダクト分析基盤に昇格',
    systemIds: ['datalake', 'services'],
    tags: ['Analytics', 'OSS'],
    highlight: true,
  },
  {
    id: 'umami',
    name: 'Umami',
    url: 'https://umami.is',
    category: 'Analytics',
    description: 'プライバシー重視の軽量分析',
    why: 'GA代替として自社HPに導入',
    systemIds: ['datalake', 'hp'],
    tags: ['Analytics', 'Privacy'],
  },
  {
    id: 'metabase',
    name: 'Metabase',
    url: 'https://www.metabase.com',
    category: 'BI',
    description: 'OSS BIダッシュボード',
    why: 'データをGUIで可視化',
    systemIds: ['datalake', 'command'],
    tags: ['BI', 'OSS'],
  },
  {
    id: 'evidence',
    name: 'Evidence',
    url: 'https://evidence.dev',
    category: 'BI',
    description: 'Markdownで書けるBIレポート',
    why: 'エンジニア主導のデータレポート',
    systemIds: ['datalake'],
    tags: ['BI', 'Markdown'],
  },
  {
    id: 'motherduck',
    name: 'MotherDuck',
    url: 'https://motherduck.com',
    category: 'DB',
    description: 'DuckDBのクラウド版',
    why: '軽量高速な分析DB。ミニマルな分析基盤',
    systemIds: ['datalake'],
    tags: ['DB', 'Analytics'],
  },

  // ===== Writing / Content =====
  {
    id: 'lex',
    name: 'Lex',
    url: 'https://lex.page',
    category: 'Writing',
    description: 'AIで書く長文エディタ',
    why: '記事・レポート執筆の生産性を上げる',
    systemIds: ['writing', 'docs'],
    tags: ['AI', 'Editor'],
  },
  {
    id: 'typefully',
    name: 'Typefully',
    url: 'https://typefully.com',
    category: 'Social',
    description: 'X スレッド予約投稿+分析',
    why: 'X運用の効率化、既存X機能と連携',
    systemIds: ['x'],
    tags: ['X', 'Scheduler'],
  },
  {
    id: 'jenni',
    name: 'Jenni AI',
    url: 'https://jenni.ai',
    category: 'Writing',
    description: '論文/記事の執筆支援AI',
    why: 'アカデミックライティング向け',
    systemIds: ['writing'],
    tags: ['AI'],
  },
  {
    id: 'frase',
    name: 'Frase',
    url: 'https://www.frase.io',
    category: 'SEO',
    description: 'SERP分析+コンテンツ最適化',
    why: 'SEO記事の上位表示ハック',
    systemIds: ['seo'],
    tags: ['SEO'],
  },
  {
    id: 'writesonic',
    name: 'Writesonic',
    url: 'https://writesonic.com',
    category: 'Writing',
    description: 'コンテンツ量産AI',
    why: 'ブログ・広告コピー量産',
    systemIds: ['writing', 'seo'],
    tags: ['AI'],
  },

  // ===== Marketing / Growth / CRM =====
  {
    id: 'gumloop',
    name: 'Gumloop',
    url: 'https://www.gumloop.com',
    category: 'Automation',
    description: 'マーケ特化AI自動化',
    why: 'リード獲得からナーチャリングまで',
    systemIds: ['automation', 'crm'],
    tags: ['AI', 'Marketing'],
  },
  {
    id: 'clay',
    name: 'Clay',
    url: 'https://www.clay.com',
    category: 'CRM',
    description: 'リード enrichment(個人情報補完)',
    why: 'CRMを数倍強化。リードデータが自動で充実',
    systemIds: ['crm'],
    tags: ['Sales', 'Data'],
    highlight: true,
  },
  {
    id: 'apollo',
    name: 'Apollo.io',
    url: 'https://www.apollo.io',
    category: 'CRM',
    description: 'リード発掘+アウトバウンド',
    why: '大量アウトバウンドの鉄板',
    systemIds: ['crm'],
    tags: ['Sales'],
  },
  {
    id: 'lemlist',
    name: 'Lemlist',
    url: 'https://www.lemlist.com',
    category: 'CRM',
    description: 'パーソナライズメール配信',
    why: '個別最適メール大量送信',
    systemIds: ['crm'],
    tags: ['Email'],
  },
  {
    id: 'instantly',
    name: 'Instantly',
    url: 'https://instantly.ai',
    category: 'CRM',
    description: '大量アウトバウンド+到達率保護',
    why: 'Gmail/Outlookのスパム判定回避',
    systemIds: ['crm'],
    tags: ['Email', 'Deliverability'],
  },

  // ===== Meeting / Voice / AI =====
  {
    id: 'granola',
    name: 'Granola',
    url: 'https://www.granola.ai',
    category: 'Meeting',
    description: '会議メモ+AIサマリ',
    why: 'Tasks作業報告と相性バツグン',
    systemIds: ['tasks', 'assistant'],
    tags: ['AI', 'Meeting'],
    highlight: true,
  },
  {
    id: 'tldv',
    name: 'tl;dv',
    url: 'https://tldv.io',
    category: 'Meeting',
    description: 'Zoom録画+議事録自動化',
    why: 'ミーティング自動議事録(社内利用中)',
    systemIds: ['tasks'],
    tags: ['Meeting'],
  },
  {
    id: 'fireflies',
    name: 'Fireflies',
    url: 'https://fireflies.ai',
    category: 'Meeting',
    description: 'AI議事録+タスク抽出',
    why: '議事録からタスク自動生成',
    systemIds: ['tasks'],
    tags: ['AI', 'Meeting'],
  },
  {
    id: 'elevenlabs',
    name: 'ElevenLabs',
    url: 'https://elevenlabs.io',
    category: 'Voice',
    description: '高品質音声生成',
    why: 'ナレーション・広告音声を自前で',
    systemIds: ['ai-ops', 'design'],
    tags: ['Voice', 'AI'],
  },
  {
    id: 'vapi',
    name: 'Vapi',
    url: 'https://vapi.ai',
    category: 'Voice',
    description: '電話AIエージェント',
    why: 'カスタマーサポート・アポ取りをAI化',
    systemIds: ['ai-ops'],
    tags: ['Voice', 'AI'],
  },

  // ===== Developer / Engineering =====
  {
    id: 'linear',
    name: 'Linear',
    url: 'https://linear.app',
    category: 'PM',
    description: 'issue tracking(開発管理)',
    why: '開発タスクとServicesの統合',
    systemIds: ['services', 'tasks'],
    tags: ['PM', 'Dev'],
  },
  {
    id: 'cursor',
    name: 'Cursor',
    url: 'https://cursor.sh',
    category: 'IDE',
    description: 'AIネイティブIDE',
    why: '開発速度が劇的に上がる',
    systemIds: ['services'],
    tags: ['AI', 'Dev'],
  },
  {
    id: 'sourcegraph',
    name: 'Sourcegraph Cody',
    url: 'https://sourcegraph.com/cody',
    category: 'Dev',
    description: '大規模コード検索AI',
    why: 'コードベース全体をAIで理解',
    systemIds: ['services'],
    tags: ['AI', 'Dev'],
  },
  {
    id: 'graphite',
    name: 'Graphite',
    url: 'https://graphite.dev',
    category: 'Dev',
    description: 'PRスタックベースのレビュー',
    why: 'レビュー体験を次世代化',
    systemIds: ['services'],
    tags: ['Dev', 'Review'],
  },

  // ===== Knowledge / Docs =====
  {
    id: 'mem',
    name: 'Mem',
    url: 'https://mem.ai',
    category: 'Notes',
    description: 'AI知識ベース',
    why: '社内ナレッジをAIで検索',
    systemIds: ['docs', 'assistant'],
    tags: ['AI', 'Notes'],
  },
  {
    id: 'reflect',
    name: 'Reflect',
    url: 'https://reflect.app',
    category: 'Notes',
    description: 'ネットワーク型ノート',
    why: '思考の連鎖を可視化',
    systemIds: ['docs'],
    tags: ['Notes'],
  },
  {
    id: 'glean',
    name: 'Glean',
    url: 'https://www.glean.com',
    category: 'Search',
    description: '社内横断検索AI',
    why: 'Slack/Notion/Driveを横断検索',
    systemIds: ['assistant', 'docs'],
    tags: ['AI', 'Search'],
  },
  {
    id: 'fibery',
    name: 'Fibery',
    url: 'https://fibery.io',
    category: 'Workspace',
    description: 'カスタムワークスペース',
    why: 'Notion代替、柔軟なデータモデル',
    systemIds: ['tasks', 'docs'],
    tags: ['Workspace'],
  },

  // ===== Unique / Emerging =====
  {
    id: 'cal',
    name: 'Cal.com',
    url: 'https://cal.com',
    category: 'Scheduler',
    description: 'OSSスケジューラ、API豊富',
    why: 'カレンダー機能の拡張',
    systemIds: ['tasks'],
    tags: ['Calendar', 'OSS'],
  },
  {
    id: 'attio',
    name: 'Attio',
    url: 'https://attio.com',
    category: 'CRM',
    description: 'データモデル柔軟なCRM',
    why: '次世代CRM、APIファースト',
    systemIds: ['crm'],
    tags: ['CRM'],
  },
  {
    id: 'outerbase',
    name: 'Outerbase',
    url: 'https://outerbase.com',
    category: 'DB Client',
    description: 'AI統合DBクライアント',
    why: 'データへのアクセスをAIで簡単に',
    systemIds: ['datalake', 'services'],
    tags: ['DB', 'AI'],
  },
  {
    id: 'arcade',
    name: 'Arcade Software',
    url: 'https://www.arcade.software',
    category: 'Demo',
    description: 'プロダクトデモをGIF化',
    why: 'デモ動画を爆速で作成',
    systemIds: ['docs', 'hp', 'brand'],
    tags: ['Demo'],
  },
  {
    id: 'supademo',
    name: 'Supademo',
    url: 'https://supademo.com',
    category: 'Demo',
    description: 'インタラクティブデモ作成',
    why: 'オンボーディング用デモに',
    systemIds: ['hr', 'docs', 'hp'],
    tags: ['Demo'],
  },
  {
    id: 'retool',
    name: 'Retool',
    url: 'https://retool.com',
    category: 'Internal Tools',
    description: '社内ツール爆速構築',
    why: '管理画面をドラッグ&ドロップで',
    systemIds: ['services', 'admin'],
    tags: ['NoCode'],
  },
];

export function toolsForSystem(systemId: string): ExternalTool[] {
  return TOOLS_LIBRARY.filter(t => t.systemIds.includes(systemId));
}

export function getHighlights(): ExternalTool[] {
  return TOOLS_LIBRARY.filter(t => t.highlight);
}

export function getAllCategories(): string[] {
  return Array.from(new Set(TOOLS_LIBRARY.map(t => t.category))).sort();
}

:LiFolder: ソースファイルのパス

/Users/oogushiyuuki/Library/CloudStorage/GoogleDrive-y-ogushi@scale-group.co.jp/マイドライブ/AI/scale-base/lib/tools-library.ts

:LiHandPointer: 使い方

対象プロジェクトに該当ファイルをコピーして、props を流し込むだけ。

:LiAlertCircle: 注意事項

  • 依存パッケージを忘れず追加