| 項目 | 內容 |
|---|---|
| 緣由 | 量產 47 頁+拆分重整+wireframe+NAV 對齊產品選單全部完成後,user 下令:全站掃一遍正確性與內容 → 給修正建議 → 修正 OK 後做 skill 等收尾。這是「量產總驗收 gate」前的最後品管 |
| branch | main(不切 branch;working tree 目前乾淨——除 FR-046 的本機 docx/zip 不要碰) |
| 模型分配 | 主導/仲裁 = 本 session(Fable 或 Opus);逐頁掃描 = Sonnet subagent ×N 並行;機械驗證 = script 不用模型 |
| 接手前必讀 | 本檔全文 → .claude/skills/writing-feature-specs/SKILL.md(紅線與事實來源紀律的原典) |
| 預估 | 1 個 session(掃描並行 ~30-60 分鐘 + 仲裁修正) |
FR-047 spec 手冊(docs/specs/v1.8.0/,76 頁:67 內容頁+8 領域總覽+README)是給工程師的 living truth。量產期間多 session / 多 agent 並行產出,已知風險:agent 誤報與 schema drift(例:agent 說表叫 oscal.ssps 實際是 system_security_plans)、跨頁不一致(術語/數字/角色定義)、拆分重整後的引用殘影(hub↔︎子頁、退役頁)。本棒的任務是最後一次系統性品管:找出「spec 寫的 ≠ code/DB 實際」與「頁與頁互相矛盾」的地方,仲裁後修正,然後做收尾。
成敗關鍵不是掃得多,是仲裁得準——歷史上這類 audit 的 findings 有相當比例是誤報(見 §4 仲裁紀律的實際案例)。流程鐵則:掃描 agent 只報不改;每條 finding 主導開 code 復核後才准修。
scripts/deliverables/out/db_schema.json(表結構唯一真相)、out/routes.json(endpoint 唯一真相)add_resource 多路徑註冊會產生雙路徑條目——spec 只寫其中一條不是錯(曾有 agent 因此誤判 FAIL)cd ~/Projects/Billows/Audit-Manager/compliance-manager-be
# 1. build 全綠(含 NAV 覆蓋安全網:有「⚠️ nav 未涵蓋」即 FAIL)
python3 scripts/deliverables/render_html.py "docs/specs/v1.8.0" 2>&1 | grep -vE "^✅"
# 2. 敏感資訊 + 禁用語(應全為 0)
grep -rEln "192\.168\.|Billows@|password\s*=\s*[^<\s]" docs/specs/v1.8.0 --include="*.md" --include="*.svg" --include="*.dot" | grep -v html/
grep -rln "GRC 系統" docs/specs/v1.8.0 --include="*.md" | grep -v html/
grep -rlnE "質量|信息安全|服務器|數據庫" docs/specs/v1.8.0 --include="*.md" | grep -v html/ # 簡中殘留
# 3. 斷圖/引用資產未進版(python,兩者應為 0;注意 ../ 路徑要 normpath 再比對)
# 掃所有 md 的 :目標檔存在?git ls-files 有追蹤?
# 4. 粗體殘留(掃 build 出的 html main content、排除 pre/code 與 svg text,應為 0)
# 5. wireframe 覆蓋:67 內容頁每頁至少 1 處 "wireframe"(應 67/67)
# 6. 內部 .md 連結有效性:掃所有 [text](xxx.md#anchor),目標檔存在+(有 # 時)從 build 出的
# html 反查 anchor id 存在(曾修過 slug 帶數字前綴、/→-- 的坑)第 3/4/5/6 條的 python 檢查邏輯在前次協調 session 都寫過(tracker「協調收口」列有紀錄),照寫即可。全綠才進 §2;有紅先修機械層。
| Agent | 範圍 | 頁數 |
|---|---|---|
| 1 | project-management/ 全部 | 17 |
| 2 | audit-execution/ 全部 | 8 |
| 3 | evidence/ 全部 | 10 |
| 4 | compliance-framework/ 全部 | 9 |
| 5 | system-admin/(tenant/dept/user 群/role+menu/is/device/background) | 10 |
| 6 | system-admin/(smtp/notify/ldap/user-log/issue-integrate/tool-plugin)+auth/ 3 | 9 |
| 7 | survey/ 4+collab/ 3 | 7 |
| 8 | reporting/ 3+shared-components/ 1+README | 5 |
| 9 | 跨頁一致性專職(見下) | 全站橫切 |
對認領的每一頁:
out/routes.json:method+path 存在?(注意 §0 自檢 3 的雙路徑 artifact——routes 有而 spec 無的,先確認不是同 Resource 的別名路徑再報)out/db_schema.json:schema 前綴(compliance/oscal/public/survey)、欄名、型別common/code/*_error_code.py 或 jedi-* 套件內(EC_/AUTH_/LOGIN_/SURVEY_ 前綴各有家)~/Projects/Billows/Audit-Manager/compliance-manager-fe/src/)_overview §N 引用的節真的在講那件事| 頁面 | 節 | 嚴重度(A事實錯誤/B不一致/C風格) | spec 宣稱 | 實際(含證據路徑:行號) | 建議修法 |
agent 鐵則(寫進每個 dispatch prompt):只讀不寫;不 spawn 子代理;不跑 render_html;查無不代表錯——找不到證據就標「待仲裁」而非 FAIL;每頁最多花 10 分鐘,超過就記「本頁未完成核實」。
_overview 一份,各頁只速覽+引用——抓「頁內自建定義」project-settings、notify-smtp-config、evidence-classification-reports 不應再被任何頁引用docs/system-design/*/tbls/ 文件 drift(以 db_schema.json 為準,不是 spec 錯);死碼 error code(如 SURVEY_409003)被當成「spec 漏寫行為」;FE 死檔(UserForm.vue,live 是 UserMTRBACForm)public.ui_routes)、樹=畫面容器關係(NAV 遞迴巢狀)、跨群 ↺ 重複掛、檔案路徑與 NAV 解耦(新頁 = 檔案進功能群資料夾 + NAV_STRUCTURE 掛對位置)feedback_*.md+MEMORY.md 索引請執行 FR-047 全站終驗。先讀
docs/features/FR-047-2607-feature-spec-handbook/handoff/2026-07-06-final-audit-handoff.md
全文,答完 §0 冷接自檢再動手。流程:§1 機械驗證(script 自跑)→ §2 Sonnet ×9 並行逐頁核實
(agent 只報不改,findings 表格格式回報)→ §3 逐條仲裁(先套已知誤報模式)→ CONFIRMED 修正
按群 commit → §4 收尾(skill 更新+tracker;其餘等我下令)。
不切 branch、顯式 git add、push 等我指示。