Files
sdlc/references/cpm-chart.md
jiantw83andClaude Opus 5 78fb70a099 fix(references): 修正 cpm-chart 的簡體字並同步 manifest 版本
What: 把 references/cpm-chart.md 第 14 行的「出现」改成正體「出現」,
並把三份 manifest 的版本由 0.1.7 bump 到 0.1.8。

Why: 存取庫文件一律用正體中文,簡體字會被 STE100 語言檢查擋下,也讓讀規則
的人分心。技能內容有異動就要 bump 版本,安裝端才拿得到新版。

How: 只換掉那一個字,句子其餘文意不動。接著跑 ste100-lint.sh 掃全庫的 .md、
.json 與程式碼檔,再用簡體字全表、U+FFFD、雙重編碼特徵與非 UTF-8 四項掃過每個
受版控的檔案,兩輪都零命中。最後用 sync-skill-manifest.sh 同步 plugin.json、
.claude-plugin/plugin.json、.codex-plugin/plugin.json。

Who: Jeffery

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-27 09:40:47 +08:00

34 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CPM 甘特圖畫法
`analyze` 步驟 8 畫關鍵路徑圖時,一律照本檔語法;不得自行發明日期算法。
## 事故
`dateFormat X`(Unix 時間戳)配上天數換算出的小數(例:`1.3`、`5.0`)會讓 Gitea 的 mermaid 渲染器丟出 `Invalid date:5.0`,整張圖不顯示。原因是 `X` 格式的日期權杖只吃整數,小數的整數部分之外還剩零頭,解析失敗;即使剩的零頭是 `.0`,字串比對也對不上,一樣判定無效。**小數與 `dateFormat X` 不能同框,沒有例外。**
## 規則
1. **`dateFormat` 固定用 `YYYY-MM-DD`,不用 `X`。** 第一個工作包給一個任意錨點日期(例如 `2000-01-01`),註明「錨點日期非真實排程,只用於相對呈現」。
2. **每個工作包一個 `id`**,格式 `wp01`、`wp02`……跟編號對應,全小寫、不帶連字號(mermaid id 不吃 `-`)。
3. **時長一律用整數小時 `{h}h`,直接取 WBS 表的工時(h) 欄位**,不得把工時換算成天數小數再填進圖裡。天數換算只留在標題與 WBS 表文字,圖本身不出現小數。
4. **除了第一個工作包,其餘一律用 `after {上一個id}`** 串接,不手算累積日期。少算或算錯只會出現在這一步,串接法直接消掉這類錯誤。
5. 關鍵路徑上的工作包標 `crit`;候補(非關鍵路徑)不進這張圖,只留在 WBS 表與候補清單文字。
## 範本
關鍵路徑 `WP-02 → WP-05 → WP-09`,工時依序 10h、13h、8h:
```mermaid
gantt
title 關鍵路徑(單位:小時;錨點日期非真實排程,僅供相對呈現)
dateFormat YYYY-MM-DD
axisFormat %m-%d %H:%M
section 關鍵路徑
WP-02 {名稱} :crit, wp02, 2000-01-01, 10h
WP-05 {名稱} :crit, wp05, after wp02, 13h
WP-09 {名稱} :crit, wp09, after wp05, 8h
```
- 總天數(`= 總工時 / 8`,四捨五入到小數點後 1 位)寫進標題旁的文字或圖下方一行,不進圖本身。
- 完成條件:圖裡每個時長都是整數加 `h`,沒有任何小數;每個工作包都有 `id`;除第一個外全部用 `after`。