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

2.1 KiB
Raw Permalink Blame History

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:

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。