project-card-canvaslisted
Install: claude install-skill SungFeng-Huang/research-cards
# Project Card Canvas — 專案卡鏈的視覺化視圖家族
一個專案卡鏈可以生成**兩張 canvas、四種視圖**,全部是**生成式視圖**
(每次重跑整張重建��節點 id 確定性——別手排;手排���用知識地圖 canvas):
| 視圖 | 檔案 | 指令 |
|---|---|---|
| 時間線(git graph) | `<專案>.canvas` | `project_canvas.py --card <ENTRY>` |
| 心智圖(沿用既有模式擴充) | `<專案>·脈絡心智圖.canvas` | `context_mindmap.py --card <ENTRY>` |
| 心智圖 logs 模式(新建/切換) | 同上(共用檔) | `context_mindmap.py --card <ENTRY> --mode logs` |
| 心智圖 chain 模式 | 同上(共用檔) | `context_mindmap.py --card <ENTRY> --mode chain` |
| 心智圖 story 模式 | 同上(共用檔) | `context_mindmap.py --card <ENTRY> --mode story --graph <graph.json>` |
輸出資料夾=`<vault>/<projects>/Canvas/`(config
`local.folders.project_canvas` 可覆蓋)。三種心智圖模式共用一個 canvas
檔(一專案一張脈絡圖);canvas 左上皆有色彩圖例節點。
**裸跑 `context_mindmap.py --card <ENTRY>`(不給 `--mode`)=就地擴充**
既有 canvas:讀 canvas 的**圖例節點文字**判斷它現在是哪個模式
(logs/chain/story——圖例每次 render 都重寫,必然反映當前模式)並用
**同模式**重生——生成式視圖的節點 id 是確定性的,重生本質上就是「加進
新內容、既有節點不動」,所以刷新永遠不會把 chain/story 卡洗回 logs。
偵測到是 story 卡時才自動接上同名 `.graph.json`(不用再手打 `--graph`);
反過來說,story 切成 chain/logs 後即使殘留舊 `.graph.json`,圖例已改、
不會被硬拉回 story。**沒有既有 canvas → logs**(首建);**明確給
`--mode X` =切換模式**(report 的 `extended` 欄:`true`=沿用擴充/
`false`=明確指定或首建)。
## 怎麼選視圖
- **時間線**:想看「發生過什麼、哪些已蒸餾」——log 卡=commit 直欄
(由新到舊、時間往上流),entry=HEAD 指標(紫)**側貼在最新已蒸餾
(📗)log 那排**並以側向箭頭指向它——所以 HEAD 之上堆的就是還沒
蒸餾(📎)的 backlog,**蒸餾狀態由拓撲表達**(全未蒸餾=HEAD 沉到
欄底;無 log=entry 獨立一格)。顏色軸因此讓給機器來源:
`--color-by origin`(預設:Mac=cyan/cluster=yellow;讀 log 卡的
`環境` 欄或回溯卡 `原段:📥 …` 行)或 `--color-by state`(📎橙/
📗綠,與拓撲重複的舊軸);co