# Office Lab

> 像 GitHub 一樣協作辦公內容：在同一個 Workspace Repo 串起需求、Issue、PR、原生內容審閱、互動原型與任務排程。

- Human documentation: [https://docs.univer.ai/zh-TW/overview/examples/office-lab](https://docs.univer.ai/zh-TW/overview/examples/office-lab)

- Agent Markdown: [https://docs.univer.ai/zh-TW/overview/examples/office-lab.md](https://docs.univer.ai/zh-TW/overview/examples/office-lab.md)

- Requested language: `zh-TW`

- Content language: `zh-TW`

- Documentation version: `1.3.0`

- Source: [examples/office-lab.zh-TW.mdx](https://github.com/dream-num/documentation/blob/dev/content/docs/examples/office-lab.zh-TW.mdx)

---

**Office Lab** 把儲存庫式協作帶進產品與研發工作。它以 **[Univer Office SDK](https://docs.univer.ai/zh-TW/overview.md)** 建構，使用 Workspace Repo 模式，將需求文件、試算表、互動原型、Issue 與 PR 放進同一專案。進入專案，就能瞭解要解決什麼、修改了什麼，以及哪些成果已可使用。

產品經理與工程師各自使用熟悉的 Agent 準備和檢查資料，人類討論體驗、審閱變更並決定交付。需求持續演進，文件、資料與原型也一起完善。

[一個專案，兩種專業視角](#case-study) · [把發現變成可執行的 Issue](#issues) · [用 Worktree 與 Compare 審閱內容](#review) · [產生、發布與管理 Web App](#web-apps) · [體驗 Office Lab](#quick-start)

圖片取自真實[雲端 Workspace](https://space.univer.ai)，使用虛構英文案例資料；兩種 Agent 的角色分工是建議的協作方式。

## 一個專案，兩種專業視角

**Team Invitations** 從邀請同事、選擇角色與確認結果開始。重複邀請待加入的信箱，成為串起原型、驗收標準、事件追蹤與排程的改進點。

| 角色 | 熟悉的 Agent | 工作 |
| --- | --- | --- |
| Maya · 產品經理 | 例如 Codex | 定義體驗、需求、驗收標準與追蹤方案，審閱成果。 |
| Alex · 工程師 | 例如 Claude Code | 閱讀需求、體驗原型、提出 Issue，準備改進並驗證行為。 |

| 專案資料 | 作用 |
| --- | --- |
| Product brief · 文件 | 目標、邀請規則、驗收標準與發布條件。 |
| Tracking plan · 文件 | 事件觸發時機、屬性與統計定義。 |
| Event catalog · 試算表 | 管理事件、負責人與準備狀態。 |
| Delivery schedule · 試算表 | 工作、負責人、日期、進度與估算。 |
| Invite Prototype / Team Access Console · Web App | 可以直接操作的邀請表單原型。 |

```mermaid
flowchart TD
A["Issue"]
B["Maya · 產品經理"]
C["Alex · 工程師"]
D["Office Worktree"]
E["PR + Compare"]
F["共享 Office 內容"]
G["Web App"]
H["Pages"]
A --> B --> D --> E --> F
A --> C --> D
C --> G --> H
E -->|Issue| A
```

## 瀏覽 Repo，集中工作資料

以 Repo 模式開啟團隊 Space。**Code** 集中可編輯文件與應用檔案，支援搜尋與預覽。Issues、Pull requests、Pages 和 Settings 就在資料旁邊。

這是同一個 Workspace Space 的另一種視圖，沿用內容與權限。專案首頁也能展示選定的 Web App，讓團隊立即體驗原型。

![瀏覽 Repo，集中工作資料](https://raw.githubusercontent.com/dream-num/documentation/dev/public/assets/examples/office-lab/cloud-repository-rich.png)

## 把發現變成可執行的 Issue

Alex 發現重複邀請的回饋不清楚，建立 **Prevent duplicate invitations**，說明預期提示、攔截事件與 QA 工作，並連結需求、追蹤文件、事件表和排程。

利用描述、評論、負責人和標籤明確下一步。Issue 屬於團隊 Space；Agent 能以 Workspace CLI 讀取任務與資料。回饋保留在 Issue 或相關文件的評論中。

![把發現變成可執行的 Issue](https://raw.githubusercontent.com/dream-num/documentation/dev/public/assets/examples/office-lab/cloud-issue.png)

## 透過 PR 提出可審閱的修改

PR 將 Workspace Worktree 呈現為可審閱的提案：建立草稿、加入現有文件、修改並標記 Ready。提案有標題、摘要、作者、狀態與變更清單，團隊繼續使用共享內容。

圖中 PR 在事件表加入 `invite_duplicate_blocked`，調整 QA 排程，摘要引用 Issue #1。產品與研發可使用各自草稿，開放給有權限的審閱者，根據相同來源檢查成果。

![透過 PR 提出可審閱的修改](https://raw.githubusercontent.com/dream-num/documentation/dev/public/assets/examples/office-lab/cloud-pull-request.png)

## 用 Worktree 與 Compare 審閱內容

先讀摘要，再開啟 **Files changed**。**View** 提供成果的唯讀審閱；**Compare** 並排顯示正式版本與提議版本，搭配可定位的差異清單，檢查事件、負責人及排程影響。

[Worktree](https://docs.univer.ai/zh-TW/overview/features/shared/worktree.md) 隔離任務修改，[內容比較](https://docs.univer.ai/zh-TW/overview/features/shared/compare.md) 以內容模型、Snapshot 和 Changeset 呈現差異。有權限的人類審閱後決定是否合入；本例雙檔案 PR 保持 Ready，尚未合入。

![用 Worktree 與 Compare 審閱內容](https://raw.githubusercontent.com/dream-num/documentation/dev/public/assets/examples/office-lab/cloud-compare.png)

### 把交付影響放進同一次審閱

同一個 PR 將 Usability and QA 結束日期從 11 月 9 日改為 11 月 10 日，估算從 2 天改為 3 天。連同事件修改檢查負責人、日期與狀態，讓驗收也涵蓋交付所需的工作。

![把交付影響放進同一次審閱](https://raw.githubusercontent.com/dream-num/documentation/dev/public/assets/examples/office-lab/cloud-schedule.png)

## 產生、發布與管理 Web App

在 **Pages** 集中查看已發布的 Web App，開啟頁面、複製地址或選擇首頁預覽。預設頁面只對目前瀏覽器生效，檔案與權限由 Workspace 管理。

邀請原型進一步擴充為 **Team Access Console**：成員與角色清單、狀態篩選、搜尋、邀請與取消、最近操作、驗收清單和工作階段事件計數集中在同一頁。新增範例信箱會更新清單與待處理數量，重複邀請會被攔截。範例資料只儲存在記憶體，不寄送郵件或上報分析事件；產品經理可直接驗證行為，再建立 Issue。

原生 Office 內容經 Worktree 審閱與合入；HTML View 使用獨立的儲存及授權發布流程。本例原型單獨發布，文件 PR 仍待審閱。即時連動 Office 資料可參考實驗性的[雙向綁定](https://docs.univer.ai/zh-TW/overview/features/shared/binding.md)。

[直接體驗互動原型](/assets/examples/office-lab/invite-prototype.univer.html)

![Team Access Console：成員、邀請與驗收檢查](https://raw.githubusercontent.com/dream-num/documentation/dev/public/assets/examples/office-lab/cloud-team-access.png)

## 為團隊建立清楚的協作邊界

**Settings** 組織名稱、說明、可見性、成員與回收站。擁有者和管理員安排存取範圍；編輯、審閱與合入依目前使用者的有效權限，專案連結也遵循權限。

產品經理驗收體驗，工程師檢查實作與事件追蹤，有權限的人合入 Office 修改、檢查發布原型，工作完成後關閉 Issue。

![為團隊建立清楚的協作邊界](https://raw.githubusercontent.com/dream-num/documentation/dev/public/assets/examples/office-lab/cloud-settings.png)

## 體驗 Office Lab

1. 登入[雲端 Workspace](https://space.univer.ai)，或開啟自己的[私有部署](https://docs.univer.ai/zh-TW/overview/examples/workspace.md#self-host)，建立或開啟一個**團隊 Space**。
2. 開啟 **Application settings → Page theme → Repository (experimental)**。這是同一個 Space 的另一種檢視，切換偏好僅儲存在目前瀏覽器。
3. 在 **Code** 瀏覽文件，透過 **Issues** 追蹤問題，在 **Pull requests** 審閱變更，從 **Pages** 開啟已發布的 Web App。

![將團隊 Space 切換至 Repository 模式，再瀏覽文件、Issue、PR 與 Web App](https://raw.githubusercontent.com/dream-num/documentation/dev/public/assets/examples/office-lab/cloud-office-lab-tour.gif)

若希望使用自己的 Agent，請依 [Workspace CLI 接入說明](https://docs.univer.ai/zh-TW/overview/examples/workspace.md#cli-start)連接。每個 Agent 使用其使用者已授權的帳號；以下任務範本可直接用於實踐。

### 1. 產品：建立共享上下文

```text
在 Team Invitations 團隊空間準備英文需求、追蹤說明、事件表和任務排程，並建立互動邀請 Web App 預覽。明確負責人、日期與驗收標準。原生修改留在 Worktree，驗證後提供審閱連結。合入或發布原型前等我確認。
```

### 2. 研發：提出聚焦的改進

```text
閱讀需求、事件表、排程與原型，檢查重複邀請待加入信箱的行為。建立含復現與預期結果的 Issue。在獨立 Worktree 準備原生文件修改，原型使用自己的發布流程。驗證、在 PR 摘要引用 Issue，等待人類審閱。
```

### 3. 審閱：連結變更與驗收

```text
用 Compare 審閱 Team Invitations PR，核對重複邀請事件、驗收與 QA 排程，並體驗原型。將遺漏回饋至 Issue，請作者修訂。總結就緒與待處理部分；確認前不要合入或發布。
```

## 以同一套 SDK 與 Skills 繼續建構

雙方共用與版本配套的 CLI Skills：`core` 負責發現與 Worktree，`doc`、`sheet` 處理需求和計畫，`html-view` 製作原型。Agent 讀取有權存取的資料與 Issue 回饋，人類保留交付決定。

Web SDK 提供內容模型、編輯器與 Headless；Server SDK 提供協同、版本與 Worktree；AI SDK 提供操作及檢查。Workspace 組織專案、身分、Issue、Repo 與發布。可重用這套組合打造產品實驗室或內部交付工作台。

[瞭解 Workspace](https://docs.univer.ai/zh-TW/overview/examples/workspace.md) · [原始碼儲存庫](https://github.com/dream-num/univer-workspace) · [全部範例](https://docs.univer.ai/zh-TW/overview/examples.md)
