sync #46
@@ -56,6 +56,7 @@ description: 先判斷專案語言,再為每個 function 與每個指令檔(
|
|||||||
- 原指令檔的每一行有效指令之間必須換行,且每行都要有對應的註解說明,解釋這行在做什麼、為何需要、重要參數或副作用。
|
- 原指令檔的每一行有效指令之間必須換行,且每行都要有對應的註解說明,解釋這行在做什麼、為何需要、重要參數或副作用。
|
||||||
- 註解符號必須符合該檔案類型:`*.sh`/`*.bash`/`*.ps1`/Makefile/yaml/Dockerfile 用 `#`;`*.bat`/`*.cmd` 用 `REM` 或 `::`。若該行語法不允許行尾註解(例如某些 yaml 值),改用該行上方獨立一行註解。
|
- 註解符號必須符合該檔案類型:`*.sh`/`*.bash`/`*.ps1`/Makefile/yaml/Dockerfile 用 `#`;`*.bat`/`*.cmd` 用 `REM` 或 `::`。若該行語法不允許行尾註解(例如某些 yaml 值),改用該行上方獨立一行註解。
|
||||||
- 必須保留原始指令的實際行為與順序,只新增註解與開頭用途/日期區塊,不得變更指令邏輯;若發現原指令可能有問題,於草稿中以註解標註「需人工確認」,不要逕自修改。
|
- 必須保留原始指令的實際行為與順序,只新增註解與開頭用途/日期區塊,不得變更指令邏輯;若發現原指令可能有問題,於草稿中以註解標註「需人工確認」,不要逕自修改。
|
||||||
|
- 唯一例外是第 6 步定義的「輸出訊息格式/區塊階段命名/一行一則」正規化:可移除印出區塊橫幅的輸出指令、把區塊名稱併入該段每行訊息前綴、並統一訊息格式。此類調整只動「訊息呈現方式」,不得改變訊息反映的實際行為或判斷邏輯,且開頭用途/更新日期標頭必須保留。草稿即應呈現正規化後的最終樣貌。
|
||||||
|
|
||||||
## 第 4 步:草稿品質檢查
|
## 第 4 步:草稿品質檢查
|
||||||
|
|
||||||
@@ -83,9 +84,12 @@ description: 先判斷專案語言,再為每個 function 與每個指令檔(
|
|||||||
- 指令檔草稿:用草稿內容**覆蓋原始指令檔**(草稿已是含用途/日期/逐行註解的完整版本)。
|
- 指令檔草稿:用草稿內容**覆蓋原始指令檔**(草稿已是含用途/日期/逐行註解的完整版本)。
|
||||||
- 若選「逐個草稿實作」,每完成一個就回報並等待使用者確認。
|
- 若選「逐個草稿實作」,每完成一個就回報並等待使用者確認。
|
||||||
- 若遇到大量目標,仍要分批持續處理,不要只做示範。若 token 或時間不足,先完成已列入 index 的批次,並在 `.docs/doc-funcs-index.md` 標記 pending。
|
- 若遇到大量目標,仍要分批持續處理,不要只做示範。若 token 或時間不足,先完成已列入 index 的批次,並在 `.docs/doc-funcs-index.md` 標記 pending。
|
||||||
- 輸出訊息格式:若該 function 有輸出訊息(例如 log、console 輸出、回傳給使用者的提示訊息),訊息格式必須統一為 `[{階段(英文名稱)?}][{等級:INF/WRN/ERR/TRC/DBG}][{時間}]: {訊息}`。其中 `階段` 為選填(英文名稱,無對應階段時可省略整個 `[{階段}]` 區塊);`等級` 必須是 `INF`/`WRN`/`ERR`/`TRC`/`DBG` 其中之一;`時間` 使用台灣時區(Asia/Taipei)。調整輸出訊息格式時僅限本次被文件化的原始碼,且不得改變訊息所反映的實際行為或判斷邏輯。
|
- 輸出訊息格式:若該 function 或指令檔有輸出訊息(例如 log、console 輸出、echo、回傳給使用者的提示訊息),訊息格式必須統一為 `[{階段}?][{等級:INF/WRN/ERR/TRC/DBG}][{時間}]: {訊息}`。其中 `階段` 為選填(沿用該訊息所屬區塊的原始名稱、保留原文不翻譯,例如中文區塊名就用中文;無對應階段時省略整個 `[{階段}]` 區塊);`等級` 必須是 `INF`/`WRN`/`ERR`/`TRC`/`DBG` 其中之一;`時間` 使用台灣時區(Asia/Taipei)。調整輸出訊息格式僅限本次被文件化的原始碼或被覆蓋的指令檔,且不得改變訊息所反映的實際行為或判斷邏輯。
|
||||||
- 區塊內 log 的階段命名:若被調整格式的 log 被包在某個有名稱的區塊內(例如 `#region 名稱`/`#endregion`、或其他帶名稱的包裹結構),必須將該區塊名稱作為該 log 的 `階段` 名稱(轉為英文名稱),套用完成後移除該包裹區塊本身(僅移除區塊的標記與包裹,保留區塊內原有的指令與行為)。
|
- 區塊內 log 的階段命名:若被調整格式的 log 被包在某個有名稱的區塊內,必須將該區塊名稱作為該 log 的 `階段` 名稱(沿用原始名稱、保留原文不翻譯),套用完成後移除標示該區塊的包裹/標題本身(僅移除標記與包裹,保留區塊內原有的指令與行為)。有名稱的區塊包含但不限於:
|
||||||
- 一行一則訊息:每一則輸出訊息都必須是獨立的單行輸出指令,一則訊息對應一行;不得用任何區塊(例如多行字串、字串拼接累積成一坨、迴圈外層包住整段訊息的結構)把多則訊息包成一個輸出。原本被包成一坨輸出的多則訊息,必須拆成逐行、逐則的輸出,且每則仍套用上述統一訊息格式。
|
- 原始碼:`#region 名稱`/`#endregion`、或其他帶名稱的包裹結構。
|
||||||
|
- 指令檔:以「印出分隔線+區塊標題+分隔線」這種橫幅(banner)方式宣告的段落(例如先 echo `====`、再 echo 區塊名稱、再 echo `----`)。此時橫幅顯示的標題即為該段所有 log 的 `階段` 名稱,且必須移除這幾行印出橫幅的輸出指令,改成把 `階段` 名稱併進該段每一行訊息的前綴。
|
||||||
|
- 例外:指令檔開頭「用途/更新日期」的檔案說明標頭(含其外框分隔線)屬於檔案標頭、不是階段區塊,必須原樣保留,不可被移除或轉成 `階段` 前綴。
|
||||||
|
- 一行一則訊息:每一則輸出訊息(原始碼或指令檔皆適用)都必須是獨立的單行輸出指令,一則訊息對應一行;不得用任何區塊(例如多行字串、字串拼接累積成一坨、迴圈外層包住整段訊息的結構)把多則訊息包成一個輸出。原本被包成一坨輸出的多則訊息,必須拆成逐行、逐則的輸出,且每則仍套用上述統一訊息格式。
|
||||||
|
|
||||||
## 第 7 步:實作註解後,優化被文件化原始碼的效能與排版
|
## 第 7 步:實作註解後,優化被文件化原始碼的效能與排版
|
||||||
|
|
||||||
@@ -145,7 +149,7 @@ README 錨點檢查通過後,刪除本次產生的所有草稿與索引:`.do
|
|||||||
- 不要新增與文件無關的 helper、測試或重構。
|
- 不要新增與文件無關的 helper、測試或重構。
|
||||||
- 草稿是實作依據,不能跳過;所有草稿一律由 subagent 產生。
|
- 草稿是實作依據,不能跳過;所有草稿一律由 subagent 產生。
|
||||||
- function 註解步驟不得為了文件改變 runtime 行為;效能優化僅限第 7 步、僅限本次被文件化原始碼,且必須保持對外行為等價並驗證。
|
- function 註解步驟不得為了文件改變 runtime 行為;效能優化僅限第 7 步、僅限本次被文件化原始碼,且必須保持對外行為等價並驗證。
|
||||||
- 指令檔草稿只新增註解與開頭用途/日期區塊,不得變更指令邏輯;指令檔開頭的用途與更新日期必須包在同一個註解區塊內。
|
- 指令檔草稿只新增註解與開頭用途/日期區塊,不得變更指令邏輯;唯一例外是第 6 步的輸出訊息格式正規化(可移除區塊橫幅、把區塊名稱併入每行前綴、統一訊息格式),但不得改變訊息反映的實際行為,且開頭用途/更新日期標頭必須保留。指令檔開頭的用途與更新日期必須包在同一個註解區塊內。
|
||||||
- function 若有輸出訊息,訊息格式必須統一為 `[{階段(英文名稱)?}][{等級:INF/WRN/ERR/TRC/DBG}][{時間}]: {訊息}`(`階段` 選填、`等級` 限 `INF`/`WRN`/`ERR`/`TRC`/`DBG`、`時間` 用 Asia/Taipei 時區),且不得藉此改變訊息反映的實際行為。若該 log 被包在有名稱的區塊內,須將區塊名稱當作 `階段` 名稱後移除該包裹區塊,且僅移除包裹、保留區塊內原有指令與行為。每則訊息必須一行一則、各自為獨立的單行輸出指令,不得用區塊或字串拼接把多則訊息包成一坨輸出。
|
- function 或指令檔若有輸出訊息,訊息格式必須統一為 `[{階段}?][{等級:INF/WRN/ERR/TRC/DBG}][{時間}]: {訊息}`(`階段` 選填、沿用所屬區塊原始名稱並保留原文不翻譯、`等級` 限 `INF`/`WRN`/`ERR`/`TRC`/`DBG`、`時間` 用 Asia/Taipei 時區),且不得藉此改變訊息反映的實際行為。若該 log 被包在有名稱的區塊內(含指令檔以分隔線+標題+分隔線宣告的橫幅段落),須將區塊名稱當作 `階段` 名稱後移除該包裹/橫幅,且僅移除包裹、保留區塊內原有指令與行為;但開頭用途/更新日期標頭不算階段區塊,必須保留。每則訊息必須一行一則、各自為獨立的單行輸出指令,不得用區塊或字串拼接把多則訊息包成一坨輸出。
|
||||||
- 若 function 或指令行為無法可靠推論,文件中要保守描述並標註不確定點,不要編造。
|
- 若 function 或指令行為無法可靠推論,文件中要保守描述並標註不確定點,不要編造。
|
||||||
- 原始碼註解與 README 盡量使用繁體中文;專有名詞、API 名稱、型別名稱與程式碼範例可保留英文。
|
- 原始碼註解與 README 盡量使用繁體中文;專有名詞、API 名稱、型別名稱與程式碼範例可保留英文。
|
||||||
|
|||||||
Reference in New Issue
Block a user