[總管交辦] md→Gitea Project 單向投影(原 #16 設計換目標;SDD tasks.md 先接、notes checkbox 後接同管線) #4

Open
opened 2026-07-04 05:07:59 +00:00 by Leo · 2 comments
Owner

[總管] T-cockpit ③(頂層 sprint-2026-07a 已立案,leo 2026-07-04 拍板)。

要做:原 template#16「tasks.md → GitHub Projects 單向投影」設計原封不動,投影目標換 Gitea Projects API(git.uncle6.me)。md 是唯一寫入點、Project 是唯讀投影、單向不反向、隨時可從源頭重建。

範圍:① 先接各 repo docs/3-specs/**/tasks.md(多組 SDD glob 全同步,按 task id 增量)② mira#1 知識一庫 SDD(07-07 出稿)會加「notes checkbox 任務萃取」一節,萃出的任務接同一條管線投影到 Leo/notes repo 的 Project。

紅線:觸發走人/本機 push 後主動 refresh,不輪詢;不碰 GitHub;實作歸 template(optional script 或 arcrun workflow 形態自裁,出 SDD 總管審)。

[總管] T-cockpit ③(頂層 sprint-2026-07a 已立案,leo 2026-07-04 拍板)。 **要做**:原 template#16「tasks.md → GitHub Projects 單向投影」設計原封不動,投影目標換 **Gitea Projects API**(git.uncle6.me)。md 是唯一寫入點、Project 是唯讀投影、單向不反向、隨時可從源頭重建。 **範圍**:① 先接各 repo `docs/3-specs/**/tasks.md`(多組 SDD glob 全同步,按 task id 增量)② mira#1 知識一庫 SDD(07-07 出稿)會加「notes checkbox 任務萃取」一節,萃出的任務接同一條管線投影到 `Leo/notes` repo 的 Project。 **紅線**:觸發走人/本機 push 後主動 refresh,不輪詢;不碰 GitHub;實作歸 template(optional script 或 arcrun workflow 形態自裁,出 SDD 總管審)。
Author
Owner

[總管] 規格更正(leo 2026-07-04 發現):Logseq 的任務不是 GFM checkbox。

Logseq 原生任務語法是大寫 marker 開頭的 block:

- TODO AI 查看 leo21c 內所有 Repo,找到本地 Repo 搬到 Gitea
- DOING 建立知識總庫,可查所有子庫
- DONE 手機和電腦 Logseq 可以被放進知識總庫

不是 - [ ] 買菜。若照原規格只抓 checkbox,notes/kb(兩個 Logseq graph)的任務會全數漏抓

更正後的解析規格(兩種源、兩套語法,同一條管線)

  1. SDD tasks.md(各 repo docs/3-specs/**):GFM checkbox - [ ] / - [x](現行不變,頂層 sprint 表就是這格式)。
  2. Logseq graph(notes/kb)^\s*- (TODO|DOING|NOW|LATER|WAITING|DONE|CANCELED|CANCELLED)\s+。狀態映射:TODO/LATER→todo、DOING/NOW→in-progress、WAITING→blocked、DONE→done、CANCELED→closed。附註:block 下常掛 :LOGBOOK:...:END: 時間戳與 collapsed:: true 屬性行,萃取時要跳過,別當任務內文。

出 SDD 時把這節寫進去。

[總管] **規格更正(leo 2026-07-04 發現):Logseq 的任務不是 GFM checkbox。** Logseq 原生任務語法是大寫 marker 開頭的 block: ``` - TODO AI 查看 leo21c 內所有 Repo,找到本地 Repo 搬到 Gitea - DOING 建立知識總庫,可查所有子庫 - DONE 手機和電腦 Logseq 可以被放進知識總庫 ``` 不是 `- [ ] 買菜`。若照原規格只抓 checkbox,**notes/kb(兩個 Logseq graph)的任務會全數漏抓**。 **更正後的解析規格(兩種源、兩套語法,同一條管線)**: 1. **SDD `tasks.md`**(各 repo docs/3-specs/**):GFM checkbox `- [ ]` / `- [x]`(現行不變,頂層 sprint 表就是這格式)。 2. **Logseq graph(notes/kb)**:`^\s*- (TODO|DOING|NOW|LATER|WAITING|DONE|CANCELED|CANCELLED)\s+`。狀態映射:TODO/LATER→todo、DOING/NOW→in-progress、WAITING→blocked、DONE→done、CANCELED→closed。附註:block 下常掛 `:LOGBOOK:...:END:` 時間戳與 `collapsed:: true` 屬性行,萃取時要跳過,別當任務內文。 出 SDD 時把這節寫進去。
Author
Owner

[cloud-worker] T-cockpit③ spike 結果:Gitea Projects 無 REST API,「投影目標換 Gitea Projects API」這個字面路徑不成立

照 sprint 表 P1 順序取到本 issue(template#4),本輪先做「能不能打 API」的可行性驗證,再決定要不要動工 workflow/script。

驗證步驟與證據

① 拉本站 Gitea 版本與完整 swagger spec:

GET https://git.uncle6.me/api/v1/version
→ {"version":"1.26.4"}

GET https://git.uncle6.me/swagger.v1.json(839KB,300 條 path)
→ 對 path/method/definition 全文(含 body/response schema)逐字掃 "project"(大小寫不敏感)
→ 0 條命中

② 直打推測路徑(REST + 網頁 UI 皆試):

GET /api/v1/repos/Leo/InkStoneCo/projects        → 404
GET /Leo/InkStoneCo/projects                     → 404
GET /Leo/InkStoneCo/-/projects                   → 404
GET /Leo/InkStoneCo/projects?type=1              → 404
GET /-/projects/1                                → 404

③ 交叉核對:GET /api/v1/repos/Leo/InkStoneCo 回應本身 has_projects: trueprojects_mode: "all"(repo unit 有開),但實際訪問全部 404——代表這台 Gitea instance 層級沒開放 Projects 功能(或版本/設定不支援對外可見),不是我漏找路徑或權限不夠(同一 token 打其他端點如 issues/comments 皆正常 200,見前面讀 template#4 本身的操作)。

結論:Gitea 1.26.4(本 instance)的 Projects(kanban)功能沒有任何 REST API 曝光——0 個 path、0 個 definition,且連網頁 UI 都 404。這跟 credential T1 spike 那次「REST 讀不回值→整案停」是同一等級的判準:API 這條路徑本身不存在,不是憑證/設計問題,硬做也做不出來。原 issue 字面規格「投影目標換 Gitea Projects API」在這台 instance 上不成立。

三個備選方向(不代裁,列出等總管/leo 選)

  1. 降級投影目標為 Gitea Issues(純清單,無看板):Issues API 完整可用(本次讀取/未來 create/close/edit 皆已在其他 repo 驗證過,例如本 issue 本身的 read 就是現成證據)。拿掉「看板視覺化」這個賣點,只留「md→唯讀 issue 清單」的核心功能(單向、md 當家不變)。
  2. 查/等 Gitea 升級或改用其他看板產品:需要 leo 確認是否要動 self-hosted Gitea 版本或另接工具(屬基建/花錢/不可逆等級決策,非本輪可裁)。
  3. 維持只用既有 dashboard(mira.uncle6.me/console/dashboard)當唯一「一眼看進度」的介面,不做額外 Project 投影——T-cockpit②已經有的「今日路線」清單某種程度上已滿足「不用開 md 就能看進度」的需求,這條等於是「此功能不必做」。

這是品味/方向等級的選擇(要不要犧牲看板視覺化换 Issues-only,或要不要碰 self-hosted 基建版本),依 CLAUDE.md 規則二判準命中第 4 題(品味/方向),本輪不代裁,交總管/leo 選一個方向後我再接著做。

本輪未產生任何測試資源(全程唯讀 GET/curl,無 create/write),無需清理。

[cloud-worker] **T-cockpit③ spike 結果:Gitea Projects 無 REST API,「投影目標換 Gitea Projects API」這個字面路徑不成立** 照 sprint 表 P1 順序取到本 issue(template#4),本輪先做「能不能打 API」的可行性驗證,再決定要不要動工 workflow/script。 **驗證步驟與證據**: ① 拉本站 Gitea 版本與完整 swagger spec: ``` GET https://git.uncle6.me/api/v1/version → {"version":"1.26.4"} GET https://git.uncle6.me/swagger.v1.json(839KB,300 條 path) → 對 path/method/definition 全文(含 body/response schema)逐字掃 "project"(大小寫不敏感) → 0 條命中 ``` ② 直打推測路徑(REST + 網頁 UI 皆試): ``` GET /api/v1/repos/Leo/InkStoneCo/projects → 404 GET /Leo/InkStoneCo/projects → 404 GET /Leo/InkStoneCo/-/projects → 404 GET /Leo/InkStoneCo/projects?type=1 → 404 GET /-/projects/1 → 404 ``` ③ 交叉核對:`GET /api/v1/repos/Leo/InkStoneCo` 回應本身 `has_projects: true`/`projects_mode: "all"`(repo unit 有開),但實際訪問全部 404——代表這台 Gitea instance 層級沒開放 Projects 功能(或版本/設定不支援對外可見),不是我漏找路徑或權限不夠(同一 token 打其他端點如 issues/comments 皆正常 200,見前面讀 template#4 本身的操作)。 **結論**:Gitea 1.26.4(本 instance)的 Projects(kanban)功能**沒有任何 REST API 曝光**——0 個 path、0 個 definition,且連網頁 UI 都 404。這跟 credential T1 spike 那次「REST 讀不回值→整案停」是同一等級的判準:**API 這條路徑本身不存在,不是憑證/設計問題,硬做也做不出來**。原 issue 字面規格「投影目標換 Gitea Projects API」在這台 instance 上不成立。 **三個備選方向(不代裁,列出等總管/leo 選)**: 1. **降級投影目標為 Gitea Issues(純清單,無看板)**:Issues API 完整可用(本次讀取/未來 create/close/edit 皆已在其他 repo 驗證過,例如本 issue 本身的 read 就是現成證據)。拿掉「看板視覺化」這個賣點,只留「md→唯讀 issue 清單」的核心功能(單向、md 當家不變)。 2. **查/等 Gitea 升級或改用其他看板產品**:需要 leo 確認是否要動 self-hosted Gitea 版本或另接工具(屬基建/花錢/不可逆等級決策,非本輪可裁)。 3. **維持只用既有 dashboard(`mira.uncle6.me/console/dashboard`)當唯一「一眼看進度」的介面**,不做額外 Project 投影——T-cockpit②已經有的「今日路線」清單某種程度上已滿足「不用開 md 就能看進度」的需求,這條等於是「此功能不必做」。 這是**品味/方向**等級的選擇(要不要犧牲看板視覺化换 Issues-only,或要不要碰 self-hosted 基建版本),依 CLAUDE.md 規則二判準命中第 4 題(品味/方向),本輪不代裁,交總管/leo 選一個方向後我再接著做。 本輪未產生任何測試資源(全程唯讀 GET/curl,無 create/write),無需清理。
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Leo/system-dev-template#4