# 平台詳細架構

> 狀態：公開草案
>
> 版本：0.1.0
>
> 更新日：2026-08-20

## 架構目標

本文件同時描述網站資訊架構、資料生命週期、使用路徑與維護邊界。它不是只有工程團隊看得懂的系統圖，而是讓商品提供單位、採購者、資料維護者與資源夥伴都能確認「資訊從哪裡來、誰能改、使用者會被帶到哪裡」。

## 四層服務架構

### 1. Discover｜發現

把已查核的商品與服務整理成可搜尋、可篩選且能理解的目錄。

- 核心資訊：名稱、單位、地區、分類、價格說明、圖片、來源與查核註記。
- 使用功能：關鍵字搜尋、分類篩選、瀏覽器本機收藏。
- 公平原則：不因贊助、有薪關係或合作規模購買排序優勢。

### 2. Verify｜查核

在公開前留下可追溯的依據，並允許發布後更正。

- 優先採用原單位、政府或其他可合理辨識的第一方來源。
- 對價格、圖片與商品名稱分別查核，不因一個連結有效就推定所有欄位正確。
- 記錄查核日期、來源類型與必要限制。
- 依[資料治理](./DATA_GOVERNANCE.md)處理更正、爭議與下架。

### 3. Visit｜回到單位

商品卡片的主要行動是「前往單位／商品頁」。平台不攔截交易，也不把收藏偽裝成訂購。

- 外部連結應清楚標示目的地。
- 原單位頁面上的庫存、價格、交期及服務條件優先於平台摘要。
- 外部網站有自己的隱私與無障礙狀態；平台不能代為保證。

### 4. Handoff｜線下接手

當需求跨品項、跨單位、規模較大或仍需釐清時，網站協助使用者整理需求並開啟電子郵件草稿。

- 使用者仍需自行確認並寄出郵件。
- 開啟草稿不等於平台已收到、立案或承諾回覆。
- 後續若建立案件系統，必須先更新隱私、保存期限、權限與安全說明。

## 網站資訊架構

### A. 了解平台

- 平台緣起與公共任務。
- 平台邊界與不承諾事項。
- 目前資料範圍與查核方法。

### B. 找商品與服務

- 目錄總覽。
- 搜尋、品類與收藏篩選。
- 商品／服務卡片與原始來源。
- 資料更正及下架入口。

### C. 完成採購路徑

- 個人：搜尋 → 查看來源 → 洽原單位。
- 組織：建立清單 → 查原單位條件 → 必要時線下接手。
- 跨單位需求：整理目標與限制 → 產生郵件草稿 → 使用者寄出。

### D. 共同維護

- 專案、架構與路線圖。
- 資料治理、隱私、安全及無障礙。
- 維護者、貢獻、資源合作與行為準則。
- 決策、利益衝突、更正、申訴及變更紀錄。

## 核心內容模型

### Listing｜商品或服務

必要識別欄位包括穩定 ID、公開名稱、提供單位、分類及地區；查核欄位包括來源連結、來源類型、查核說明及更新日期；展示欄位可以包括圖片、參考價格、標籤與簡短描述。

Listing 只是一筆可追溯的公開摘要，不是庫存單位、交易合約或品質評分。

### Organization｜提供單位

描述實際提供商品或服務的庇護工場或其所屬單位。未經充分查核，不把品牌名稱、法人名稱與營運據點混為一談。

### Source｜來源

保存來源網址、來源名稱、來源類型、最後查核時間與適用欄位。單一 Listing 可以有多個來源，並可針對名稱、價格、圖片分別指定依據。

### Change｜變更

記錄新增、更正、暫時隱藏、下架與恢復的理由、證據及決定角色。公開紀錄需排除個資、安全細節與依法不得揭露的內容。

### Contribution｜貢獻

包含資料提案、文件修訂、程式變更、設計檢查及社群回饋。貢獻被採用不會自動產生聘僱、報酬、治理席位或永久存取權。

### Resource｜資源

可包含有條件的經費、專業服務、工具額度、設備或合作管道。接受資源前須記錄用途、限制、利益衝突與是否公開；資源不得換取商品排序或內容審核特權。

## 資料流

1. **提出**：提供來源、欄位、理由與必要證據。
2. **初檢**：排除個資、侵權風險、失效連結及無法辨識的主張。
3. **交叉查核**：依欄位確認第一方或政府來源；有衝突時不推測。
4. **審閱**：由未具直接利益衝突的維護角色確認。
5. **發布**：網站建置與基本檢查通過後公開。
6. **監測**：透過回報、定期抽查或連結檢查發現變動。
7. **更正／下架**：依風險先暫時隱藏，再補足證據與決定紀錄。

## 技術邊界

- 公開網站是資訊入口，不處理金流、庫存或訂單。
- 收藏資料保存在使用者瀏覽器本機；清除網站資料或更換裝置可能消失。
- 線下接手目前以電子郵件草稿為介面，不是後端案件系統。
- 第三方圖片與連結可能變更或失效；平台保留來源並依治理流程處理。
- 正式網站由版本控制的主分支觸發自動部署。發布紀錄應可回溯到版本提交與變更說明。

## 權限架構

採最小權限與職責分離：

- 公開訪客：讀取、搜尋、收藏及提出回饋。
- 貢獻者：提出變更，沒有直接發布權。
- 資料審閱者：檢查來源與欄位，不因合作或贊助關係取得特權。
- 維護者：審閱與整合已通過檢查的變更。
- 發布維護者：管理正式部署所需的有限權限。
- 安全聯絡人：私下接收弱點資訊並協調修復。
- 專案守護角色：處理重大邊界、申訴及權限例外，但須留下理由與利益衝突紀錄。

同一人可在資源有限時兼任，但須公開兼任狀態；涉及自身利益、所屬組織或有薪工作時應揭露並迴避。

## 變更層級

- **一般內容變更**：文字、失效連結、可直接證實的欄位更正。
- **資料爭議變更**：來源衝突、圖片權利、單位要求下架或可能造成損害的資訊。
- **功能變更**：搜尋、收藏、表單、分析工具或新增個資處理。
- **治理變更**：角色權限、排序原則、資源條件、申訴及決策規則。
- **緊急變更**：安全事件、敏感資料外洩或明顯侵權風險，可先採最小必要處置，之後補記理由。

詳細決策方式見[共同治理](./GOVERNANCE.md)。

## 架構健康指標

可公開追蹤但不構成 SLA 的項目包括：失效來源數、待查核資料數、資料更正類型、無障礙問題、貢獻者留存、決策集中度、維護工作量與有薪／無薪工作占比。公開數字時須說明資料範圍、算法、遺漏與解讀限制。

## 參考依據

- [Open Source Guides：Leadership and Governance](https://opensource.guide/leadership-and-governance/)
- [Open Source Guides：Metrics](https://opensource.guide/metrics/)
- [GitHub Docs：About community profiles for public repositories](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/about-community-profiles-for-public-repositories)
