FR-047 功能 SPEC 手冊 — 量產進度控管表(集中狀態管理)

使用規則:每完成一個頁面 spec 必須更新本表(狀態 / commit / 日期 / 模型);每個 session 收尾更新「Session 紀錄」。 狀態值:⬜ 未開始 / 🚧 撰寫中 / 🔍 待驗證(route 存廢或歸屬待確認)/ ✅ 完成 / 🛑 等 user gate SOP:writing-feature-specs skill(含 13 節模板 / 事實來源紀律 / build 驗證);範本 = project-planning.md 頁面清單來源:2026-07-05 實掃 FE src/config/router/index.js(110 條 route 去重合併:-round/-ap legacy 變體、多步匯入精靈、form 子頁併入母頁 spec) 姊妹表(已知坑處理):全站 spec §12「邊界情況與已知坑」508 條的定調 / 修復銷帳不在本表,唯一追蹤表 → docs/analysis/2026-07-07-known-pits-remediation-tracker.md(本表只管 spec 頁面量產進度,坑的處理狀態一律看那份)

§1

產出原則

  • 一個 spec = 一條使用者頁面 route(變體 / 精靈步驟 / form 子頁併入)
  • 每群先寫 _overview.md(頁面地圖 / 共用狀態機 / 角色 / 核心資料模型)再放量頁面
  • 模型:核心流程頁 = Opus(業務綜合)、管理 / 設定 / 列表頁 = Sonnet(結構抽取)
  • 🔍 標記的頁面:執行者先驗證 route 是否 live(FE 選單 / public.ui_routes enable=1)、歸屬是否正確,死 route 回報本表除名,不要硬寫
§2

Wave 1 — 稽核主流程(價值最高,Opus 為主)

專案管理(project-management/)

頁面 route(含變體) 模型 狀態 Commit 日期
_overview main 26b12e43 起多輪 2026-07-05
專案規劃頁 project-planning(-round/-ap) main ✅ pilot(§5 實機截圖完成,STG 亮色,帳號 blsit / 專案「回饋整合設定」) 674d7de0 2026-07-05
專案列表頁 project-list Sonnet ✅(§5 截圖完成) 83fce5ac, a91fbf95 2026-07-05
專案建立 project-create Opus ✅(§5 截圖完成) 83fce5ac, a91fbf95 2026-07-05
專案總覽頁 project-auditor-overview(-round/-ap) Opus ✅(§5 截圖完成) 83fce5ac, a91fbf95 2026-07-05
專案儀表板 project-dashboard Sonnet ✅(§5 截圖完成;全域落地頁,非 per-project 總覽;§12 記錄 2 處已驗失效 UI) f0c8cdef, a91fbf95 2026-07-05
稽核輪次清單 project-ap-list Sonnet ✅(§5 截圖 1/2,pending_reverify 狀態 STG 無資料缺 1 張) f0c8cdef, a91fbf95 2026-07-05
專案設定 project-settings Sonnet ✅(§5 截圖完成;§12 記錄 PUT 無角色守門安全缺口;截圖順帶發現參與人員 tab 顯示 uid 非暱稱 bug,已另開 task) f0c8cdef, a91fbf95 2026-07-05
任務配置頁 project-task-setup(-ap) ❌ 除名(已驗死 route:FE 0 個 nav 進入點,功能 FR-038 併入專案規劃頁任務面板;router 條目為孤兒) 2026-07-05

FR-047 規劃頁 hub 拆分(2026-07-06,未 commit)——project-planning.md 由 699 行單頁改造成 hub 導航頁(266 行),重功能拆 4 子頁 + FlowPhaseBanner 抽共用元件:

