WPORT MCP Server + Claude Connector + TS/JS SDK(pm_48)PRD
PRD 代號:pm_48
延續:pm_37(Enterprise REST + wpk_live_)、pm_41(@wport/cli 企業線)、pm_47(求職者 OAuth/CLI,求職者 MCP 解鎖閘門)
產品原則:CLI 能做什麼,MCP/SDK/Connector 就做什麼,也因為cli已經做完,因此補上AI friendly的最後一哩路,mcp與sdk,claude connector雖然也是mcp但要另外加工,目的是讓大家覺得我們也擁抱主流ai agent;BR-040 核彈 deny list 永久排除;BR-039 通道寫入必標 source;絕不開後門提高額度。
本 PRD 無 dashboard mockup:屬 API/Agent 整合產品。Storybook = 無。Claude Connector listing 文案對齊 @wport/cli npm。OAuth 同意頁(求職者)沿用 pm_47,不另開。
1. 文件資訊
- 文件類型:MCP + Claude Connector + SDK 需求規格書
- 適用對象:後端、CLI/SDK 工程、產品、QA、資安、AI Agent 整合
- 最後更新:2026/08/17
- 版本:1.1.0
- 對應 Storybook:無(CLI/API/MCP 產品,無 mockup)
- Storybook(local-prd):N/A
- Storybook(online):N/A
- 建立日期:2026/07/17
- 對應 Coda rowId:
i-S6oB4_3Q2D
- Coda backlog 名稱:WPORT MCP Server + Claude Connector
- PRD 識別(backlog
PRD 欄):pm_48
2. 開發進度與設計來源
開發進度
- MCP/SDK PR #:SDK 線 ✅ 已出貨(2026/08/17)——wport-cli repo PR #16(monorepo 轉型+
@wport/core+@wport/sdk)、#18(發布素材)、#19(cli 0.9.1)、#20(0.1.1 exports 修正,已 merge 未發)。npm:@wport/sdk@0.1.0、@wport/core@0.1.0、@wport/cli@0.9.1。MCP 未動工。
- 後端(audit source/MCP gateway)PR #:audit
source 進行中(2026/08/17 已 dispatch talent 分支 crazysYao/pm48-delivery-a-source-audit,需求對齊中);MCP gateway 未動工
- Claude Directory 送審:[TBD](🚨 組織權限為 PM blocker;官方認證模式已查證,見 DR-2 回寫)
設計來源
3. 功能摘要(Feature Summary)
3.1 功能概述
- 功能名稱:WPORT MCP Server + Claude Connector + TypeScript/JS SDK
- 主要使用者角色:
- 企業 HR/Manager(
wpk_live_):v1 主打可出貨
- 公開/未登入:jobs search/view
- 求職者(pm_47 OAuth):v1 介面預留 + Mock/Staging;prod 解鎖閘門 = pm_47 Ready
- 核心目標:
- 為「不想用 CLI、但要用 AI Agent」補一條路徑(Cursor custom connector + Claude Connector)
- 讓 WPORT 進入 Claude Connectors Directory 生態
- 官方 TS/JS SDK 與 MCP/CLI 共用同一 REST 語意與錯誤碼(實作結構由 RD 選)
3.2 範圍界定
✅ v1 包含(P0 可上 Directory/Cursor)
| 區塊 | 內容 |
|---|
| Remote MCP | 公開 jobs.* + 企業線 CLI 全開 parity(jobs/talents/campaigns/company/usage/keys 等,對齊 pm_41) |
| Lazy auth | 公開 tool 可先用;寫入/企業 tool 才要求 Bearer key |
| 認證(企業) | Authorization: Bearer wpk_live_...(與 REST/CLI 同) |
| 寫入安全 | 兩階段 confirm + tool title/readOnlyHint/destructiveHint(BR-040) |
| Batch | 三端統一 partial success。回寫(定案):實際 wire=後端 batch 端點回 207 data = { succeeded:[{index, enc_id}], failed:[{index, error_path}] }(CLI/SDK 皆原樣透傳;SDK 不 throw、CLI 有 failed 則 exit 3)。PRD 原文 success_count/failed_items[] 為 hint 名,以此為準 |
| SDK | TypeScript/JS only:公開 + 企業能力對齊。回寫(2026/08/17):@wport/sdk@0.1.x 已出貨=公開 jobs.* 全開+企業 enterprise.jobs.*(create/update/delete/list/bulkCreate);企業 talents/campaigns/company/usage/keys 尚未含(CLI parity 缺口,SDK 後續版本補齊);personal.* 佔位擲 PersonalNotEnabledError |
| Audit | 寫入進 同一套 Enterprise audit,必標 source(BR-039) |
| Connector listing | 文案/定位對齊 npm @wport/cli;隱私 URL = https://wport.me/privacy(或站上現行隱私頁正式路徑) |
| 送審資產 | 文件 URL、icon、企業 Demo key+測試帳(PM+設計);Directory 組織權限(PM) |
| 託管 | RD 選:Cloudflare Workers 或 AWS 輕量 serverless(限 serverless) |
| 傳輸/包名/內部架構 | RD 選(見 §3.4 DR) |
🔲 v1 預留/Staging(不 block P0 上線)
| 區塊 | 內容 |
|---|
| 求職者 tools | 程式介面預留(personal.*);Mock 或僅 Staging;prod 回「未啟用/依賴 pm_47」 |
| 求職者 OAuth | 同意頁 沿用 pm_47;Connector 完整 OAuth 待 pm_47 Ready 後 P1 一鍵解鎖 |
❌ 排除範圍
| 項目 | 理由 |
|---|
| MCP Apps 互動 UI(widget/carousel 送審) | 非本階段;純 tools connector |
| Webhook | 另案 |
| 第二套 API Key | 沿用 pm_41/BR-API-CLI-004 |
| 核彈行為 | BR-040/pm_41 §3.5 |
| 人才庫/履歷 bulk dump | BR-017/BR-020/BR-040 |
| 雙身分同連線(企業 key + 個人 OAuth) | 延後 |
| Python SDK | v1 不做 |
| 提高任何 BR/quota 後門 | 明確禁止 |
3.3 成功條件(KPI,上線後 3 個月)
| KPI | 目標 |
|---|
| Claude Directory 審核通過(或明確排程中的正式提交) | 通過/已提交且無 blocker |
| 活躍 MCP/Connector 連線(企業+公開合計) | ≥ 10 |
| 經 MCP 建立職缺 | ≥ 50 |
| 經 MCP 公開履歷 | ≥ 50(求職者線解鎖後才認真計) |
寫入缺 source 的 audit 事件 | 0 |
| 核彈/越權經 MCP/SDK 成功 | 0 |
3.4 設計決策依據(Design Rationale)
DR-1:通道 = CLI parity,情境不新開
- CLI(pm_41/47)已覆蓋北極星(建職缺、上架履歷等)。本 PRD 只補通道,不發明新業務流程。
DR-2:企業認證 v1 = Bearer API key;OAuth 不鎖死
- 採用:
Authorization: Bearer wpk_live_...,與 REST/CLI 一致。
- Claude Directory:可先以 request header(
static_headers,beta)送審;若審核要求 OAuth,RD 可改選企業 OAuth/雙軌(利弊見附錄 A)。PM 不假裝已完全權衡所有 Directory 認證細節。
- 回寫(2026/08/17,官方文件查證):認證模式官方支援度=
none(無認證)正式支援、static_headers Beta、custom_connection 需與 mcp-review 協調、OAuth 三式(DCR/CIMD/anthropic_creds)。含義:純公開線 connector 可用 none 直上 Directory,零 OAuth 工程;企業線 v1 走 static_headers 與本 DR 原判一致。組織前置=Team/Enterprise + Owner(或 Enterprise 自訂 Directory 角色)。Anthropic egress 160.79.104.0/21。來源:claude.com/docs/connectors/building/{submission,authentication}。
DR-3:求職者線不 block 企業 Directory
- pm_47 OAuth 尚未達第三方 Connector 託管完備 → v1 企業主打;求職者 Mock/Staging。
DR-4:Batch = partial(三端統一)
- 捨棄 MCP all-or-nothing。對齊 CLI/API partial;回傳結構化失敗項,利於 Agent 對使用者解釋單筆失敗(如 quota)。
DR-5:寫入安全 = confirm + annotations(方案 C)
- MCP:兩階段
confirmToken + hints;SDK:顯式 confirm;CLI:既有 --confirm。
DR-6:託管/傳輸/包名/是否薄封裝 REST — 全部 RD 選
- PM 只卡:serverless(CF Workers 或 AWS 輕量)、HTTPS、可被 Claude/Cursor 連、audit
source 可注入。
- 建議(非強制):薄封裝同一 OpenAPI client(對齊 Hypelink);包名建議
@wport/mcp/@wport/sdk;傳輸建議 Streamable HTTP——皆可由 RD 改。
DR-7:Listing 文案對齊 npm
- Connector name/tagline/description 以
@wport/cli 產品定位為 SoT(W101 Talent Search Hub;公開搜尋 + 企業管理;agent/token-friendly)。
4. 商業規則對齊(Business Rules Alignment)
4.1 本功能使用到的業務規則
| 規則 ID | 規則摘要 | 是否關鍵 | 在本 PRD 的對應 |
|---|
| BR-005 | 未驗證公司不可上架 | ✅ | jobs.publish 透傳 403 |
| BR-008 | 職缺發布必填 | ✅ | create/publish 驗證 |
| BR-009 | 職缺狀態 | ✅ | 非法轉換錯誤 |
| BR-010 | 履歷 ≤6 | ✅ | personal(P1) |
| BR-011 | 72h 冷卻 | ✅ | personal apply(P1) |
| BR-012/013/016 | 帳號/公司/權限 | ✅ | 核彈 deny(BR-040) |
| BR-017/020 | 資料存取/匯出 | ✅ | 禁 bulk dump |
| BR-039 | 通道寫入標 source | ✅ | MCP/SDK/CLI/API |
| BR-040 | 跨通道 deny + confirm + partial | ✅ | 本 PRD 核心 |
4.2 補充說明
- BR-039/BR-040 已於 2026/07/17 回寫
business-rules.md v1.8.0(本功能提案並經 Eric 確認落地)。
- 企業金鑰治理仍遵循 pm_41
BR-API-CLI-004~010(不另開第二套 key)。
5. 資料實體與欄位(Data Entities & Fields)
Rule 30:描述 WHAT/WHY;JSON 欄位名由 OpenAPI/RD 決定。
5.1 實體列表
| 實體 | 用途(WHY) | 必須追蹤的資訊(WHAT) |
|---|
| McpConnectionProfile | 連線語境(公開/企業/求職者預留) | 連線模式、憑證類型、過期/撤銷狀態 |
| ToolInvocation | 單次 tool 呼叫稽核與除錯 | tool 名、參數摘要、結果、latency、關聯 audit id |
| ConfirmChallenge | 破壞性兩階段 | 摘要、confirmToken、TTL、目標操作、是否已消費 |
| BatchWriteResult | partial 語意 | success_count、failed_items(識別+原因)、已成功項 id |
| ApiAuditEvent(既有擴充) | BR-039 | 既有欄位 + source 枚舉 |
| ConnectorListingAssets | Directory 送審 | name、tagline、description、icon、docs URL、privacy URL、demo 帳說明 |
| (業務實體)Job/Talent/Campaign/Company/Usage/ApiKey | 與 pm_37/41 相同 | 不另建業務模型;MCP/SDK 只是通道 |
5.2 求職者 Mock(v1)
- Staging/Mock 可回固定履歷結構;禁止寫入 production 真實個人資料。
- Prod 呼叫未解鎖 personal tool → 明確錯誤(例如
PERSONAL_MCP_NOT_ENABLED),引導依賴 pm_47。
6. 產品表面與資料需求(對應原「畫面區塊」)
無 GUI;以下為 Agent/Connector 表面。
| 區塊 ID | 名稱 | 說明 |
|---|
| SEC-1 | Public tools | jobs.search/jobs.view(lazy,可無 key) |
| SEC-2 | Enterprise tools | pm_41 企業命令樹全開;需 Bearer key |
| SEC-3 | Personal tools(預留) | pm_47 能力面;v1 mock/staging |
| SEC-4 | Confirm gate | 破壞性/對外發送兩階段 |
| SEC-5 | SDK surface | TS/JS:與 tool 語意對齊之 method |
| SEC-6 | Connector listing | Directory 公開文案與資產 |
Connector listing 文案錨點(對齊 npm,送審可微調)
- Name(≤100):WPORT(W101 Talent Search Hub)
- Tagline(≤55,建議):Search Taiwan jobs & manage hiring with AI
- Description 要點:terminal/agent interface to W101;public job search/view without login;enterprise job/talent/campaign management with
wpk_live_;token-efficient field projection for agents;see npm @wport/cli for command parity reference.
7. 使用者動作與後端需求(Actions)
| 動作 ID | 動作 | 類型 | 需後端 | 說明 |
|---|
| ACT-1 | 公開搜尋/檢視職缺 | Read | ✅ | 對齊 CLI jobs search/view |
| ACT-2 | 企業建/改/上下架/刪/複製/batch 職缺 | Write | ✅ | parity pm_41;delete/batch 需 confirm |
| ACT-3 | 企業人才 list/view/respond | R/W | ✅ | 禁 export dump |
| ACT-4 | 企業 company/campaigns/usage/keys | R/W | ✅ | keys 治理對齊 pm_41 |
| ACT-5 | 破壞性 confirm 第二步 | Write | ✅ | 驗證 confirmToken |
| ACT-6 | SDK 同等呼叫 | R/W | ✅ | source=typescript_sdk |
| ACT-7 | 求職者履歷上架等 | Write | Staging/P1 | v1 prod 不開放真寫入 |
| ACT-8 | Directory 連線(審查員) | Auth | ✅ | Demo 企業 key |
8. API Hints(需求,非最終 path)
8.1 Read
- HINT-GET-1:公開職缺搜尋/單筆 view(既有 public API)
- HINT-GET-2:企業 jobs/talents/campaigns/company/usage/keys list/view(既有 enterprise API)
- HINT-GET-3:MCP
tools/list 回傳完整 annotations
8.2 Write
- HINT-MUTATION-1:企業職缺 create/update/publish/unpublish/delete/copy/batch(idempotency 沿用 pm_37)
- HINT-MUTATION-2:破壞性操作兩階段 confirm(token TTL 由 RD 定,建議短效 ≤10 分鐘)
- HINT-MUTATION-3:所有寫入 audit 必帶
source(BR-039)
- HINT-MUTATION-4:personal 寫入僅 staging/P1
8.3 錯誤與契約(不得 TBD)
| 主題 | v1 要求 |
|---|
| Auth | 缺/無效 key → 401;權限不足/停權 → 403;錯誤碼與 CLI/API 對齊 |
| Idempotency | 企業寫入沿用既有 Idempotency-Key 規則(pm_37) |
| Confirm TTL | RD 定數值;過期 → 需重新第一階段 |
| Rate limit | 沿用既有;429 +(若有)Retry-After |
| Refresh/重連 | key 過期或 OAuth refresh 失敗 → 401 + 引導重新連線(非長連線心跳) |
| Partial batch | 已定案(2026/08/17):HTTP 207;body data = { succeeded:[{index, enc_id}], failed:[{index, error_path}] }(≤10 筆/批,沿 pm_41 後端 batch 端點;SDK bulkCreate 原樣回傳不 throw) |
9. 導航/交付 Map
- Storybook:無(CLI/API/MCP 產品)
- PRD(local):
file:///Users/Eric/Documents/Github/prd/doc/feature/pm_48/wport-mcp-connector-prd.md
- npm 參考:https://www.npmjs.com/package/@wport/cli
- 隱私:站上既有隱私頁(填 Directory manifest)
- OAuth 同意(求職者):pm_47 W-1/W-2(P1)
- Cursor:custom connector/MCP 設定(RD 文件化)
- Claude:Directory submission portal(需 Team/Enterprise + Directory management)
10. Flowcharts
10.1 User Flow(Agent/人資連線與建職缺)
flowchart TD
Start([使用者在 Claude 或 Cursor 新增 WPORT Connector]) --> Lazy{呼叫的 tool 類型}
Lazy -->|公開 jobs.search/view| Pub[執行公開 API]
Lazy -->|企業寫入或企業讀取| Auth{已有有效 Bearer wpk_live_?}
Auth -->|否| Prompt[要求貼上/設定 API key]
Prompt --> Auth
Auth -->|是| Scope{權限與公司狀態 OK?}
Scope -->|否| Err403[回傳 403/停權錯誤]
Scope -->|是| Dest{是否破壞性或對外發送?}
Dest -->|否| Exec[執行 REST 等價操作]
Dest -->|是| Phase1[回傳摘要 + confirmToken]
Phase1 --> Phase2{第二步帶 confirmToken?}
Phase2 -->|否| Stop[拒執行]
Phase2 -->|是| Exec
Exec --> Audit[寫 audit source=mcp_server]
Audit --> Partial{是否 batch?}
Partial -->|是| PartJSON[回傳 success_count + failed_items]
Partial -->|否| Done[回傳成功或業務錯誤]
Pub --> Done
Err403 --> End([結束])
Stop --> End
PartJSON --> End
Done --> End
sequenceDiagram
participant Agent as Claude/Cursor Agent
participant MCP as WPORT MCP Server
participant API as Enterprise/Public API
participant Audit as Audit Log
Agent->>MCP: tools/call (e.g. enterprise.jobs.create)
alt missing/invalid key on protected tool
MCP-->>Agent: 401 + re-auth hint
else ok
alt destructive without confirmToken
MCP-->>Agent: CONFIRM_REQUIRED + summary + token
Agent->>MCP: tools/call with confirmToken
end
MCP->>API: REST equivalent + Idempotency if required
API->>Audit: write event source=mcp_server
API-->>MCP: success / partial / error
MCP-->>Agent: structured JSON (incl. failed_items if batch)
end
10.3 出貨切分(Navigation of releases)
flowchart LR
P0[P0: Public + Enterprise MCP/SDK + Directory 送審] --> P05[P0.5: Personal tools Mock/Staging]
P05 --> P1[P1: pm_47 Ready → Personal prod 解鎖]
10.4 Edge Case Coverage
| 類別 | 情境 | 系統行為 | Agent/使用者回饋 | 可重試 | 資料一致性 | 備註 |
|---|
| Network | Timeout | 中止該次呼叫 | 逾時錯誤 | Yes | 無寫入或依 idempotency | RD 定 timeout |
| Network | 429 | 回傳 rate limit | 含 Retry-After(若有) | Yes 退避 | 無額外寫入 | S7 |
| Network | 斷線 | 無長連線狀態機 | 下次 tool 重試 | Yes | 以 server 為準 | 非 WebSocket 常駐 |
| Data | validation 失敗 | 拒寫 | 欄位級錯誤 | Yes | 不寫 | |
| Data | batch 部分失敗 | partial JSON | success_count + failed_items | 可針對失敗項 | 成功項保留 | DR-4 |
| Data | 職缺/履歷已刪下架 | 404/業務錯 | 明確訊息 | 視操作 | 不破壞他筆 | S9 |
| Auth | key 無效/過期 | 401 | 引導重貼 key/重連 | Yes | 不寫 | S8 |
| Auth | 權限不足/公司停權 | 403 | 明確 code | 換 key/解停後 | 不寫 | S6 |
| Auth | lazy:公開 OK、寫入需 key | 寫入前 401 | 要求認證 | Yes | — | DR lazy |
| Auth | personal prod 未解鎖 | 功能關閉錯誤 | 依賴 pm_47 | N/A prod | 禁止真寫 | S10 |
| Logical | 無 confirm 的 delete | 拒執行 | CONFIRM_REQUIRED | Yes | 不寫 | BR-040 |
| Logical | 核彈 tool | 不存在/永久拒 | 不暴露 | N/A | — | BR-040 |
| Logical | 雙身分同連線 | 延後 | — | — | — | out |
| Interruption | Agent 中途停止 | 已成功 batch 項保留 | 回報已成功數 | 可補失敗項 | partial | |
| User | 換裝置 | 重新設定 connector/key | 重連 | Yes | — | |
11. Mock/Staging Schema(求職者線 v1)
- 資料來源:Mock 固定 fixture 或 Staging 專用帳;不打 prod 個人寫入。
- 切換:環境旗標/feature flag(RD);prod 預設 OFF。
- CRUD:Mock 僅行程式記憶體或 staging DB;不得污染 prod。
12. 實作備註(Implementation Notes)
12.1 禁止事項
- ❌ 不開高於 BR/Enterprise quota 的後門
- ❌ 不實作 BR-040 核彈能力
- ❌ 不以 query string 傳 API key(Claude 文件亦禁止)
- ❌ 不把本 PRD 當最終 OpenAPI path 定義(Hints only)
- ❌ v1 prod 不啟用求職者真寫入
12.2 RD 決策清單(本 PRD 明確放權)
| 項目 | 選項邊界 |
|---|
| MCP 傳輸 | Streamable HTTP 或 SSE |
| 託管 | CF Workers 或 AWS 輕量 serverless |
| npm 包名 | 已定:@wport/sdk+共用引擎 @wport/core(monorepo 抽出,cli/sdk/未來 mcp 共用);MCP 包名待交付 C |
| 內部架構 | 已定:wport-cli 轉 npm workspaces monorepo,@wport/core=runtime-agnostic 薄 REST client(typed errors/enterprise transport/OpenAPI 型別),SDK 全請求標 X-Source: typescript_sdk(BR-039 客戶端已就緒;CLI 標 cli 待後端就緒後啟用) |
| 企業 OAuth | v1 不強制;Directory 打回後可升級(附錄 A) |
| ConfirmToken TTL/儲存 | RD 定 |
| Tool 命名細節 | SDK 已採:jobs.*/enterprise.jobs.*/personal.*(文件=npm README);MCP tool 命名待交付 C |
12.3 PM 立即行動(非 RD)
12.4 遷移/相容
- 既有 CLI/API 使用者:無破壞性變更;僅 audit 新增/強制
source(既有呼叫應標 enterprise_api/cli)。
- 回滾:feature flag 關閉 MCP 路由即可;不影響 GUI。
12.5 Sync-fix 清單
| 項目 | Owner | Blocking? |
|---|
| BR-039/040 已入 business-rules v1.8.0 | PM ✅ | No |
| pm_41 §3.5 標題已指 BR-040 | PM ✅ | No |
OpenAPI/audit source 實作 | RD | Yes for 合規(客戶端 ✅ SDK 已標;後端記錄進行中 2026/08/17) |
| MCP server + SDK | RD | Yes(SDK ✅ 0.1.x 已上 npm 2026/08/17;MCP 未動工) |
| Claude org/Directory 權限 | PM | Yes for 送審 |
| Demo 帳/icon/docs | PM+Design | Yes for 送審 |
| pm_47 Ready → personal 解鎖 | RD+PM | P1 only |
| exec-wport-cli/新 MCP skill 文件 | PM/Docs | No(上線後) |
Coda PRD=pm_48(i-S6oB4_3Q2D) | PM ✅ | No |
13. 一致性表與版本凍結(Stage 5–6)
13.1 欄位/語意對照
| 概念 | SoT | 版本 |
|---|
| 企業認證 | Bearer wpk_live_ = REST | v1 |
| 求職者認證 | pm_47 OAuth | v1 mock/P1 prod |
| Batch 語意 | partial(pm_37/41) | v1 |
| Deny list | BR-040/pm_41 §3.5 | v1 |
| Audit source | BR-039 | v1 |
| Listing 文案 | npm @wport/cli | v1 |
| 隱私 URL | 站上既有 privacy | v1 |
13.2 Constants
| 常數 | 值 | SoT | 版本 |
|---|
| Batch 上限 | ≤100(企業 jobs batch) | pm_37/41 | v1 |
| 履歷上限 | 6 | BR-010 | P1 |
| 投遞冷卻 | 72h | BR-011 | P1 |
| Confirm | 兩階段必做(破壞性) | BR-040 | v1 |
| MCP Apps UI | 不做 | 本 PRD | v1 |
13.3 Event dictionary
| 事件 | 觸發 | Payload 語意 | SoT |
|---|
mcp.tool.invoked | tool 呼叫 | tool、result、source | 本 PRD |
audit.write | 任何通道寫入 | 含 source | BR-039 |
mcp.confirm.issued | 破壞性第一階段 | token TTL | BR-040 |
mcp.confirm.consumed | 第二階段成功 | — | BR-040 |
13.4 術語 dictionary
| 術語 | 定義 | 勿混淆 |
|---|
| MCP Server | 對 Agent 暴露 tools 的服務 | ≠ MCP Apps UI |
| Claude Connector | 在 Claude 連到本 MCP 的包裝/上架形態 | ≠ CLI |
| Lazy auth | 公開 tool 可先用,受保護 tool 再認證 | ≠ 無安全 |
| Partial success | 批次部分成功並回報失敗項 | ≠ all-or-nothing |
| source | audit 通道標記 | ≠ OAuth scope |
13.5 Version freeze
| Item | v1/v2 | Blocking? | Reason | Decision maker | Date |
|---|
| 企業 MCP/SDK/Directory 送審準備 | v1 | Yes | 核心出貨 | Eric | 2026/07/17 |
| 求職者 prod MCP | v1 mock/P1 | No for P0 | pm_47 閘門 | Eric | 2026/07/17 |
| 企業 OAuth | v1 可選升級 | No | RD/審核 | RD | — |
| 雙身分同連線 | 延後 | No | — | Eric | 2026/07/17 |
| MCP Apps UI | out | No | — | Eric | 2026/07/17 |
| Python SDK | out | No | — | Eric | 2026/07/17 |
13.6 PRD 問題清單
| # | PRD section | Issue | Suggested fix | Category | Impact | SoT |
|---|
| — | — | 無 | — | — | — | — |
(若 Claude Directory 組織權限本週未取得,視為交付 blocker,非 PRD 規格缺陷。)
14. 下一步(Next Steps)
- Stage 8:使用者確認本 PRD 後 → Stage 9 commit/push(Coda 已有
pm_48)
- RD:開 MCP/SDK/audit
source 實作;填 RD 決策清單
- PM:Claude org+Directory;Demo 帳與 listing 資產
- 可選:
gen-trello-project-setup 建 goal+delivery 卡(無 Storybook 欄位填「無」)
- P1:pm_47 Ready → 解鎖 personal tools
附錄 A:企業 API key vs OAuth(供 RD/送審參考,v1 不強制)
| API key(v1 採用) | 另做企業 OAuth |
|---|
| 優 | 與 CLI/REST 一致、快 | Directory 原生偏好、人同意可撤銷 |
| 劣 | static_headers 仍 beta、org 共用 key 風險 | 多 AS/consent、與 CLI 體驗分叉 |
| 建議 | 工具層繼續打同一 REST | 若審核要求再升級;可雙軌 |
附錄 B:Stage 2 情境 ID 對照
S1–S12 見對話 Stage 2;已納入 §10.1/§10.4。
文件結束