{
  "kind": "product",
  "format": "flydog.public-content.v1",
  "readOnly": true,
  "name": "Bruce / 布鲁斯",
  "publisher": "FlyDog / 飞狗",
  "url": "https://flydogai.com/bruce/",
  "languages": [
    "zh",
    "en"
  ],
  "defaultLanguage": "zh",
  "discovery": "https://flydogai.com/bruce/llms.txt",
  "fullText": "https://flydogai.com/bruce/llms-full.txt",
  "feeds": {
    "rss": "https://flydogai.com/bruce/blog/feed.xml",
    "json": "https://flydogai.com/bruce/blog/feed.json"
  },
  "availability": "https://flydogai.com/bruce/download",
  "pages": [
    {
      "id": "index",
      "title": {
        "zh": "Bruce / 布鲁斯",
        "en": "Bruce / 布鲁斯"
      },
      "url": "https://flydogai.com/bruce/",
      "markdown": {
        "zh": "https://flydogai.com/bruce/index.zh.md",
        "en": "https://flydogai.com/bruce/index.en.md"
      }
    },
    {
      "id": "blog",
      "title": {
        "zh": "Bruce 博客",
        "en": "Bruce Blog"
      },
      "url": "https://flydogai.com/bruce/blog",
      "markdown": {
        "zh": "https://flydogai.com/bruce/blog.zh.md",
        "en": "https://flydogai.com/bruce/blog.en.md"
      }
    },
    {
      "id": "docs",
      "title": {
        "zh": "从第一步，到你的工作方式。",
        "en": "From the first step to your own workflow."
      },
      "url": "https://flydogai.com/bruce/docs",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs.zh.md",
        "en": "https://flydogai.com/bruce/docs.en.md"
      }
    },
    {
      "id": "download",
      "title": {
        "zh": "为下一件作品，准备好工作台。",
        "en": "A workbench for your next idea."
      },
      "url": "https://flydogai.com/bruce/download",
      "markdown": {
        "zh": "https://flydogai.com/bruce/download.zh.md",
        "en": "https://flydogai.com/bruce/download.en.md"
      }
    },
    {
      "id": "privacy",
      "title": {
        "zh": "官网隐私说明",
        "en": "Website privacy"
      },
      "url": "https://flydogai.com/bruce/privacy",
      "markdown": {
        "zh": "https://flydogai.com/bruce/privacy.zh.md",
        "en": "https://flydogai.com/bruce/privacy.en.md"
      }
    },
    {
      "id": "for-agents",
      "title": {
        "zh": "给 Agent 的 Bruce 资料",
        "en": "Bruce information for agents"
      },
      "url": "https://flydogai.com/bruce/for-agents",
      "markdown": {
        "zh": "https://flydogai.com/bruce/for-agents.zh.md",
        "en": "https://flydogai.com/bruce/for-agents.en.md"
      }
    }
  ],
  "articles": [
    {
      "id": "why-we-build-in-public",
      "title": {
        "zh": "把我们走过的路，留给下一位开发者",
        "en": "Leave a trail for the next developer"
      },
      "url": "https://flydogai.com/bruce/blog/why-we-build-in-public",
      "published": "2026-11-05",
      "category": "editorial",
      "markdown": {
        "zh": "https://flydogai.com/bruce/blog/why-we-build-in-public.zh.md",
        "en": "https://flydogai.com/bruce/blog/why-we-build-in-public.en.md"
      }
    },
    {
      "id": "good-job-bruce",
      "title": {
        "zh": "好样的布鲁斯：名字、伙伴与小狗的来路",
        "en": "Good job, Bruce: a name, a companion, a puppy"
      },
      "url": "https://flydogai.com/bruce/blog/good-job-bruce",
      "published": "2026-11-05",
      "category": "design",
      "markdown": {
        "zh": "https://flydogai.com/bruce/blog/good-job-bruce.zh.md",
        "en": "https://flydogai.com/bruce/blog/good-job-bruce.en.md"
      }
    },
    {
      "id": "distance-not-time",
      "title": {
        "zh": "距离，不是时间：一次终端滚动排查",
        "en": "Distance, not time: investigating terminal scrolling"
      },
      "recorded": "2026-09-21",
      "url": "https://flydogai.com/bruce/blog/distance-not-time",
      "published": "2026-11-05",
      "category": "interaction",
      "markdown": {
        "zh": "https://flydogai.com/bruce/blog/distance-not-time.zh.md",
        "en": "https://flydogai.com/bruce/blog/distance-not-time.en.md"
      }
    },
    {
      "id": "the-missing-release",
      "title": {
        "zh": "抬起去哪了：一次点击丢失排查",
        "en": "Where did the mouse-up go? Investigating a missing click"
      },
      "recorded": "2026-10-02",
      "url": "https://flydogai.com/bruce/blog/the-missing-release",
      "published": "2026-11-05",
      "category": "interaction",
      "markdown": {
        "zh": "https://flydogai.com/bruce/blog/the-missing-release.zh.md",
        "en": "https://flydogai.com/bruce/blog/the-missing-release.en.md"
      }
    },
    {
      "id": "one-store-one-agent",
      "title": {
        "zh": "为什么一个数据目录只运行一个 Agent",
        "en": "Why one data store has one Agent"
      },
      "recorded": "2026-10-28",
      "url": "https://flydogai.com/bruce/blog/one-store-one-agent",
      "published": "2026-11-05",
      "category": "engineering",
      "markdown": {
        "zh": "https://flydogai.com/bruce/blog/one-store-one-agent.zh.md",
        "en": "https://flydogai.com/bruce/blog/one-store-one-agent.en.md"
      }
    }
  ],
  "guides": [
    {
      "id": "start",
      "title": {
        "zh": "开始了解 Bruce",
        "en": "Getting to know Bruce"
      },
      "url": "https://flydogai.com/bruce/docs#start",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/start.zh.md",
        "en": "https://flydogai.com/bruce/docs/start.en.md"
      }
    },
    {
      "id": "workbench",
      "title": {
        "zh": "工作台、布局与键位",
        "en": "Workbench, layout and keymaps"
      },
      "url": "https://flydogai.com/bruce/docs#workbench",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/workbench.zh.md",
        "en": "https://flydogai.com/bruce/docs/workbench.en.md"
      }
    },
    {
      "id": "git",
      "title": {
        "zh": "Git 与代码审查",
        "en": "Git and code review"
      },
      "url": "https://flydogai.com/bruce/docs#git",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/git.zh.md",
        "en": "https://flydogai.com/bruce/docs/git.en.md"
      }
    },
    {
      "id": "agents",
      "title": {
        "zh": "Agent、原生会话与终端",
        "en": "Agents, native sessions and terminals"
      },
      "url": "https://flydogai.com/bruce/docs#agents",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/agents.zh.md",
        "en": "https://flydogai.com/bruce/docs/agents.en.md"
      }
    },
    {
      "id": "devices",
      "title": {
        "zh": "工作组设备与手机协作",
        "en": "Workgroup devices and mobile"
      },
      "url": "https://flydogai.com/bruce/docs#devices",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/devices.zh.md",
        "en": "https://flydogai.com/bruce/docs/devices.en.md"
      }
    },
    {
      "id": "service",
      "title": {
        "zh": "独立服务、无头与浏览器",
        "en": "Independent host, headless and browser"
      },
      "url": "https://flydogai.com/bruce/docs#service",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/service.zh.md",
        "en": "https://flydogai.com/bruce/docs/service.en.md"
      }
    },
    {
      "id": "plugins",
      "title": {
        "zh": "JetBrains 与 VS Code 接入插件",
        "en": "JetBrains and VS Code bridges"
      },
      "url": "https://flydogai.com/bruce/docs#plugins",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/plugins.zh.md",
        "en": "https://flydogai.com/bruce/docs/plugins.en.md"
      }
    },
    {
      "id": "voice",
      "title": {
        "zh": "应用内语音与 AI 整理",
        "en": "In-app voice and AI cleanup"
      },
      "url": "https://flydogai.com/bruce/docs#voice",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/voice.zh.md",
        "en": "https://flydogai.com/bruce/docs/voice.en.md"
      }
    },
    {
      "id": "usage",
      "title": {
        "zh": "额度、Token 与成本",
        "en": "Allowance, tokens and cost"
      },
      "url": "https://flydogai.com/bruce/docs#usage",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/usage.zh.md",
        "en": "https://flydogai.com/bruce/docs/usage.en.md"
      }
    },
    {
      "id": "extensions",
      "title": {
        "zh": "Skills、MCP 与项目规范",
        "en": "Skills, MCP and project conventions"
      },
      "url": "https://flydogai.com/bruce/docs#extensions",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/extensions.zh.md",
        "en": "https://flydogai.com/bruce/docs/extensions.en.md"
      }
    },
    {
      "id": "memory",
      "title": {
        "zh": "项目记忆、时间线与创作",
        "en": "Project memory, timelines and creation"
      },
      "url": "https://flydogai.com/bruce/docs#memory",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/memory.zh.md",
        "en": "https://flydogai.com/bruce/docs/memory.en.md"
      }
    },
    {
      "id": "roadmap",
      "title": {
        "zh": "产品方向与界面选择",
        "en": "Product direction and interface choices"
      },
      "url": "https://flydogai.com/bruce/docs#roadmap",
      "markdown": {
        "zh": "https://flydogai.com/bruce/docs/roadmap.zh.md",
        "en": "https://flydogai.com/bruce/docs/roadmap.en.md"
      }
    }
  ]
}