頁面 route / 定位 模型 狀態 Commit 日期
專案規劃頁(hub) project-planning(-round/-ap) main ✅ hub 改造(13 節頁級化 + §5 hub wireframe + 六 Tab 對照;子頁連結) 未 commit 2026-07-06
現況編輯與程序書 planning-status main ✅ 新頁(現況#1/程序書#2/節點參與人員#13;UC-01/05/08;wireframe) 未 commit 2026-07-06
AO 任務配置與啟動 project-task-edit main ✅ 擴充(改題 Task Config;補快速配置#5/開始執行#6/UC-PP-02;wireframe;坑:快速配置清空關聯) 未 commit 2026-07-06
批次維護 planning-batch-ops main ✅ 新頁(#7~#10;匯入三步×2 field-level + Excel 樣板欄位;文件匯出 6 格式;wireframe) 未 commit 2026-07-06
基本資訊與參與人員 planning-basic-info main ✅ 新頁(Tab2/3 合一;PUT /grc/project;坑 1 無角色守門安全 finding;wireframe) 未 commit 2026-07-06

搬運複核抓到原 planning §3/§10 error code stale:階段角色 GRC_403009→實際 GRC_403050、前置 GRC_412035→實際 GRC_412021、現況 GRC_403031→實際走 GRC_403051(皆已於子頁修正)。待辦 follow-up(等 user wireframe sweep 收斂再做,避免並行 clobber):① 全站 grep 修指向舊 project-planning.md# 錨點(project-overview.md:267 #93-);② audit-review / ap-authoring / poam / project-overview 的 FlowPhaseBanner 重複描述改引用 shared-components/flow-phase-banner.md(該頁 §1.2 已列使用頁)。

共用元件(shared-components/)

頁面 定位 模型 狀態 Commit 日期
階段推進橫幅 flow-phase-banner main ✅ 新頁(跨生命週期共用元件;§6.5 stage info/advance;stage_objects;wireframe;§1.2 列 5 使用頁) 未 commit 2026-07-06

稽核執行(audit-execution/)

頁面 route 模型 狀態 Commit 日期
_overview Opus 2026-07-05
稽核計畫填寫頁 project-ap-authoring-round Opus ✅(§5 截圖 3/4,DOCX 匯入需 audit_planning 階段資料缺) 75fbdef6 2026-07-05
稽核執行頁(AR 判定) project-audit-review-round Opus ✅(§5 截圖完成 5/5) 75fbdef6 2026-07-05
POA&M 矯正頁 project-poam-round Opus ✅(§5 截圖 1/4,STG 全庫無 POA&M 資料) 25c3420f, 75fbdef6 2026-07-05
我的任務(受稽方執行) project-my-tasks Opus ✅(§5 截圖 2/4,批次完成需已上傳證據任務缺) 1d923a4c, 75fbdef6 2026-07-05
我的稽核 project-my-audits Sonnet ✅(§5 截圖 2/3,逾期標籤需輪次起訖日期缺) 9edea842, 75fbdef6 2026-07-05
任務執行 / 檢視 workflow-setup / workflow-view 🔀 除名(非本群):live 的 BPMN 範本編輯/檢視(?id=workflow_template_uid,由 ModuleFrame/規劃頁 task-setup 導向),歸 Wave 2 合規框架與 SSP 群 flow-template-* 同族 2026-07-05
§3

Wave 2 — 合規資產與證據

合規框架與 SSP(compliance-framework/)

頁面 route 模型 狀態 Commit 日期
_overview Opus bba1e08d 2026-07-05
合規框架管理 compliance-framework-manage / version-manage Opus ✅(欠 §5 截圖) d5eddff9 2026-07-05
框架版本匯入 / 編輯 compliance-framework-import-version / version-edit Sonnet ✅(欠 §5 截圖) 3fdcec1b 2026-07-05
範本管理(ModuleFrame) module-frame / -items / -template-edit Opus ✅(欠 §5 截圖) 46a69ea3 2026-07-05
範本匯入精靈(docx / excel) module-frame-import-*(5 條合一) Sonnet ✅(欠 §5 截圖) 9a5bcbbe 2026-07-05
SSP docx 匯入 / 更新 project-ssp-import-docx Sonnet ✅(欠 §5 截圖) 9a5bcbbe 2026-07-05
BPMN 稽核範本管理 flow-template-manage / -create / -edit Opus ✅(欠 §5 截圖) ccfd588b 2026-07-05

證據管理(evidence/)

頁面 route 模型 狀態 Commit 日期
_overview Opus 1a3fdb66 2026-07-05
證據分類覆核 evidence-classification-review Opus ✅(欠 §5 截圖) 8b9c1fa5 2026-07-05
分類報表(驗證 / 裁決) evidence-classification-report-validation / -adjudication Sonnet ✅(欠 §5 截圖) 0caf4a53 2026-07-05
雲端整合(Drive) cloud-integrations Sonnet ✅(欠 §5 截圖) 3f86d320 2026-07-05
檔案 Agent 管理 remote-agent-manage Sonnet ✅(欠 §5 截圖) fc7e33ae 2026-07-05
儲存設定 storage-config Sonnet ✅(欠 §5 截圖) c0c8d00b 2026-07-05

問卷(survey/)

頁面 route 模型 狀態 Commit 日期
_overview Sonnet d9e16dec 2026-07-05
問卷管理 survey-v2-manage Sonnet ✅(欠 §5 截圖) 84f9569d 2026-07-05
問卷設計器 survey-v2-designer Opus ✅(欠 §5 截圖) c206faa7 2026-07-05
問卷填寫 / 預覽 survey-v2-fill / -preview Sonnet ✅(欠 §5 截圖) (本次) 2026-07-05
§4

Wave 3 — 報表、協作與系統管理(Sonnet 為主)

報表與儀表板(reporting/)

頁面 route 模型 狀態 Commit 日期
_overview Sonnet 849318b7 2026-07-05
專案摘要報表 project-summary-report / -tab-view / -history Opus ✅(欠 §5 截圖) afa14805 2026-07-05
AI 儀表板 ai-dashboard Sonnet ✅(欠 §5 截圖) (本次) 2026-07-05
客製儀表板編輯 customer-dashboard-editor ❌ 除名(已驗死:ui_routes enable=0 選單停用、DashboardEditor.vue 為 vue-grid-layout demo(TodoCard/BarStatsCard/PeiStatsCard 假卡)、無 API / 無持久化、template 留有未完成 item.h"npm typo;未完成 scaffold 非功能頁) 2026-07-05
分析頁 analysis ❌ 除名(已驗死:ui_routes 無此列、FE 0 個 nav 進入點、ThreatAnalysis.vue 為 Sigma.js 硬編範例 demo(John/Mary/Sushis…)、無 API 呼叫;scaffolding 殘留非功能頁) 2026-07-05

認證(auth/)

頁面 route 模型 狀態 Commit 日期
_overview Sonnet 4f5e08f9 2026-07-05
登入(含 MFA OTP) login / otp-verify Opus ✅(欠 §5 截圖) 9156038f 2026-07-05
忘記密碼 / 重設密碼 forget-password / reset-password Sonnet ✅(欠 §5 截圖) (本次) 2026-07-05

協作(collab/)

頁面 route 模型 狀態 Commit 日期
公告管理(manage+form) bulletin-manage / -form Sonnet ✅(欠 §5 截圖) 9f57cc84 2026-07-05
公告檢視(list+view+user-guide) bulletin-list / -view / -user-guide Sonnet ✅(欠 §5 截圖) cf26f3b1 2026-07-05
回饋管理(系統 / 巡檢) system-feedback-* / cruising-feedback-*(8 條合一) Sonnet ✅(欠 §5 截圖;巡檢停用+會炸 BE,見 §12) c38d3309 2026-07-05

系統管理(system-admin/)

頁面 route 模型 狀態 Commit 日期
_overview Opus ✅(Opus 自寫:三層 RBAC + 組織模型 + system_configs 慣例) (本次) 2026-07-05
使用者管理 user-manage / user-form Sonnet ✅(欠 §5 截圖;live=UserMTRBACForm,UserForm.vue 死碼;§12 寫入端點僅 JWT) 44e5ca10 2026-07-05
角色權限管理 role-manage / role-form Opus ✅(欠 §5 截圖;§12 系統角色/平台能力僅 FE 保護、能力全量取代) (本次) 2026-07-05
選單管理 system-menu-manage Sonnet ✅(欠 §5 截圖;jedi-system-menu 套件;別混 ui_routes) 9f02f316 2026-07-05
部門管理 department-manage Sonnet ✅(欠 §5 截圖;§12 path/cascade 待驗證) 1f0b06ae 2026-07-05
租戶管理 tenant-manage Sonnet ✅(欠 §5 截圖;新增連帶 seed 部門/角色;§12 cascade/FK) 0c049ea7 2026-07-05
設備管理 device-manage Sonnet ✅(欠 §5 截圖;§12 delete 無 BE 擁有者/角色守門) d1ba1d9a 2026-07-05
資訊系統盤點 information-system-manage Sonnet ✅(欠 §5 截圖;FIPS-199 C/I/A 自動算;§12 軟刪/enum 漂移) 58cc1c6c 2026-07-05
通知 / SMTP 設定 notify-config / smtp-config(-manage) Sonnet ✅(欠 §5 截圖;system_configs NOTIFY_CONFIG/SMTP;§12 mail/test 無守門) 4e5085d0 2026-07-05
LDAP 設定 ldap-config Sonnet ✅(欠 §5 截圖;group=THIRD_PARTY_LOGIN/LDAP) fa218d1d 2026-07-05
議題整合設定 issue-integrate-config Sonnet ✅(欠 §5 截圖;§12 HIDDEN_SECRET 漏遮罩 token / issue_service copy-paste bug) ce4ef268 2026-07-05
工具外掛管理 tool-plugin-manage Opus ✅(🔍 驗 live=enable=1;查出前端 mock 占位頁、無後端/持久化) 384f7f3b 2026-07-05
掃描設定檔管理 detection-profile-manage —(FR-059 新頁隨案補寫) ✅(欠 §5 截圖;FR-059 檢測 Profile 庫雙軌管理頁;§12 公用版新增無 FE 入口、update capability 預留孤兒、只在 DEV) (未 commit) 2026-08-01
Log 轉發設定 log-forwarding —(FR-068 新頁隨案補寫) ✅(欠 §5 截圖;FR-068 系統 log 轉發;三端點皆有 capability 守門=本群少數;§12 測試用已存設定/UDP 不保證送達/遮罩為預留位/STG-POC 未套 migration) (未 commit) 2026-08-27
操作日誌 user-log Sonnet ✅(欠 §5 截圖;只查 api_logs;§12 export @jwt 註解=SEC-001) 161cf483 2026-07-05
個人資料 user-profile Sonnet ✅(欠 §5 截圖;§12 otp-qrcode 無認證洩 secret;topt_secret 死欄) 6e197f98 2026-07-05
網站導覽 sitemap ❌ 除名(已驗死 route:public.ui_routes 無對應列+FE 全域零 nav 進入點,僅孤兒 router 條目+menu.json label;SiteMap.vue 只把 permissions[0].items 畫成 OrgChart,未獨立成頁) 2026-07-05
背景服務與排程(無 UI 頁) —(APScheduler 3 job / SocketIO 2 namespace / 分類容器 / Agent 心跳) Opus ✅(Opus 自寫;drive_sync 5s 佇列狀態機 + 故障行為;無 session 清理排程) d412e40e 2026-07-05
§5

FR-047 全站拆分重整 — W1(2026-07-06)

sitewide plan:workspace 型多畫面頁拆成 hub+功能子頁(或平級雙頁),每頁補版面 wireframe(§2.5 慣例)。拆分判準:獨立畫面數 ≥2 才拆,單畫面 CRUD+dialog 群不拆(只補 wireframe)。

A 級(已執行拆分)

原頁 拆法 新增 / 改檔 wireframe
system-admin/user-manage.md hub(Tab0 列表)+子頁 user-manage.md(hub)/user-form.md(表單+授權組合)/user-import.md(Excel 精靈);user-profile.md 不動 3 張
audit-execution/audit-review.md hub+子頁 audit-review.md(hub)/audit-verdict.md(Tab0 判定工作區)/audit-risk.md(Tab1 風險 UC-AR-02) 3 張
compliance-framework/module-frame.md hub(頁1 列表)+子頁 module-frame.md(hub)/module-frame-detail.md(頁2 下鑽)/module-frame-defaults.md(頁3 樣板編輯器;五 tab 交叉引用 project-ssp-*,不複製欄位) 3 張
system-admin/notify-smtp-config.md 平級雙頁(無 hub,原檔退役) notify-channels.md(Telegram/Discord)/smtp-config.md(列表+表單);notify-smtp-config.md git rm 2 張

NAV_STRUCTURE 同步(三 hub 加子頁縮排、notify 換兩平級 entry);退役檔站內連結全站修正(README / system-admin/_overview / issue-integrate-config)。authoritative build ✅、11 頁 wireframe/TOC anchor 全解析、敏感資訊+「GRC 系統」grep 0。

B 級(判定,不預拆)

判定 理由
audit-execution/ap-authoring.md 不拆(wireframe-only,歸 W2) Tab1/Tab2 是行程勾選的唯讀投影(_backfill_scope_from_tasks),非獨立畫面;就地新增稽核人員 / DOCX 匯入為 modal dialog,非自成流程。單一可編輯畫面(Tab0 行程卡)。
evidence/evidence-classification-reports.md ✅ 已拆(2026-07-06 user 拍板,協調 session 執行):拆為 evidence-classification-validation.mdevidence-classification-adjudication.md(NAV 掛 review 子頁),原檔與舊 wireframe 退役,全站連結修正,build 76 頁綠、錨點 0 缺 §7 顯示兩條獨立 route(-validation/-adjudication)+兩 Vue view,符合「各自有 route → 拆兩頁」判準。①user W1 指令僅點名 4 個 A 級頁拆分、B 級為「判定」;②concurrent W2 arc 正把此頁當單頁做 wireframe量產(已建 evidence-classification-reports-wireframe.svg、改 review.md 連結)——執行拆分會與並行工作衝突。已建的拆分草稿已撤回、原檔保持完整。
§6

統計

頁面 spec _overview 合計
總數 47(46 頁面 + 1 背景服務;task-setup + sitemap + analysis + customer-dashboard-editor 除名;tool-plugin-manage 已驗 live 保留) 9 56
已完成 47(專案管理 7 + 稽核執行 5 + 證據管理 5 + 合規框架 6 + 協作 3 + 問卷 3 + 報表 2 + 認證 2 + 系統管理 14:全群含背景服務) 8(協作群無 _overview) 55
拆分重整後(2026-07-06) 67 內容頁(量產 47 → planning 拆分 +4、共用元件 banner +1、W1 A 級 +7(原 4 頁中 1 頁退役)、ecr B 級 +2(原頁退役)、SSP 編輯器 +5、task-edit 既有)+ 每頁 §5 wireframe 全覆蓋(67/67) 8 75
§7

Gate 紀錄

Gate 日期 結果
Pilot(專案規劃頁)驗收 2026-07-05 ✅ 六輪回饋後定稿 + §5 實機截圖五張(STG 亮色)完成
Wave 1 完成抽查
Wave 2 / 3 完成抽查 2026-07-05 ✅ 系統管理群抽 user-manage(44e5ca10)5 條紅線全過(§9 七表全對 dump / §6.1 全對 / §1.1 對 UserMTRBACForm 實裝 / 引用 _overview / 7 dot 齊);連同下行三群抽查,Wave 2/3 抽查完備
全站終驗(正確性+內容掃描) 2026-07-06 ✅ 機械層全綠 + Sonnet ×9 逐頁核實 76 頁 + 逐條仲裁修正完成(見 Session 紀錄末列);all-green build
量產總驗收 🛑 47/47 頁面 spec + 8 _overview 全完成、四群抽查 PASS、全站終驗完成(機械+內容 all-green)等 user 總驗收(過後才 rsync 更新 POC 部署)
問卷 / 報表 / 認證 三群抽查(中控 #2) 2026-07-05 ✅ 各抽 1 頁(設計器 / 摘要報表 / 登入含MFA)對 5 條紅線全過;報表那頁 agent 誤判 FAIL 經仲裁改 PASS(routes.json 含 Flask-RESTful add_resource 雙路徑 artifact,非 spec 錯誤,spec 9 端點全對得上 dump)
§8

Session 紀錄

日期 Session 完成項
2026-07-05 #1 FR-047 立案 + pilot 六輪定稿 + HTML 站(lightbox 縮放)+ writing-feature-specs skill + changelog 政策改版 + 本 tracker
2026-07-05 #1 中控交棒 量產發包(Lane A/B/截圖/FR-046 Phase3)+ POC nginx 部署 + 中控交接 → orchestrator-handoff;原 session 收尾欠對話歸檔/SUMMARY/Notion(等 user 令)
2026-07-05 #2 專案管理群量產:project-list / project-create / project-overview 三頁 spec(13 節 + 12 dot)+ _overview 頁面地圖對齊(commit 83fce5ac;欠 §5 實機截圖)
2026-07-05 #3 稽核執行群量產:_overview(AP→AR→POA&M 資料模型)+ 稽核計畫填寫頁 + 稽核執行頁 二頁 spec(13 節 + 13 dot);build ✅ / 敏感資訊 grep 0(欠 §5 實機截圖)
2026-07-05 #4 專案規劃頁 §5 實機截圖五張(STG 亮色):查出原「未解 login redirect bug」真因是 FE cm_persist_mode=session 心跳過期清 token(非登入壞),另查出目標專案「亞州航空」已軟刪除、改用「回饋整合設定」+ blsit 帳號;截圖嵌入 spec + rebuild HTML
2026-07-05 #5(Lane B 連續) 稽核執行群收尾:POA&M 矯正頁(25c3420f)+ 我的任務(1d923a4c)+ 我的稽核(9edea842,Sonnet 撰主導抽查)三頁 spec(13 節 + 14 dot);🔍 workflow-setup/view 驗為 live BPMN 範本編輯、除名歸 Wave 2。稽核執行群 5 頁全數完成(欠 §5 截圖)
2026-07-05 #6(Lane A 連續) 專案管理群收尾:稽核輪次清單 + 專案設定 + 專案儀表板三頁(f0c8cdef,13 節 + 10 dot);🔍 驗存廢:project-dashboard=live(保留)、project-task-setup=dead(除名,FR-038 併入規劃頁)。專案管理群 7 頁全數完成。安全發現:project-settings PUT 無 BE 角色守門(§12)。subagent 委派中途 stall,改主導自寫(研究 grandchild 產出可用)
2026-07-05 #6(Lane A 續) 合規框架與 SSP 群:overview(bba1e08d,資產模型+三步匯入)+ 合規框架管理(d5eddff9)+ BPMN 流程範本(ccfd588b)+ 資源庫 ModuleFrame(46a69ea3)三頁 Opus 自寫;13 節 + 11 dot;build ✅ / grep 0。剩 3 頁 Sonnet 匯入頁交下棒(handoff §10 有完整線索:共用 parse→confirm 三步式 + ImportDocx/Excel 共用元件)。教訓:研究 subagent(Explore 唯讀)產出佳、md 主導自寫可靠;schema drift 續抓(module-frame 的 ssp 前綴、NOT_PLATFORM_ADMIN=403060)
2026-07-05 #6(Lane A 再續) 合規框架群收尾 3 匯入頁:框架版本匯入/編輯(3fdcec1b)+ 範本匯入精靈 docx/excel(9a5bcbbe)+ SSP docx 匯入(9a5bcbbe);13 節 + 6 dot。共用 SspDocxImportPage 由 source_type 分流(module_frame full vs project_ssp statement_only);parse job 暫存三步式。合規框架與 SSP 群 6 頁 + _overview 全數完成。schema drift 續抓(agent 的 oscal.ssps/controls → 實際 system_security_plans/catalog_controls)
2026-07-05 #5(Lane B 續) 證據管理群量產:overview(1a3fdb66)+ 證據分類覆核(8b9c1fa5,Opus 自寫)+ 分類報表(0caf4a53)/ 雲端整合(3f86d320)/ 檔案 Agent(fc7e33ae)/ 儲存設定(c0c8d00b)四頁(Sonnet 撰主導抽查);13 節 + 18 dot;build ✅ / grep 0。證據管理群 6 檔全完成(欠 §5 截圖)。安全發現:EC 覆核 / storage-config PUT 僅 JWT 無角色守門(各 §12)。EC error code 前綴(非 GRC_)
2026-07-05 #5(Lane B 續) 協作群量產:公告管理(9f57cc84)+ 公告檢視(cf26f3b1,皆 Sonnet 撰主導抽查)+ 回饋管理(c38d3309,Sonnet 陷 delegation loop、主導 stop 後自寫)三頁 spec(13 節 + 13 dot;協作群無 _overview)。build ✅ / grep 0。關鍵:回饋存 issues+feedback_issues、巡檢回饋停用且 {type:1} 會炸 BE;公告硬刪除;回饋/公告寫入皆無 BE 角色守門。Lane B 剩系統管理群(15 頁)+ 背景服務——context 將滿,見 handoff docs/features/FR-047-2607-feature-spec-handbook/handoff/2026-07-05-laneB-system-admin-handoff.md
2026-07-05 #7(Lane A 續) 問卷群量產:_overview(d9e16dec,作者/消費雙端 + 快照 + 雙生命週期)+ 問卷管理(84f9569d,Sonnet)+ 問卷設計器(c206faa7,Opus,頁題三步精靈/7型別)+ 問卷填寫預覽((本次),Sonnet,五模式/狀態機/socket協作/歷史還原)四檔(13 節 + 20 dot)。3 個唯讀 Explore research agent 產出 → md 主導自寫(§2.1)。error code 開檔驗(jedi_survey SURVEY_* vs 主專案 TASK_SURVEY_*)。抓錯:agent 誤報「folder 刪除需非空 409」(實為無條件軟刪)、SURVEY_409003 為死碼(頁刪 CASCADE 不擋子頁)、GRC_SURVEY_HAS_ANSWERS 只保護規劃頁任務移除、頁/題硬刪除無 is_delete。安全發現:作者端與消費端寫入皆僅 JWT、狀態轉換合法性只在 FE(各 §12)。問卷群 3 頁 + _overview 全數完成。下一棒 = Lane ④ 報表群(analysis 🔍先驗)
2026-07-05 #8(Lane B 續) 系統管理群起:pre-flight ✅ + 建 dir;🔍 驗存廢:tool-plugin-manage=live(ui_routes enable=1 保留)、sitemap=dead 除名(無 ui_routes 列+FE 零 nav 進入點)。overview(Opus 自寫:三層 RBAC 樞紐 + 租戶/部門組織模型 + system_configs key-value 慣例 + 3 dot)+ 角色權限管理(Opus 自寫:RBAC 樞紐頁 + 4 dot)二檔(13 節)。build ✅ / grep 0。用 1 隻唯讀 Explore agent 蒐 RBAC 碼 → 主導自寫。schema 校真相:user_roles 實含 scope/org_unit_id/is_default(設計文件簡化版遺漏);capabilities.is_platform;role error code = AUTH_ 前綴(非 GRC)。安全發現:role 端點全僅 JWT、系統角色/平台能力保護只在 FE、能力全量取代;名稱重複 raise NotFound(404) 但碼是 AUTH_409004(型別/碼不符)。剩 12 Sonnet CRUD 頁 + 背景服務 spec
2026-07-05 #7(Lane A 續) 報表群量產:_overview(849318b7)+ 專案摘要報表(afa14805,Opus,TipTap富文本/WeasyPrint PDF/版本歷史 U-R)+ AI 儀表板((本次),Sonnet,五階段生成管線/Claude三模型/不落 DB)三檔(13 節 + 8 dot)。2 隻唯讀 Explore research → md 主導自寫。🔍 驗存廢:analysis + customer-dashboard-editor 皆 demo scaffold 除名(Sigma.js / vue-grid demo 假卡、無 API、後者 enable=0 + item.h"npm typo)。error code 開檔驗:AI_DASHBOARD_400001~404002、摘要報表無專屬碼;Claude 模型 ID 對 claude_client.py(haiku/sonnet/opus-4-5)。安全發現:摘要報表寫入/匯出無角色守門且不檢查專案歸屬、AI 儀表板 health 免 JWT(各 §12)。報表群 2 頁 + _overview 全數完成。下一棒 = Lane ⑤ 認證群(login+MFA / forget+reset,匿名態)
2026-07-05 #7(Lane A 續) 認證群量產(匿名態):_overview(4f5e08f9,認證資料模型 + 登入/MFA/JWT 流程 + 密碼變更生命週期 + 匿名態特性)+ 登入含 MFA OTP(9156038f,Opus,captcha/鎖定/MFA分流/TOTP啟用)+ 忘記/重設密碼((本次),Sonnet,token 30分 single-use/bcrypt 防重用/三情境同頁)三檔(13 節 + 7 dot)。2 隻唯讀 Explore research → md 主導自寫。error code 開檔驗(jedi_login LOGIN_*/jedi_mfa MFA_401001/jedi_auth AUTH_*)。安全發現:忘記密碼帳號列舉(404 vs 200)、密碼政策僅 FE、匿名端點僅靠 token 憑證、otp-resend type/mfa_type 欄位 BUG、cm_persist_mode 心跳清 token 陷阱、全域 MFA_REQUIRED(各 §12)。認證群 2 頁 + _overview 全數完成 → FR-047 Lane A(②③④⑤)全部收官
2026-07-05 #8(Lane B 收官) 系統管理群全數完成(14 頁 spec + _overview):Opus 自寫 4(_overview / role-manage / background-services / tool-plugin-manage)+ Sonnet 派 10(user-manage / user-profile / user-log / system-menu / department / tenant / device / information-system / notify-smtp / ldap / issue-integrate;每頁抽查 §1.1/§6.1/§9 紅線後 commit)。authoritative build ✅ 全 15 頁 / grep 0 / 全 dot compile。方法:7 隻 Sonnet full-writer 分兩批並行(帶 §5 鐵則「不 spawn/不跑 render_html」,零 delegation loop)。tool-plugin-manage 查出=前端 mock 占位頁(選單可達但無後端);sitemap 除名。schema 校真相:totp_secrets(真 TOTP 表,users.topt_secret 是死欄)、LDAP group=THIRD_PARTY_LOGIN(非 LDAP)、information_systems delete=軟刪、UserForm.vue 死碼(live=UserMTRBACForm)。重大安全發現(只記錄不修,各頁 §12):GET /otp-qrcode/<uid> 完全無認證洩 TOTP secret(最嚴重)、api-logs export @jwt 註解掉(SEC-001)、device/user/role 寫入端點多僅 JWT 無角色守門、ISSUE_INTEGRATE_CONFIG token 未遮罩明文回傳、issue_service GITLAB/GITHUB copy-paste bug。FR-047 頁面 spec 全數 47/47 完成。
2026-07-06 W1(拆分重整) A 級 4 頁拆分(user-manage / audit-review / module-frame → hub+各 2 子頁;notify-smtp-config → notify-channels+smtp-config 平級雙頁、原檔 git rm)+每頁 §5 版面 wireframe(§2.5 慣例,共 11 張新 SVG)。NAV_STRUCTURE 同步、退役檔連結全站修正、authoritative build ✅、anchor 全解析、敏感/「GRC 系統」grep 0。B 級:ap-authoring 不拆(投影 tab+modal)、evidence-classification-reports 判定為拆但因 concurrent W2 衝突 deferred(草稿撤回、原檔留存)。⚠️ 執行期發現 concurrent W2 wireframe量產 session 同 working tree 並行(render_html.py+多頁 spec 有其 WIP);render_html.py NAV 變更同時攜帶 planning arc WIP。未 push(等 user)。
2026-07-06 planning 拆分 規劃頁改造 hub+planning-status/batch-ops/basic-info 3 新子頁+task-edit 擴充+shared-components/flow-phase-banner 共用元件 spec(5f53613e / 2c39c6b4);各含 wireframe
2026-07-06 W2 wireframe 量產前半 25 頁:專案管理 11(4eb1c720)+稽核執行 4(49dcb46d)+問卷 3(d3b5b351)+證據 7(b335eb70
2026-07-06 W3 wireframe 量產後半 24 頁:系統管理 12(0facde1d)+合規框架 5(e325f303)+協作 3(44caaa42)+報表 2(497eba9a)+認證 2(5d65beb4)+ skill 更新(68b2bd07,拆分判準修正版+wireframe 慣例)
2026-07-06 NAV 對齊產品選單 側欄重構(user 拍板):群=ui_routes 產品 7 群+認證+共用元件、樹=畫面容器關係(NAV 遞迴任意層,最深 7 層)、跨群 ↺ 重複掛 5 頁(麵包屑取主家)。SSP 編輯器掛進規劃頁下、階段頁掛進專案總覽下、my-tasks/my-audits/摘要報表歸「專案與任務」、租戶組織/系統設定/AI 分析成獨立群、儲存/Agent/雲端整合歸系統管理。檔案零搬移(NAV 與資料夾解耦)。build 76 頁綠、playwright 實測側欄渲染正確
2026-07-06 側欄收合+粗體修 側欄可收合(群標題+父項 chevron、localStorage 記憶、當前頁鏈強制展開+捲動定位;playwright 7 項行為驗證全過);build 前清舊 html 產物(退役頁殘留不再誤導);修 4 頁 SSP 子頁「粗體貼全形標點不轉譯」(全站掃描歸零,dot 圖 ******** 遮罩為合法內容非誤植)
2026-07-06 協調收口 四 arc 並行後統一收口(c50d12b7~928a2562):46 個 dangling .dot 補進版、W1 四組按序 commit、NAV+tracker 共用檔收口、html/ 入 gitignore;B 級 ecr 依 user 拍板拆分867cbe44:validation+adjudication 兩頁、原頁退役);全站 build 76 頁綠、NAV 0 孤兒、斷圖 0、wireframe 67/67 全覆蓋
2026-07-06 全站終驗 §1 機械層(build/敏感/斷圖/粗體/wireframe/內部錨點)全綠、修 6 斷錨(ac88e487)。§2 Sonnet ×9 並行逐頁核實 76 頁(對 routes.json/db_schema.json/FE/error code)。§3 逐條仲裁 ~30+ findings → CONFIRMED 按群修正 5 commit:flow-phase-banner schema/path(b3a99b83)、system-admin 5 頁(bb76b1d4)、survey/collab hub 殘影(46d19112)、flow-template 誤標套件(1203dfdc)、audit-execution 7 頁含 4 A 級(ec466e84)。誤報/optional 回報 user,清 2 項:module-frame oscal.ssps/is_template→實表名+template_ssp_id 機制(0ba8190f,深掘推翻 agent 原判「dump artifact」)、全站 \_overview 反斜線清理(1595a825)。all-green build。底層 is_template code/migration drift 另 spawn task 回報 BE 待辦。 教訓濃縮進 writing-feature-specs skill 紅旗。
2026-07-20 render_html.py 側欄/CSS/JS 外部化重構 新增 Release Notes 頁面那次 commit 一次動了 323 個檔案暴露問題:CSS/lightbox JS/側欄 HTML 全內嵌進每頁,改側欄結構就要重 render 該版本目錄下全部頁面。抽成 docs/specs/_shared/{site.css,site.js}(跨三版本共用靜態檔)+ 各版本目錄 html/nav-data.json(純資料,per-version);build_nav() 拆成 nav_data()TEMPLATE 側欄改空殼由瀏覽器端 JS fetch 後動態渲染(current 高亮/收合狀態一併搬到瀏覽器端判定)。三版本重 build 零「nav 未涵蓋」警告、index.html 未變。瀏覽器實測(Chrome DevTools MCP)側欄渲染/導頁/高亮/收合 persistence/file:// fallback/console 零 error 全過,涵蓋三版本各深度頁面。效果驗證:模擬新增一頁重 build,僅 nav-data.json(+7 行)異動、零既有 .html 被觸動(對比重構前 323 檔)。設計取捨見 docs/analysis/2026-07-20-spec-site-shared-assets-extraction.md;SUMMARY 見 handoff/2026-07-20-render-html-shared-assets-refactor-SUMMARY.md。commit dfc6ecc6/852b0e55,tag v1.9.0(沿用既有版號非新 release),未 push。
§9

最後定版前待辦(user 2026-07-06 拍板:先不動,定版時一次多線程處理)

  • 章節連結化:全站約 1004 處待轉真實錨點連結,不是現在就做——
    • A. 表格「詳述」欄裸文字(§1.1/§6.1/§9.1 等總清單表的「詳述」欄,例:§10§6.2UC-PD-01):774 處
    • C. 已是連結但只連到整份檔案開頭、未連到精確章節(例:[_overview §5](_overview.md) 少了 #5-... 錨點片段):230 處
    • 技術做法(已驗證可行):pandoc 產生的錨點 id 有固定規律(## 10. 頁面邏輯與資料對應id="10-頁面邏輯與資料對應"### 6.2 核心 endpointid="62-核心-endpoint";UC 標題 #### UC-PD-01 ... 也有 h4 id)。不要自己重刻 pandoc 的 slugify 演算法(fullwidth 括號、斜線等會被吃掉,容易猜錯)——正確做法是先跑 render_html.py build 出 HTML,從已 build 好的 html/*.html 反查每個標題的真實 id,再回填連結進來源 md。
    • 規模判斷:跨 55 頁、上千處,建議走 workflow/多 agent 平行處理(每頁一隻 agent,讀該頁已 build 的 HTML 抓 id 表 → 回填 md → 統一跑一次 authoritative build 驗證)。
  • §6 API 格式一致化(user 2026-07-06 提出;project-dashboard.md §6.2 已示範修好、範本已補鐵則):
    • 現況:§6.2 核心 endpoint 有兩種寫法混用——好的用「request→json 區塊 / response→欄位表」,爛的把 JSON 塞行內 code span、欄位擠成「、」串散文(一堵牆難讀)。
    • 待掃:Response 散文串僅 project-dashboard.md(已修);Request 行內 JSON 全站 25 處,其中 ~15 短(行內可接受、不用動)、~8 處較長需改login/poam remediation/survey fill patches/ai-dashboard/survey-manage 列表/ap-authoring subjects/remote-agent/otp-verify 等)。
    • 判斷點:長 {...}真 JSON payload → 拉 ```json 區塊;是欄位+必填註記簡寫(如 {username(必), password(必)...})→ 改欄位表。非機械替換,逐 endpoint 判斷,併入上面多 agent 批次一起做。
§10

本次順手做的白話化(未在上面 waves 逐條記,這裡補記)

  • round-state-machine.dot(狀態機圖)+ project-management/_overview.md §2、audit-execution/_overview.md §2 兩張轉換表:API action 名前面加白話動詞(啟動稽核 launch-audit開始稽核 start-auditing完成判定 finalize結束本輪 close-round啟動複驗 launch-reverify),API 名保留供 UI 動作 ↔︎ endpoint 對照,只加白話不刪技術詞。