[ { "addedAt": "2026/08/07 16:47:53", "prNumber": 4, "reviewer": "Bard", "severity": "警告", "file": "readme.md", "startLine": 3, "endLine": 3, "problem": "這份 README 已經長成機械化的 API 編目,還把時間戳與大量硬編碼連結一起寫進來,讓主文件變得又厚又脆,讀者很難快速抓到重點。", "reason": "此專案的 README 本身就是生成式 API 參考文件,維持完整索引與連結有助於內部使用,屬於文件取捨而非功能性缺陷。" }, { "location": "src/main.js:59", "role": "Bard", "original_finding": "刪掉這種會隨流程變動而失真的數量型描述;若真要提醒收尾差異,改成更穩定的概念性說明即可。", "reason": "AI 對話收斂判定為誤報(問題在最新程式碼中不成立或不適用)" }, { "location": "entrypoint.sh:2", "role": "Bard", "original_finding": "移除這種會過期的時間戳註解,只保留真正需要提醒讀者的簡短說明即可。", "reason": "AI 對話收斂判定為誤報(問題在最新程式碼中不成立或不適用)" }, { "addedAt": "2026/08/07 16:39:03", "prNumber": null, "reviewer": "Assassin", "severity": "警告", "file": "action.yml", "startLine": 14, "endLine": 14, "problem": "action.yml 中新增的 inputs.model 沒有在 GitHub Actions 層面進行輸入驗證。雖然描述寫著「僅允許英數字、點、底線與連字號」,但使用者可以提供任意字符,這些值會先進入環境變數,再由程式端驗證。", "reason": "GitHub / Gitea 的 action schema 不提供字串輸入的正則驗證;本專案已在程式端做完整驗證,action.yml 無法再向前移到平台層。" }, { "addedAt": "2026/08/07 16:39:03", "prNumber": null, "reviewer": "Bard", "severity": "警告", "file": "readme.md", "startLine": 1, "endLine": 1, "problem": "新文件採用小寫 readme.md,和倉庫中常見的 README.md 命名慣例不合。", "reason": "這個檔名是現有專案慣例的一部分,直接改名會牽動大量內部連結與生成內容,屬於文件命名取捨。" }, { "addedAt": "2026/08/07 16:39:03", "prNumber": null, "reviewer": "Mage", "severity": "警告", "file": "src/findings.js", "startLine": 658, "endLine": 658, "problem": "applyExclusions 的比對邏輯在 (locationMatches && roleMatches && (textMatches || ...)) 中,若排除規則只指定 filePath 不指定 role,會產生「該檔案內所有角色的問題都被排除」的非預期行為;若只指定 role 不指定 filePath,則「該角色所有檔案的問題都被排除」。此為對稱性缺陷", "reason": "此處的排除規則刻意把 filePath / role 當成可獨立放寬的過濾條件,讓已知誤報可以用較粗粒度收斂;行為與設計一致。" }, { "addedAt": "2026/08/07 16:39:03", "prNumber": null, "reviewer": "Mage", "severity": "建議", "file": "src/resolve.js", "startLine": 84, "endLine": 84, "problem": "groupConversations 在設置 botFinding 時用 botFindings[0],若該對話的 botFindings 陣列為空,botFinding 會為 undefined。", "reason": "程式已將 botFinding 以 null 初始化,且下游邏輯以 botFindings 陣列為主要資料來源;此為相容舊邏輯的保守設計。" } ]