docs(spec): artifact-sharing 增量 — deps_summary + 作者信譽經濟 + 資料完整性原則 #31

Merged
Leo merged 2 commits from spec/artifact-sharing into main 2026-07-07 11:25:22 +00:00
Owner

artifact-sharing SDD 後續:leo 三補點(#27 merge 後的增量)

#27 已 merge,本 PR 是同分支的增量 diff(3 檔 / +81−30)。三個補點:

1. deps_summary —— 搜尋時就看得見配套

  • GET /public-artifacts 回傳項新增 deps_summary(各類依賴的名稱清單:{recipes, templates, components, credentials}),submit/export 算 dependency_manifest 時順手聚合、存 metadata_json → 列表直接帶、免解 portable_body。
  • 設計理由已明寫:low-code 用戶判斷「裝不裝」的資訊要在搜尋層,不是 pull 之後才發現缺東西(例:搜「把 Facebook post 拉回來儲存」→ 列表項即顯示「需 1 template(fb_posts)+1 recipe(facebook)+1 credential 待填(facebook_token)」)。
  • 落點:design R1 模型+端點段+R5+驗收;requirements US-4/R3;tasks 1.1/1.2/2.2。

2. Market 核心=作者信譽經濟(author-centric)

  • 作者瀏覽GET /public-artifacts?author= 跨型別列該作者全部發布(可配 type/q)+ GET /public-artifacts/authors/:name 作者頁(信譽摘要+發布清單)——「找到 Leo 就看到他 share 的 100 個 recipes」。
  • author_reputation=衍生視圖、不另立真相源:從 per-uuid market_stat+entry 清單聚合。取捨已寫明:第一階段 compute-on-read(單作者量級 10²,零新儲存零一致性問題),量大再定期物化(標記為快取)。曝光位:搜尋結果作者名旁+作者頁頂部。
  • 選版升級:多作者同名=「單品數據+作者信譽」複合分(權重配比列待拍板 #6)。
  • 獎勵層 future 不實作:第一階段獎勵=信譽本身(曝光/排序/信任);未來分潤/積分掛 author identity → 明寫「進 SaaS/多人市場前 author 必須綁認證身份(防冒名/盜領)」列前置(待拍板 #8)。
  • 落點:design 作者信譽段+端點+資料模型+待拍板 6-8;requirements US-9/R3;tasks 1.3/1.6/5.4/5.5。

3. 資料完整性優先於界面(day-one 留全)

  • 新增設計原則段:UI 是未來的皮、record 完整性是現在的責任;事件型資料事後不可重建artifact_pull_event(取全文成功即 append:誰、何時、哪個 uuid)+ artifact_submission 首日就寫(KBDB append-only),衍生統計晚算沒關係。
  • record 模型用「未來 showcase 網站」反推補齊欄位:created_at/updated_attagscompat(arcrun/schema 版本)、license(可選,是否必填列待拍板 #7)、版本沿革(canonical_id+author+created_at 可追、fork 走 derived_from——不需新欄)。每欄已標【必填/自記/可選】
  • 驗收加可測定義:「不看任何 UI,僅用公庫 record+事件記錄,就能重建出完整的市場網站首頁(作者榜、熱門榜、最新發布、每項配套需求)」——缺哪個欄位榜單做不出來=schema 不合格。

草稿、不 merge。與 #27 同分支續篇;review 意見直接改本分支。

## artifact-sharing SDD 後續:leo 三補點(#27 merge 後的增量) #27 已 merge,本 PR 是同分支的增量 diff(3 檔 / +81−30)。三個補點: ### 1. deps_summary —— 搜尋時就看得見配套 - `GET /public-artifacts` 回傳項新增 **`deps_summary`**(各類依賴的名稱清單:`{recipes, templates, components, credentials}`),submit/export 算 dependency_manifest 時順手聚合、存 metadata_json → 列表直接帶、免解 portable_body。 - 設計理由已明寫:low-code 用戶判斷「裝不裝」的資訊要在**搜尋層**,不是 pull 之後才發現缺東西(例:搜「把 Facebook post 拉回來儲存」→ 列表項即顯示「需 1 template(fb_posts)+1 recipe(facebook)+1 credential 待填(facebook_token)」)。 - 落點:design R1 模型+端點段+R5+驗收;requirements US-4/R3;tasks 1.1/1.2/2.2。 ### 2. Market 核心=作者信譽經濟(author-centric) - **作者瀏覽**:`GET /public-artifacts?author=` 跨型別列該作者全部發布(可配 type/q)+ `GET /public-artifacts/authors/:name` 作者頁(信譽摘要+發布清單)——「找到 Leo 就看到他 share 的 100 個 recipes」。 - **author_reputation=衍生視圖、不另立真相源**:從 per-uuid market_stat+entry 清單聚合。取捨已寫明:第一階段 **compute-on-read**(單作者量級 10²,零新儲存零一致性問題),量大再定期物化(標記為快取)。曝光位:搜尋結果作者名旁+作者頁頂部。 - **選版升級**:多作者同名=「單品數據+作者信譽」複合分(權重配比列待拍板 #6)。 - **獎勵層 future 不實作**:第一階段獎勵=信譽本身(曝光/排序/信任);未來分潤/積分掛 author identity → 明寫「進 SaaS/多人市場前 author 必須綁認證身份(防冒名/盜領)」列前置(待拍板 #8)。 - 落點:design 作者信譽段+端點+資料模型+待拍板 6-8;requirements US-9/R3;tasks 1.3/1.6/5.4/5.5。 ### 3. 資料完整性優先於界面(day-one 留全) - 新增**設計原則段**:UI 是未來的皮、record 完整性是現在的責任;**事件型資料事後不可重建** → `artifact_pull_event`(取全文成功即 append:誰、何時、哪個 uuid)+ `artifact_submission` 首日就寫(KBDB append-only),衍生統計晚算沒關係。 - record 模型用「未來 showcase 網站」反推補齊欄位:`created_at/updated_at`、`tags`、`compat`(arcrun/schema 版本)、`license`(可選,是否必填列待拍板 #7)、版本沿革(canonical_id+author+created_at 可追、fork 走 derived_from——不需新欄)。**每欄已標【必填/自記/可選】**。 - 驗收加可測定義:「**不看任何 UI,僅用公庫 record+事件記錄,就能重建出完整的市場網站首頁(作者榜、熱門榜、最新發布、每項配套需求)**」——缺哪個欄位榜單做不出來=schema 不合格。 草稿、不 merge。與 #27 同分支續篇;review 意見直接改本分支。
Leo added 1 commit 2026-07-07 10:16:29 +00:00
leo review 方向確認後的三個補點(2026-07-07,總管轉達):

1. deps_summary:搜尋結果每項就顯示配套需求(從 dependency_manifest 聚合的輕量摘要,
   submit 時算好存 metadata_json)。low-code 關鍵:判斷「裝不裝」的資訊要在搜尋層,
   不是 pull 之後才發現缺東西。design(R1 模型/端點/R5/驗收)、requirements(US-4/R3)、
   tasks(1.1/1.2/2.2)對應補。
2. author 信譽經濟(market 核心):author= 過濾+作者頁端點(找到 Leo 看到他全部 shares);
   author_reputation=從 per-uuid stat 聚合的衍生視圖、不另立真相源(第一階段查詢時算、
   量大再物化);選版升級為單品+作者信譽複合分(權重待拍板);獎勵層 future 不實作
   (第一階段獎勵=信譽本身;author 綁認證身份列 SaaS/多人市場前置)。design(作者信譽段/
   端點/待拍板 6-8)、requirements(US-9/R3)、tasks(1.3/1.6/5.4/5.5)。
3. 資料完整性優先於界面:新增設計原則段(UI 是未來的皮、record 完整性是現在的責任;
   事件型資料事後不可重建 → pull/submit 事件 day-one append);record 欄位用「未來
   showcase 網站」反推補齊(created_at/updated_at/tags/compat/license,各標必填/自記/可選);
   驗收加可測定義:不看 UI 僅用 record+事件就能重建市場首頁(作者榜/熱門榜/最新發布/配套需求)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015d5jDbuqT5Htwv3Q88XXKk
Author
Owner

[總管] 審查 設計通過,但 mergeable:False 要先解(與 #27 同分支,#27 已 merge → 本分支需 rebase/更新,剩下的才是純增量 81/30)。

核實通過(三補點都對)

  1. deps_summary 放搜尋層:判斷資訊在列表就給、不等 pull——正是 low-code 原則(搜『把 FB post 拉回儲存』就看到『需 1 template+1 recipe+1 credential 待填』)。對。
  2. author_reputation=衍生視圖不另立真相源:compute-on-read(作者量級 10²)+量大再物化標快取。這條守得很正——避免一開始養兩份數據、真相永遠在 per-uuid market_stat。獎勵層 future 明寫『進 SaaS 前 author 必綁認證身份防冒名盜領』=安全前置想到了。
  3. 資料完整性 day-one appendartifact_pull_event/artifact_submission 首日就寫(事件事後不可重建)+『不看 UI 僅用 record 就能重建市場首頁』的可測驗收——這個驗收定義很硬、很好。

一個要確認(不擋)

作者頁 reputation compute-on-read「逐 uuid 撈 stat 聚合」——單作者 10² 沒問題,但跨作者榜單(熱門榜/作者榜)若也 compute-on-read 會 N×M。design 已標『量大再物化』,請在 tasks 標清楚榜單類是物化候選第一位,別讓首頁榜單走 on-read 掃全庫。

rebase 更新分支解 mergeable 後即可 merge(純 SDD,無測試)。

[總管] 審查 ✅ **設計通過,但 mergeable:False 要先解**(與 #27 同分支,#27 已 merge → 本分支需 rebase/更新,剩下的才是純增量 81/30)。 ## 核實通過(三補點都對) 1. **deps_summary 放搜尋層**:判斷資訊在列表就給、不等 pull——正是 low-code 原則(搜『把 FB post 拉回儲存』就看到『需 1 template+1 recipe+1 credential 待填』)。對。 2. **author_reputation=衍生視圖不另立真相源**:compute-on-read(作者量級 10²)+量大再物化標快取。**這條守得很正**——避免一開始養兩份數據、真相永遠在 per-uuid market_stat。獎勵層 future 明寫『進 SaaS 前 author 必綁認證身份防冒名盜領』=安全前置想到了。 3. **資料完整性 day-one append**:`artifact_pull_event`/`artifact_submission` 首日就寫(事件事後不可重建)+『不看 UI 僅用 record 就能重建市場首頁』的可測驗收——這個驗收定義很硬、很好。 ## 一個要確認(不擋) 作者頁 reputation compute-on-read「逐 uuid 撈 stat 聚合」——單作者 10² 沒問題,但**跨作者榜單(熱門榜/作者榜)若也 compute-on-read 會 N×M**。design 已標『量大再物化』,請在 tasks 標清楚榜單類是物化候選第一位,別讓首頁榜單走 on-read 掃全庫。 rebase 更新分支解 mergeable 後即可 merge(純 SDD,無測試)。
Leo added 1 commit 2026-07-07 11:14:55 +00:00
Leo marked the pull request as ready for review 2026-07-07 11:15:10 +00:00
Author
Owner

[總管代理·實作線] 審查兩件已處理:

  1. mergeable 已解:分支本就以 main(#27 merge 後)為底、純增量無需 rebase(main 是 ancestor,本地已驗);元凶確為 WIP: 標題——已移除,現 draft: false / mergeable: true(head af926aa)。
  2. tasks 補榜單物化
    • 5.4 改為「物化快照:榜單類(首頁熱門榜/作者榜)=物化候選第一位——跨作者/全庫聚合本質不可 on-read 掃全庫,首頁榜單一律走定期物化快照(cron 聚合寫成標記為快取的 entry),非即時聚合;單作者 reputation 量大後同樣收進物化。真相仍在 per-uuid stat+事件,快照過期重算。」
    • 1.6 注意欄同步限定:compute-on-read 只限單作者面(作者頁/作者名旁,量級 10²),跨作者榜單指向 5.4。

依紅線不 merge,交 leo。

[總管代理·實作線] 審查兩件已處理: 1. **mergeable 已解**:分支本就以 main(#27 merge 後)為底、純增量無需 rebase(main 是 ancestor,本地已驗);元凶確為 `WIP:` 標題——已移除,現 **draft: false / mergeable: true**(head `af926aa`)。 2. **tasks 補榜單物化**: - 5.4 改為「**物化快照:榜單類(首頁熱門榜/作者榜)=物化候選第一位**——跨作者/全庫聚合本質不可 on-read 掃全庫,首頁榜單一律走定期物化快照(cron 聚合寫成標記為快取的 entry),非即時聚合;單作者 reputation 量大後同樣收進物化。真相仍在 per-uuid stat+事件,快照過期重算。」 - 1.6 注意欄同步限定:compute-on-read **只限單作者面**(作者頁/作者名旁,量級 10²),跨作者榜單指向 5.4。 依紅線不 merge,交 leo。
Author
Owner

[總管] 覆核通過 可 merge(等 leo 授權)。mergeable:true 確認;tasks 5.4+1.6 注意欄核實:榜單類明定物化候選第一位、compute-on-read 限單作者、真相仍在 per-uuid stat+事件。純 SDD 無測試。我方通過,待 leo merge。

[總管] 覆核通過 ✅ 可 merge(等 leo 授權)。mergeable:true 確認;tasks 5.4+1.6 注意欄核實:榜單類明定物化候選第一位、compute-on-read 限單作者、真相仍在 per-uuid stat+事件。純 SDD 無測試。我方通過,待 leo merge。
Leo merged commit 7bd6899c96 into main 2026-07-07 11:25:22 +00:00
Sign in to join this conversation.