// i18n.jsx — EN/JA translations
const I18N = {
  en: {
    nav: { features: "Features", demo: "Demo", board: "Board", workflow: "Workflow", install: "Install", docs: "Docs" },
    heroTag: "v3.3.0",
    heroPill: "AI-native CLI · built for Claude Code",
    heroTitle1: "Task management",
    heroTitle2: "at the speed",
    heroTitle3: "of your agent.",
    heroLead: "agkan is a lightweight CLI kanban for indie developers shipping with AI. Create, track and hand off tasks to Claude Code — without leaving the terminal.",
    ctaInstall: "Get started",
    ctaGithub: "View on GitHub",
    stats: [
      { v: "7", l: "Workflow statuses" },
      { v: "0ms", l: "Cloud round-trip" },
      { v: "1 cmd", l: "Hand off to Claude" },
      { v: "SQLite", l: "Local storage" },
    ],

    featuresKicker: "The toolbox",
    featuresTitle: "Everything a solo builder needs. Nothing they don't.",
    featuresSub: "Eight primitives, composed. No accounts, no cloud, no ceremony.",
    features: [
      { n: "01", t: "AI-native by design", d: "Hand off any task to Claude Code with one command. agkan writes the brief for you." },
      { n: "02", t: "7-stage kanban", d: "icebox → backlog → ready → in_progress → review → done → closed. Opinionated but honest." },
      { n: "03", t: "Local SQLite", d: "Your tasks live in .agkan/tasks.db. Fast, diffable, ownable. No cloud required." },
      { n: "04", t: "Tree of tasks", d: "Parent-child relationships let you break large work into subtasks you can actually finish." },
      { n: "05", t: "Blocking graph", d: "Declare dependencies between tasks. Cycles are caught before they waste your agent tokens." },
      { n: "06", t: "Tags that ship", d: "Flat, fast tagging. Filter in the CLI, pivot in the board, pipe to jq." },
      { n: "07", t: "Web board, local", d: "`agkan board` spins up a browser kanban with Claude execution built in. Still 100% offline." },
      { n: "08", t: "JSON everywhere", d: "Every command emits structured JSON. Script it, pipe it, feed it to another agent." },
    ],

    termKicker: "Live demo",
    termTitle: "The CLI, in ten seconds.",
    termSub: "Watch a full task lifecycle — add, list, update, hand off — without touching a mouse.",
    termReplay: "Replay",
    termPause: "Pause",
    termPlay: "Play",

    boardKicker: "Board view",
    boardTitle: "Or drag the card, if you'd rather.",
    boardSub: "A zero-config web UI wraps the same SQLite store. Drop a card into in_progress and click Run — Claude Code picks it up and starts working.",
    boardHint: "Try it — drag a card between columns",

    boardCols: {
      backlog: "BACKLOG",
      ready: "READY",
      in_progress: "IN PROGRESS",
      review: "REVIEW",
    },
    boardTasks: [
      { id: 23, title: "Dark mode toggle in settings menu", status: "backlog", prio: "low", tag: "frontend" },
      { id: 24, title: "Stripe webhook: handle subscription.updated", status: "backlog", prio: "med", tag: "backend" },
      { id: 25, title: "Rewrite onboarding copy for new pricing", status: "backlog", prio: "low", tag: "copy" },
      { id: 18, title: "Add retry logic to email send queue", status: "ready", prio: "high", tag: "backend" },
      { id: 19, title: "Migrate from Postgres 14 → 16", status: "ready", prio: "med", tag: "infra" },
      { id: 14, title: "Implement passkey login flow", status: "in_progress", prio: "high", tag: "auth", claude: true },
      { id: 15, title: "Weekly digest email template", status: "in_progress", prio: "med", tag: "email" },
      { id: 11, title: "Invoice PDF generator refactor", status: "review", prio: "med", tag: "billing" },
    ],

    flowKicker: "How it fits",
    flowTitle: "You plan. agkan tracks. Claude executes.",
    flowSub: "A three-actor loop that replaces the Jira-Slack-IDE tab-dance with a single terminal.",
    flowNodes: {
      you: { tag: "YOU", t: "Plan in plain English", d: "`agkan task add` — or dictate a rough brief into a markdown file and attach it." },
      agkan: { tag: "AGKAN", t: "Stores, orders, dispatches", d: "Local SQLite keeps state. The board and CLI share it. One source of truth." },
      claude: { tag: "CLAUDE CODE", t: "Picks up, codes, reports", d: "Launched in isolation with your task as context. Progress lands back on the card." },
    },

    installKicker: "Quick start",
    installTitle: "Three commands. No signup.",
    installSub: "Requires Node 20+. Everything else is local.",
    installSteps: [
      { n: "01", label: "Install from npm", code: [ ["c", "# One-time global install"], ["p", "$"], [" ", " npm install -g "], ["s", "agkan"] ] },
      { n: "02", label: "Initialize in your repo", code: [ ["p", "$"], [" ", " cd your-project\n"], ["p", "$"], [" ", " agkan init\n"], ["c", "✓ created .agkan/tasks.db"] ] },
      { n: "03", label: "Add your first task", code: [ ["p", "$"], [" ", " agkan task add "], ["s", "\"Ship v1\""], [" ", " \\\n    "], ["f", "--status"], [" ", " ready"] ] },
      { n: "04", label: "Open the board (optional)", code: [ ["p", "$"], [" ", " agkan board\n"], ["c", "→ http://localhost:8080"] ] },
    ],

    refKicker: "Reference",
    refTitle: "The whole surface on one page.",
    refSub: "Nothing hidden behind menus. Here's every verb.",
    ref: {
      task: [
        ["agkan task add", "create"],
        ["agkan task list", "show all"],
        ["agkan task update", "mutate"],
        ["agkan task find", "search"],
        ["agkan task tree", "hierarchy"],
        ["agkan task link", "block/depend"],
      ],
      tag: [
        ["agkan tag add", "create tag"],
        ["agkan tag list", "all tags"],
        ["agkan tag attach", "label task"],
        ["agkan tag detach", "unlabel"],
        ["agkan tag rename", "rename"],
        ["agkan tag rm", "delete"],
      ],
      other: [
        ["agkan init", "set up repo"],
        ["agkan board", "open web UI"],
        ["agkan export", "dump JSON"],
        ["agkan import", "load JSON"],
        ["agkan config", "prefs"],
        ["agkan doctor", "diagnose"],
      ],
    },

    refOptions: "Options",
    refDetail: {
      statusLabel: "Status Reference",
      priorityLabel: "Priority Reference",
      statuses: [
        ["icebox",      "On hold, not currently planned"],
        ["backlog",     "Planned but not started"],
        ["ready",       "Ready to begin"],
        ["in_progress", "Currently being worked on"],
        ["review",      "Under review"],
        ["done",        "Completed"],
        ["closed",      "Closed or cancelled"],
      ],
      priorities: [
        ["critical", "Blocking — immediate action required"],
        ["high",     "High priority, address soon"],
        ["medium",   "Normal priority (default)"],
        ["low",      "Address when time permits"],
      ],
      task: [
        {
          name: "agkan task add",
          desc: "Create a new task",
          syntax: "agkan task add [options] [title] [body]",
          opts: [
            ["-s, --status <status>",   "Initial status (default: backlog)"],
            ["--priority <priority>",   "Priority level (default: medium)"],
            ["-p, --parent <id>",       "Parent task ID for subtask"],
            ["--file <path>",           "Read body from a Markdown file"],
            ["--blocked-by <ids>",      "Comma-separated IDs that block this task"],
            ["--blocks <ids>",          "Comma-separated IDs this task blocks"],
            ["--json",                  "Output result as JSON"],
          ],
          examples: [
            'agkan task add "Fix login bug"',
            'agkan task add "New feature" --status ready',
            'agkan task add "Write tests" --parent 1',
            'agkan task add "Spec" --file spec.md --status backlog',
          ],
        },
        {
          name: "agkan task list",
          desc: "List tasks",
          syntax: "agkan task list [options]",
          opts: [
            ["-s, --status <status>",     "Filter by status"],
            ["-t, --tag <tags>",          "Filter by tag name(s), comma-separated"],
            ["-p, --priority <p>",        "Filter by priority, comma-separated"],
            ["--all",                     "Include done and closed tasks"],
            ["--tree",                    "Display as parent-child tree"],
            ["--root-only",               "Show only top-level tasks"],
            ["--sort <field>",            "Sort by: id, title, status, created_at, priority"],
            ["--order <asc|desc>",        "Sort direction"],
            ["--json",                    "Output as JSON"],
          ],
          examples: [
            "agkan task list",
            "agkan task list --status in_progress",
            "agkan task list --tag backend --priority high,critical",
            "agkan task list --tree",
            "agkan task list --all --json",
          ],
        },
        {
          name: "agkan task get",
          desc: "Get a task by ID",
          syntax: "agkan task get <id> [--json]",
          opts: [["--json", "Output as JSON"]],
          examples: ["agkan task get 42", "agkan task get 42 --json"],
        },
        {
          name: "agkan task update",
          desc: "Update a task",
          syntax: "agkan task update <id> [options]",
          opts: [
            ["--title <title>",       "New title"],
            ["--status <status>",     "New status"],
            ["--body <body>",         "New body text"],
            ["--priority <priority>", "New priority"],
            ["--assignees <list>",    "Comma-separated assignee names"],
            ["--file <path>",         "Read body from file"],
            ["--json",                "Output as JSON"],
          ],
          examples: [
            "agkan task update 1 --status review",
            'agkan task update 1 --title "Updated title"',
            "agkan task update 1 --priority high",
          ],
        },
        {
          name: "agkan task find",
          desc: "Search tasks by keyword",
          syntax: "agkan task find <keyword> [options]",
          opts: [
            ["--all",  "Include done/closed tasks"],
            ["--json", "Output as JSON"],
          ],
          examples: [
            'agkan task find "login"',
            'agkan task find "bug" --all',
          ],
        },
        {
          name: "agkan task count",
          desc: "Show task count by status",
          syntax: "agkan task count [options]",
          opts: [
            ["-s, --status <status>", "Filter to a specific status"],
            ["-q, --quiet",           "Numbers only (script-friendly)"],
            ["--json",                "Output as JSON"],
          ],
          examples: [
            "agkan task count",
            "agkan task count --status in_progress",
            "agkan task count -s ready -q",
          ],
        },
        {
          name: "agkan task block",
          desc: "Manage blocking relationships",
          syntax: "agkan task block <add|remove|list> <id> [target_id]",
          opts: [],
          examples: [
            "agkan task block add 1 2    # task 1 blocks task 2",
            "agkan task block remove 1 2",
            "agkan task block list 1",
          ],
        },
        {
          name: "agkan task delete",
          desc: "Delete a task",
          syntax: "agkan task delete <id>",
          opts: [["--json", "Output as JSON"]],
          examples: ["agkan task delete 42"],
        },
      ],
      tag: [
        {
          name: "agkan tag add",
          desc: "Create a new tag",
          syntax: "agkan tag add <name>",
          opts: [],
          examples: ['agkan tag add "backend"', 'agkan tag add "urgent"'],
        },
        {
          name: "agkan tag list",
          desc: "List all tags",
          syntax: "agkan tag list [--json]",
          opts: [["--json", "Output as JSON"]],
          examples: ["agkan tag list"],
        },
        {
          name: "agkan tag attach",
          desc: "Attach a tag to a task",
          syntax: "agkan tag attach <task_id> <tag_name>",
          opts: [],
          examples: ['agkan tag attach 1 "backend"', 'agkan tag attach 5 "urgent"'],
        },
        {
          name: "agkan tag detach",
          desc: "Remove a tag from a task",
          syntax: "agkan tag detach <task_id> <tag_name>",
          opts: [],
          examples: ['agkan tag detach 1 "backend"'],
        },
        {
          name: "agkan tag rename",
          desc: "Rename a tag",
          syntax: "agkan tag rename <old_name> <new_name>",
          opts: [],
          examples: ['agkan tag rename "frontend" "fe"'],
        },
        {
          name: "agkan tag rm",
          desc: "Delete a tag",
          syntax: "agkan tag rm <name>",
          opts: [],
          examples: ['agkan tag rm "obsolete"'],
        },
      ],
      other: [
        {
          name: "agkan init",
          desc: "Initialize agkan in the current directory",
          syntax: "agkan init",
          opts: [],
          examples: ["cd my-project && agkan init  # creates .agkan/tasks.db"],
        },
        {
          name: "agkan board",
          desc: "Start a local Kanban board",
          syntax: "agkan board [options]",
          opts: [
            ["-p, --port <n>",                "Port to listen on (default: 8080)"],
            ["-t, --title <text>",            "Board title"],
            ["start / stop / restart / status", "Daemon subcommands"],
          ],
          examples: [
            "agkan board",
            "agkan board -p 3000",
            "agkan board start   # run as daemon",
            "agkan board stop",
          ],
        },
        {
          name: "agkan export",
          desc: "Export all tasks to JSON",
          syntax: "agkan export > backup.json",
          opts: [],
          examples: ["agkan export > backup.json"],
        },
        {
          name: "agkan import",
          desc: "Import tasks from a JSON file",
          syntax: "agkan import <file>",
          opts: [],
          examples: ["agkan import backup.json"],
        },
        {
          name: "agkan ps",
          desc: "List active Claude processes",
          syntax: "agkan ps [options]",
          opts: [
            ["-p, --port <n>", "Board server port"],
            ["--json",         "Output as JSON"],
          ],
          examples: ["agkan ps"],
        },
      ],
    },

    ctaTitle: "Stop context-switching. Ship the thing.",
    ctaSub: "agkan is free, open source, and lives entirely on your machine. Install it in the next thirty seconds.",
    ctaPrimary: "npm install -g agkan",
    ctaGhost: "Star on GitHub",
    footer: "Built by indie devs, for indie devs. MIT-licensed.",
    copy: "Copy",
    copied: "Copied",
  },

  ja: {
    nav: { features: "特徴", demo: "デモ", board: "ボード", workflow: "ワークフロー", install: "導入", docs: "ドキュメント" },
    heroTag: "v3.3.0",
    heroPill: "AIネイティブCLI · Claude Code連携",
    heroTitle1: "タスク管理を、",
    heroTitle2: "エージェントの",
    heroTitle3: "速度で。",
    heroLead: "agkanは、AIと一緒に開発するインディー開発者のための軽量CLIかんばん。ターミナルから離れずに、タスクの作成・追跡・Claude Codeへの受け渡しまで。",
    ctaInstall: "はじめる",
    ctaGithub: "GitHubで見る",
    stats: [
      { v: "7", l: "ワークフロー状態" },
      { v: "0ms", l: "クラウド往復" },
      { v: "1コマンド", l: "Claudeへ受け渡し" },
      { v: "SQLite", l: "ローカル保存" },
    ],

    featuresKicker: "ツールボックス",
    featuresTitle: "ソロ開発者に必要なものだけ。余計なものは無し。",
    featuresSub: "8つのプリミティブで構成。アカウントなし、クラウドなし、儀式なし。",
    features: [
      { n: "01", t: "AIネイティブ設計", d: "1コマンドでタスクをClaude Codeに渡せる。ブリーフはagkanが書く。" },
      { n: "02", t: "7ステージかんばん", d: "icebox → backlog → ready → in_progress → review → done → closed。実直な設計。" },
      { n: "03", t: "ローカルSQLite", d: "タスクは .agkan/tasks.db に保存。速く、差分が取れ、所有できる。クラウド不要。" },
      { n: "04", t: "親子タスク", d: "ツリー構造で大きな仕事を完了可能なサブタスクに分解。" },
      { n: "05", t: "依存グラフ", d: "タスク間のブロック関係を定義。循環参照はトークンが無駄になる前に検出。" },
      { n: "06", t: "現場で動くタグ", d: "フラットで高速なタグ付け。CLIで絞り込み、ボードで切替、jqに流せる。" },
      { n: "07", t: "ローカルWebボード", d: "`agkan board`でClaude実行付きのかんばんが起動。完全オフライン。" },
      { n: "08", t: "全コマンドJSON出力", d: "すべての出力が構造化JSON。パイプして別のエージェントにも渡せる。" },
    ],

    termKicker: "ライブデモ",
    termTitle: "CLIが10秒で分かる。",
    termSub: "タスクの追加、一覧、更新、受け渡し — マウスに触らず完結するライフサイクル。",
    termReplay: "リプレイ",
    termPause: "一時停止",
    termPlay: "再生",

    boardKicker: "ボード表示",
    boardTitle: "マウス派なら、ドラッグでどうぞ。",
    boardSub: "設定不要のWeb UIが同じSQLiteストアをラップ。カードをin_progressに落として「実行」を押せば、Claude Codeが仕事を始める。",
    boardHint: "試してみて — カードを列間でドラッグ",
    boardCols: {
      backlog: "BACKLOG",
      ready: "READY",
      in_progress: "IN PROGRESS",
      review: "REVIEW",
    },
    boardTasks: [
      { id: 23, title: "設定画面にダークモード切替を追加", status: "backlog", prio: "low", tag: "frontend" },
      { id: 24, title: "Stripe Webhook: subscription.updated対応", status: "backlog", prio: "med", tag: "backend" },
      { id: 25, title: "新料金に合わせてオンボ文言を書き直す", status: "backlog", prio: "low", tag: "copy" },
      { id: 18, title: "メール送信キューにリトライを実装", status: "ready", prio: "high", tag: "backend" },
      { id: 19, title: "Postgres 14 → 16 へ移行", status: "ready", prio: "med", tag: "infra" },
      { id: 14, title: "パスキーログインを実装", status: "in_progress", prio: "high", tag: "auth", claude: true },
      { id: 15, title: "週次ダイジェストのメールテンプレ", status: "in_progress", prio: "med", tag: "email" },
      { id: 11, title: "請求書PDF生成のリファクタ", status: "review", prio: "med", tag: "billing" },
    ],

    flowKicker: "全体像",
    flowTitle: "あなたが計画し、agkanが管理し、Claudeが実装する。",
    flowSub: "Jira・Slack・IDE間のタブ移動を、1つのターミナルに置き換える3者ループ。",
    flowNodes: {
      you: { tag: "あなた", t: "プレーンな言葉で計画", d: "`agkan task add` か、ラフな仕様をMarkdownに書いて添付するだけ。" },
      agkan: { tag: "AGKAN", t: "保存・順序付け・受け渡し", d: "ローカルSQLiteが状態を保持。ボードとCLIが同じ真実を共有。" },
      claude: { tag: "CLAUDE CODE", t: "受け取り、実装し、報告", d: "タスクをコンテキストに隔離環境で起動。進捗はカードに返る。" },
    },

    installKicker: "クイックスタート",
    installTitle: "3コマンド。サインアップ不要。",
    installSub: "Node 20以上が必要。それ以外はすべてローカル。",
    installSteps: [
      { n: "01", label: "npmからインストール", code: [ ["c", "# グローバルに一度だけ"], ["p", "$"], [" ", " npm install -g "], ["s", "agkan"] ] },
      { n: "02", label: "リポジトリで初期化", code: [ ["p", "$"], [" ", " cd your-project\n"], ["p", "$"], [" ", " agkan init\n"], ["c", "✓ .agkan/tasks.db を作成しました"] ] },
      { n: "03", label: "最初のタスク", code: [ ["p", "$"], [" ", " agkan task add "], ["s", "\"v1リリース\""], [" ", " \\\n    "], ["f", "--status"], [" ", " ready"] ] },
      { n: "04", label: "ボードを開く（任意）", code: [ ["p", "$"], [" ", " agkan board\n"], ["c", "→ http://localhost:8080"] ] },
    ],

    refKicker: "リファレンス",
    refTitle: "表面はこの1ページで全部。",
    refSub: "メニューの奥に隠れるものは無し。これが全コマンド。",
    ref: {
      task: [
        ["agkan task add", "作成"],
        ["agkan task list", "一覧"],
        ["agkan task update", "更新"],
        ["agkan task find", "検索"],
        ["agkan task tree", "階層表示"],
        ["agkan task link", "依存設定"],
      ],
      tag: [
        ["agkan tag add", "タグ作成"],
        ["agkan tag list", "タグ一覧"],
        ["agkan tag attach", "付与"],
        ["agkan tag detach", "外す"],
        ["agkan tag rename", "名前変更"],
        ["agkan tag rm", "削除"],
      ],
      other: [
        ["agkan init", "初期化"],
        ["agkan board", "Web UIを開く"],
        ["agkan export", "JSON出力"],
        ["agkan import", "JSON取り込み"],
        ["agkan config", "設定"],
        ["agkan doctor", "診断"],
      ],
    },

    refOptions: "オプション",
    refDetail: {
      statusLabel: "ステータス一覧",
      priorityLabel: "優先度一覧",
      statuses: [
        ["icebox",      "保留中。現時点では予定なし"],
        ["backlog",     "予定済みだが未着手"],
        ["ready",       "着手可能な状態"],
        ["in_progress", "現在作業中"],
        ["review",      "レビュー中"],
        ["done",        "完了"],
        ["closed",      "クローズ（キャンセルまたは廃止）"],
      ],
      priorities: [
        ["critical", "ブロッキング — 即対応が必要"],
        ["high",     "高優先度。早めに対応"],
        ["medium",   "通常優先度（デフォルト）"],
        ["low",      "余裕があるときに対応"],
      ],
      task: [
        {
          name: "agkan task add",
          desc: "タスクを作成",
          syntax: "agkan task add [options] [title] [body]",
          opts: [
            ["-s, --status <status>",   "初期ステータス（デフォルト: backlog）"],
            ["--priority <priority>",   "優先度（デフォルト: medium）"],
            ["-p, --parent <id>",       "親タスクID（サブタスク作成時）"],
            ["--file <path>",           "Markdownファイルから本文を読み込む"],
            ["--blocked-by <ids>",      "このタスクをブロックするタスクID（カンマ区切り）"],
            ["--blocks <ids>",          "このタスクがブロックするタスクID（カンマ区切り）"],
            ["--json",                  "JSON形式で出力"],
          ],
          examples: [
            'agkan task add "ログインバグを修正"',
            'agkan task add "新機能" --status ready',
            'agkan task add "テスト作成" --parent 1',
            'agkan task add "仕様" --file spec.md --status backlog',
          ],
        },
        {
          name: "agkan task list",
          desc: "タスク一覧を表示",
          syntax: "agkan task list [options]",
          opts: [
            ["-s, --status <status>",     "ステータスで絞り込み"],
            ["-t, --tag <tags>",          "タグ名で絞り込み（カンマ区切り）"],
            ["-p, --priority <p>",        "優先度で絞り込み（カンマ区切り）"],
            ["--all",                     "done・closed を含む全タスクを表示"],
            ["--tree",                    "親子ツリー形式で表示"],
            ["--root-only",               "ルートタスクのみ表示"],
            ["--sort <field>",            "ソート項目: id, title, status, created_at, priority"],
            ["--order <asc|desc>",        "ソート方向"],
            ["--json",                    "JSON形式で出力"],
          ],
          examples: [
            "agkan task list",
            "agkan task list --status in_progress",
            "agkan task list --tag backend --priority high,critical",
            "agkan task list --tree",
            "agkan task list --all --json",
          ],
        },
        {
          name: "agkan task get",
          desc: "IDでタスクを取得",
          syntax: "agkan task get <id> [--json]",
          opts: [["--json", "JSON形式で出力"]],
          examples: ["agkan task get 42", "agkan task get 42 --json"],
        },
        {
          name: "agkan task update",
          desc: "タスクを更新",
          syntax: "agkan task update <id> [options]",
          opts: [
            ["--title <title>",       "タイトルを更新"],
            ["--status <status>",     "ステータスを更新"],
            ["--body <body>",         "本文を更新"],
            ["--priority <priority>", "優先度を更新"],
            ["--assignees <list>",    "担当者をカンマ区切りで指定"],
            ["--file <path>",         "ファイルから本文を読み込む"],
            ["--json",                "JSON形式で出力"],
          ],
          examples: [
            "agkan task update 1 --status review",
            'agkan task update 1 --title "更新後のタイトル"',
            "agkan task update 1 --priority high",
          ],
        },
        {
          name: "agkan task find",
          desc: "キーワードでタスクを検索",
          syntax: "agkan task find <keyword> [options]",
          opts: [
            ["--all",  "done・closed も検索対象に含む"],
            ["--json", "JSON形式で出力"],
          ],
          examples: [
            'agkan task find "ログイン"',
            'agkan task find "バグ" --all',
          ],
        },
        {
          name: "agkan task count",
          desc: "ステータス別タスク数を表示",
          syntax: "agkan task count [options]",
          opts: [
            ["-s, --status <status>", "特定ステータスに絞り込み"],
            ["-q, --quiet",           "数値のみ出力（スクリプト向け）"],
            ["--json",                "JSON形式で出力"],
          ],
          examples: [
            "agkan task count",
            "agkan task count --status in_progress",
            "agkan task count -s ready -q",
          ],
        },
        {
          name: "agkan task block",
          desc: "タスク間のブロック関係を管理",
          syntax: "agkan task block <add|remove|list> <id> [target_id]",
          opts: [],
          examples: [
            "agkan task block add 1 2    # タスク1がタスク2をブロック",
            "agkan task block remove 1 2",
            "agkan task block list 1",
          ],
        },
        {
          name: "agkan task delete",
          desc: "タスクを削除",
          syntax: "agkan task delete <id>",
          opts: [["--json", "JSON形式で出力"]],
          examples: ["agkan task delete 42"],
        },
      ],
      tag: [
        {
          name: "agkan tag add",
          desc: "タグを作成",
          syntax: "agkan tag add <name>",
          opts: [],
          examples: ['agkan tag add "backend"', 'agkan tag add "urgent"'],
        },
        {
          name: "agkan tag list",
          desc: "タグ一覧を表示",
          syntax: "agkan tag list [--json]",
          opts: [["--json", "JSON形式で出力"]],
          examples: ["agkan tag list"],
        },
        {
          name: "agkan tag attach",
          desc: "タスクにタグを付与",
          syntax: "agkan tag attach <task_id> <tag_name>",
          opts: [],
          examples: ['agkan tag attach 1 "backend"', 'agkan tag attach 5 "urgent"'],
        },
        {
          name: "agkan tag detach",
          desc: "タスクからタグを外す",
          syntax: "agkan tag detach <task_id> <tag_name>",
          opts: [],
          examples: ['agkan tag detach 1 "backend"'],
        },
        {
          name: "agkan tag rename",
          desc: "タグ名を変更",
          syntax: "agkan tag rename <old_name> <new_name>",
          opts: [],
          examples: ['agkan tag rename "frontend" "fe"'],
        },
        {
          name: "agkan tag rm",
          desc: "タグを削除",
          syntax: "agkan tag rm <name>",
          opts: [],
          examples: ['agkan tag rm "obsolete"'],
        },
      ],
      other: [
        {
          name: "agkan init",
          desc: "カレントディレクトリでagkanを初期化",
          syntax: "agkan init",
          opts: [],
          examples: ["cd my-project && agkan init  # .agkan/tasks.db を作成"],
        },
        {
          name: "agkan board",
          desc: "ローカルかんばんボードを起動",
          syntax: "agkan board [options]",
          opts: [
            ["-p, --port <n>",                  "待ち受けポート（デフォルト: 8080）"],
            ["-t, --title <text>",              "ボードタイトル"],
            ["start / stop / restart / status", "デーモン操作サブコマンド"],
          ],
          examples: [
            "agkan board",
            "agkan board -p 3000",
            "agkan board start   # デーモンとして起動",
            "agkan board stop",
          ],
        },
        {
          name: "agkan export",
          desc: "全タスクをJSONでエクスポート",
          syntax: "agkan export > backup.json",
          opts: [],
          examples: ["agkan export > backup.json"],
        },
        {
          name: "agkan import",
          desc: "JSONファイルからタスクをインポート",
          syntax: "agkan import <file>",
          opts: [],
          examples: ["agkan import backup.json"],
        },
        {
          name: "agkan ps",
          desc: "実行中のClaudeプロセスを一覧表示",
          syntax: "agkan ps [options]",
          opts: [
            ["-p, --port <n>", "ボードサーバーのポート"],
            ["--json",         "JSON形式で出力"],
          ],
          examples: ["agkan ps"],
        },
      ],
    },

    ctaTitle: "コンテキストスイッチをやめて、つくる。",
    ctaSub: "agkanは無料・オープンソースで、すべてあなたのマシンで動きます。30秒で導入。",
    ctaPrimary: "npm install -g agkan",
    ctaGhost: "GitHubでスター",
    footer: "インディー開発者による、インディー開発者のためのツール。MITライセンス。",
    copy: "コピー",
    copied: "コピーしました",
  },
};

window.I18N = I18N;
