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:
2026-06-28 16:24:33 +08:00
parent 953e7739da
commit 10f25e53e3
9 changed files with 293 additions and 3 deletions
+14
View File
@@ -120,6 +120,20 @@ This way, even with a note vault, the original structure stays intact and your n
---
## Mirror tasks to GitHub (optional, needs Arcrun)
If you installed SDD, you can **one-way project** the tasks in `system-dev/docs/3-specs/*/tasks.md` into a read-only GitHub Project (handy for boards/dashboards).
- **One-way, md is the source of truth**: the only write point is `tasks.md` — CC edits md when it finishes a task, you ask the AI to edit md when you want changes, **nobody touches the Project directly**. The Project is always read-only, so there's no two-sources-of-truth conflict.
- **Needs Arcrun** (a free AI-friendly workflow toolkit). No Arcrun → plain md, full no-op, unaffected.
- **How to turn it on**: after install, CC asks you once "do you want tasks mirrored to GitHub?" Answer "yes" and if Arcrun is present, CC `acr push`es the projection workflow to enable it; if Arcrun isn't installed, CC tells you "ask Claude to install it; you can also enable sync later." Answer "no" and nothing happens — no nagging.
- **Plays by the rules**: triggered once locally after a push (no periodic polling, no GitHub Actions), staying within the anti-flag red line.
> The workflow lives at `system-dev/workflows/tasks-project-sync.yaml` (+ local trigger `.local.sh`). **Shipped ≠ enabled** — enabling means you said yes and `acr push`ed.
> ⚠️ End-to-end flow is still being verified (issue #16).
---
## Cowork can curate wikis too
The wiki curator is no longer limited to Claude Code in the terminal — **claude.ai's Cowork** can do it too.