Commit Graph
2 Commits
Author SHA1 Message Date
jiantw83 f6cd1f9ef7 feat(api-doc): 範例只掛純量成員,類別型往下遞迴
- 使用者要求改判準。類別型參數與中間層的類別屬性只留說明,範例責任往下推給屬性,一路走到最內層的純量。
- 一個值只有一個出處。範例掛在父層,屬性一改就過期,讀的人拿到的是沒有屬性定義背書的一份資料。
- 集合看元素型別,不看外殼;字典看值型別。字串集合與字串判出來一樣,位址集合與位址判出來也一樣。
- 壞味道清單原本寫「輸入與輸出參數都必須有範例」,與新判準衝突,兩支技能會對同一段程式碼給出不同標準。一併改成同一套。
- 說明與範例的兩份檢核表併成一個 sub agent,同一批資料模型檔只讀一次。
- 順帶補上偵測腳本結束碼二漏掉的一個原因:環境缺 grep。原本只寫參數與路徑,遇到這個原因換路徑重跑永遠清不掉。
2026-08-31 11:07:05 +08:00
jiantw83 dfaa66feda feat(api-doc): 新增 API 文件稽核技能
What:新增 skills/api-doc/SKILL.md。六步流程:偵測 Swagger 支援、不支援就回報
並停手、列出稽核範圍、分三個面向各開一個 sub agent 稽核、彙整去重排序、回報
發現。三個面向分別是狀態碼的回覆類型、參數說明與範例、資料模型遞迴。本技能
只回報「檔案:行號」、嚴重度與建議修法,不改程式碼。

Why:支援 Swagger 的專案要把控制器文件補全:所有可能出現的狀態碼都宣告回覆
類型,輸入輸出都要有說明與真實資料範例,參數是資料模型就每個屬性都套用、內含
模型再往下遞迴。這是 code-review 六組沒碰過的領域,跟第 5 組的原始碼註解契約
也不是同一件事,所以獨立成一支技能,不塞進既有的六組裡。

How:第一步跑 tools/swagger-detect.sh,讀結束碼決定走下去還是停手,不支援時
一個 sub agent 都不開,直接回報未啟用。範例優先取專案的真實資料,資料庫、
種子資料、測試夾具都算;真的取不到才依邏輯推導,並在文件裡標上「推導值」,
讓後面讀的人知道這個值沒被觀察過。取自資料庫的範例一律去識別化,個人資料不
進 Swagger 文件。分工另立一節:本技能只管 Swagger 文件屬性,原始碼註解契約
歸 code-review 第 5 組,同一個缺失不會被回報兩次。

Who:jsc-review 新增的 api-doc 技能,由 jsc-sdlc 的 implement 收尾時呼叫。
2026-08-27 15:41:38 +08:00