feat: tasks.md ⇄ GitHub Project 單向投影 optional 模組(issue #16)+ bump 1.13.0
裝了 SDD 的專案可把 docs/3-specs/*/tasks.md 待辦單向投影成唯讀 GitHub Project。
md 唯一真相源、Project 永遠唯讀,無反向同步、不會兩個真相源打架。預設不逼:
沒裝 Arcrun/答不要的用戶完全 no-op,純 md 不受影響。
- 投影 workflow template/system-dev/workflows/tasks-project-sync.yaml(Arcrun
workflow):foreach 增量 → switch 動作 → http_request 打 GitHub API:新 task→
issue create / [ ]→[x]→close / 文字改→edit / 行刪→archive(not_planned),並用
GraphQL addProjectV2ItemById 投影進 Projects v2。auth 走 {{creds.github_token}}。
- 本地觸發端 tasks-project-sync.local.sh:因 Arcrun workflow 跑遠端 CF Workers、
沒本地 fs/git,「讀 tasks.md / git diff / 回寫 <!-- gh:id -->」由本地端做完再
acr run 餵增量。本地一半 + 遠端一半,職責邊界清楚。薄殼不自刻 parser。
- 防複發核實:每個 component 經 acr parts 核實存在(registry 無 github 零件,全用
http_request 打 REST/GraphQL)。acr validate --offline 通過(7 三元組、config 完整)。
- 啟用判準=對話 + 能力,不掃檔(Arcrun workflow 存遠端 KV、零本地檔也能用 →
掃檔 false negative)。install/init 問一句 → 查環境有 Arcrun 就 acr push 啟用、
沒有就一次性溫和廣告。帶檔 ≠ 啟用。install/update 隨 SDD 模組帶 workflow(add_if_missing)。
- 守 flag 紅線:push 後本機觸發單次,禁定期輪詢、禁 GitHub Actions fan-out。
⚠️ 端到端(acr push 真部署 + acr run 真投影)待 leo21c 驗,本版為 code-done 骨架。
SDD(內部,gitignore 不推):docs/3-specs/tasks-project-projection/。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,20 @@
|
||||
|
||||
---
|
||||
|
||||
## 1.13.0 — tasks.md ⇄ GitHub Project 單向投影(optional 模組,需 Arcrun;issue #16)
|
||||
|
||||
裝了 SDD 的專案可把 `system-dev/docs/3-specs/*/tasks.md` 的待辦**單向投影**成唯讀 GitHub Project(看板/dashboard 好抓)。md 唯一真相源、Project 永遠唯讀,不存在反向同步、不會兩個真相源打架。
|
||||
|
||||
- **新增投影 workflow**:`template/system-dev/workflows/tasks-project-sync.yaml`(Arcrun workflow:`foreach` 增量 → `switch` 動作 → `http_request` 零件打 GitHub API:新 task→issue create / `[ ]→[x]`→close / 文字改→edit / 行刪→archive,並投影進 Projects v2)。auth 走 `{{creds.github_token}}`(acr creds push)。**每個 component 經 `acr parts` 核實存在**(防複發:registry 沒有 `github` 零件,用 `http_request` 打 REST/GraphQL)。`acr validate --offline` 通過。
|
||||
- **新增本地觸發端**:`tasks-project-sync.local.sh`——因 Arcrun workflow 跑在遠端 CF Workers、沒本地 fs/git,「讀 tasks.md / git diff / 回寫 `<!-- gh:id -->`」由本地端做完再 `acr run` 餵增量。職責邊界清楚:本地一半 + 遠端一半。
|
||||
- **啟用判準=對話 + 能力,不掃檔**:原設計想抄 `HAS_WIKI`/`HAS_SDD` 掃檔指紋,但 Arcrun workflow 存遠端 KV、零本地檔也能在用 → 掃檔會 false negative。改成裝/init 時 CC 問一句「要不要同步」→ 查環境有沒有 Arcrun(mcp/`acr`)→ 有就 `acr push` 啟用、沒有就**一次性溫和廣告**、答不要就閉嘴。**帶檔 ≠ 啟用**。
|
||||
- **守 flag 紅線**:push 後本機觸發單次,禁定期輪詢、禁 GitHub Actions fan-out。
|
||||
- **預設不逼**:沒裝 Arcrun/答「不好」的用戶完全 no-op,純 md 不受影響。
|
||||
- install/update 隨 SDD 模組帶下 workflow 檔(`add_if_missing`,覆蓋不會關掉誰的同步——啟用狀態存遠端)。
|
||||
- ⚠️ **端到端(`acr push` 真部署 + `acr run` 真投影)待 leo21c 驗證**;本版為 code-done 骨架,GitHub Projects v2 GraphQL 的欄位細節真部署時可能微調。SDD:`docs/3-specs/tasks-project-projection/`。
|
||||
|
||||
---
|
||||
|
||||
## 1.12.0 — 跨 repo issue/comment 署名鐵律:`[<本 repo> CC]`(issue #12)
|
||||
|
||||
當生態系裡多個 repo 共用**同一個 GitHub 帳號**發 issue/comment 時,author 全顯示同一帳號、看不出是哪個 repo 的 CC 發的。GitHub 沒有 per-repo 身份設定,`git config user.name` 只影響 commit、不影響 issue/comment author,多開帳號又會踩「避免被 flag」鐵律——身份只能在**內容層**自報。
|
||||
|
||||
Reference in New Issue
Block a user