feat(overview-artifact): 產生可預覽總覽與截圖 fallback
This commit is contained in:
+19
-39
@@ -134,32 +134,15 @@ node scripts/timer.js --repo <owner/name> --index <編號> --dry-run
|
||||
|
||||
### 8. 產生圖解版總覽 〔可委派〕
|
||||
|
||||
套用 `templates/overview-artifact.html`,把議題的總覽、目標與流程圖填成一份可以直接投影的
|
||||
網頁。這一份是給**非技術的利害關係人**看的:他們不必讀完技術細節就知道這件事在做什麼。
|
||||
依 `references/artifact-contract.md` 從需求議題抽取結果組成 `schemaVersion: 1` JSON,
|
||||
執行 `node scripts/overview-render.js` 產生自包含 HTML 與 manifest。HTML 只給使用者檢視,
|
||||
不取代需求議題的詳細內容。若平台有 preview 能力就使用它;否則以短命 Node server
|
||||
服務 `.tmp/` 檔案供瀏覽器截圖。只有真正可用的 preview URL 才執行既有
|
||||
`node scripts/issue-update.js --overview-url <網址>`。
|
||||
產出 HTML 可委派;預覽截圖、附件上傳與任何 `issue-update` 寫回都不委派,由主流程
|
||||
執行並處理錯誤。
|
||||
|
||||
模板的佔位對應如下,樣式不要動——版面與內容分開,改一邊不必碰另一邊:
|
||||
|
||||
- `{{標題}}` 需求議題標題
|
||||
- `{{來源議題}}` 指回議題的連結
|
||||
- `{{總覽}}` 一句話總覽
|
||||
- `{{目標}}` 目標,逐條包成 `<li>`
|
||||
- `{{流程圖}}` 流程圖的 Mermaid 原始碼(**不含**圍欄,圍欄是議題 markdown 用的)
|
||||
- `{{工作包全景}}` 規劃階段還沒有工作包,**填空字串**;這一段由分析階段補上
|
||||
- `{{頁尾}}` 產生時間與產生者
|
||||
|
||||
若執行環境能把 HTML 發佈成可分享的網址,就發佈;不能的話存成檔案,把路徑當成網址用。
|
||||
|
||||
委派的是**產出那份 HTML**;拿到網址之後寫回議題那一步**不委派**(判準第四條)。
|
||||
|
||||
拿到網址後寫回議題:
|
||||
|
||||
```
|
||||
node scripts/issue-update.js --repo <owner/name> --index <編號> --overview-url <網址>
|
||||
```
|
||||
|
||||
它把連結以固定前綴寫成總覽段落裡的一行,**重跑時就地更新同一行**,不會長出第二個連結;
|
||||
議題原本的 markdown 白話總覽一字不動——網頁是補充,不是取代。連結旁會自動附上
|
||||
「此連結預設為私有,組織外無法開啟」,因為讀到的人多半會想轉寄給組織外的人。
|
||||
規劃階段沒有工作包,因此 `workPackages` 為空陣列,不產生工作包依賴圖。
|
||||
|
||||
### 9. 停錶並回報
|
||||
|
||||
@@ -173,22 +156,11 @@ node scripts/timer.js --repo <owner/name> --index <編號> --stop
|
||||
說明),回報照樣做完。
|
||||
|
||||
把議題編號與網址告訴使用者。不要把整份議題內容再貼一次 —— 連結點進去就看得到。
|
||||
|
||||
## 流程圖的限制
|
||||
|
||||
用 Mermaid 的 `flowchart`。節點數上限 **12**,每個節點的文字上限 **8 字**。
|
||||
|
||||
超過就拆成多張圖,或者乾脆不畫 —— 一張塞了二十個節點的圖,比沒有圖更難懂。
|
||||
|
||||
節點文字寫該步驟在做什麼,不要寫成編號或代號。
|
||||
|
||||
模板的 `{{流程圖}}` 要填入**完整的內容**,兩種形式擇一:
|
||||
|
||||
- 要畫:一個或多個完整的 ```mermaid 圍欄區塊。
|
||||
- 不畫:**只在超過上限拆不開、或畫了不會比文字更清楚時**才選這個,填一行說明為什麼不畫(例如「流程為單一直線,畫圖無助理解」),**不要加圍欄**。
|
||||
|
||||
圍欄寫在填入的內容裡而不是模板裡,否則不畫圖時會留下一個空的 mermaid 區塊,
|
||||
在議題頁上是一塊渲染失敗的紅字。
|
||||
流程圖的抽象節點與邊保存於 JSON,由 renderer 重新產生 SVG;議題若需要保存圖表,
|
||||
由同一個 renderer 產生 Mermaid。節點數超過 12 或文字超過 8 字時拆圖或記錄
|
||||
`omitted` 原因,不由模型任意壓縮語意。
|
||||
|
||||
## 邊界
|
||||
|
||||
@@ -198,3 +170,11 @@ node scripts/timer.js --repo <owner/name> --index <編號> --stop
|
||||
- 規劃階段本身已含問題釐清,因此寫入 Gitea 前不再設額外的確認點;`--dry-run` 就是那道關卡。
|
||||
- 計時只動這顆需求議題:在它上面起錶、在它上面停錶、把規劃時間補登在它上面。
|
||||
**不停別顆議題上的錶**,被別顆的錶擋下時交還給使用者決定,不繞過去。
|
||||
|
||||
## Artifact 產物規則
|
||||
|
||||
圖解總覽不再套用 HTML 模板或依賴 Mermaid CDN。若此階段需要產生預覽,
|
||||
先依 `references/artifact-contract.md` 組成需求級 JSON,再執行
|
||||
`node scripts/overview-render.js`。HTML、SVG 與 manifest 只寫入 `.tmp/`;
|
||||
只有真正可用的 preview URL 才能使用既有 `--overview-url` 回寫。規劃階段沒有
|
||||
工作包時,`workPackages` 必須是空陣列,工作包全景不產生。
|
||||
|
||||
Reference in New Issue
Block a user