角色:分析決策首腦(協調者)。實作零行,文件全外包 subagent。
Commits(BE repo,全部已 push):
34f09eea design.md 定稿 + FR 登記 + discussion v2 + 燈箱改動收攏0aee480b License Center repo 座標 + DB 命名新標準進 CLAUDE.md6e8edb1e 燈箱功能連帶重 build 既有站cd671edf~94b398a6 八個補收 commit(與本 arc 無關的既有未追蹤檔案,user 確認全收)1cc190c 初始化基底(已 push)決策軌跡(時序):
license_center;DB 新標準 prod 不帶後綴(user 拍板,未來 guidant_ai 跟進)教訓:
推翻了什麼:D14 過渡照 90 天機制(v2 還在,最終刪除);D1 純 CLI 起步(升級為初版即做 Web 後台);「鎖登入」預設段(改為 lockout 預設關、終態唯讀)。
產出物:discussion.md v2 / design.md / Notion 25 卡(CM-1112~1136)/ license_center repo 基底 / 主管簡報(桌面)/ 七份派工 prompt(fr062-dispatch-prompts.md)/ CLAUDE.md+memory 更新(License Center 座標、DB 命名新標準)。
下一步:依 STATE「執行順序」逐棒發令派工(第 1 棒 = FR-062.1,prompt 已備)。
角色:分析決策首腦。實作零行;驗收抽查全部親做(fetch 卡+commit+親跑測試+查 DB)。
派工軌跡(時序):.1 → .2+.6 併派 → T-1.3(v2 打包)→ T-1.4(passphrase+金鑰重產)→ T-6.3(下載+明文顯示)→ T-1.5(.license armor)→ T-0.1(design.md 回寫)→ .3+T-2.4 併棒(.3 曾被 user 中停重派,重派 prompt 加了殘留檢查段)→ .4(Opus 跑)→ T-5.1 → T-6.4(詳情頁+Menu)→ T-7.1 → T-7.3(插做 grace/readonly 信)→ T-7.2(DEV migration)→ T-5.2(交接時在跑)。追加十張卡 CM-1137~1146 全因 user 驗收回饋即時開卡。
關鍵決策(超出 Block 1 既定範圍的):
教訓:
推翻了什麼:Block 1 的「T-5.2 等雲端」(改 local 模擬);design.md §3「TENANT_ADMIN_EXCLUDED_RESOURCE_TYPES 退役」(改保留,§3 該行仍待改註——下一棒文件批次要做);「LC 發照紀錄=歷史留檔不清」(後依 user 指示清了 7 筆測試垃圾,TRUNCATE RESTART IDENTITY)。
產出物:三 repo 開發主線全量 commits(BE 至 d5e136e3/FE/LC 至 2c1eaf2,全未 push);migration SOP+護欄 script;Notion CM-1137~1146 十張卡;STATE 全面改寫。
下一步(給第三任首腦):①T-5.2 回報後驗收(負面案例:錯誤序號/已用/斷網 fallback)②派 T-4.5 反灰鋪面(CM-1144,prompt 要點:useLicenseReadonly 已在、參考實作 DeviceManage.vue、逐頁 import 套 writeDisabled、遵守「不能做→disabled 不隱藏」紀律)③催 user 總驗收收 19 張卡④收尾等令(含清 root 測試照、design.md §3 改註、LC CLAUDE.md、spec/手冊/SUMMARY)。
角色:runner(非首腦),直接接手 T-5.2 派工 prompt 執行到完成。
產出:三 repo 各一 commit——LC 5a9272e(新 blueprint activation.py,公開 API,序號存在/未用/未過期三查+15分鐘5次失敗鎖定)、BE 6f94cc34(activate_license_online() 代打+完整驗章不信任來源、新端點、LICENSE_ACTIVATION_SERVER_URL config)、FE cb6c29b(開通頁加線上序號輸入路徑,同頁分隔線區分離線)。
順手修的既有缺口:FE error-code.json(zh-tw/en)整個 LICENSE_* 錯誤碼家族翻譯此前完全缺漏(.4/.7 落地時就沒補),toast 會顯示原始 i18n key——本棒補齊,非本棒新增碼專屬。
驗收:全 local(DEPLOYMENT_MODE=host),瀏覽器實測四案:有效序號一鍵開通成功(LC license_issuance 回寫機器指紋+時間+event_type=activate)、錯誤序號 404、已用序號 409、關 LC 模擬斷網→引導離線訊息。BE log 逐案對應無誤。
下一步:交還首腦驗收+派 T-4.5(見 Block 2 收尾清單)。
角色:分析決策首腦。實作與文件大多外包(subagent/開 case),部署類指令與 DB 操作親做——部署有順序耦合(keygen ⇄ 公鑰進 code ⇄ BE 重部署)且對 POC 屬 production 級動作,不轉手。
派工軌跡:
license/status 導致「無效的 token」,兩 commit 修(afterEach 排除未登入態+登出 reset store;追加一支處理 chatbot 401 時序)關鍵決策:
issue_license/extend_license 純函式可直接呼叫、落地漏斗已有四個入口可加第五個、失敗路徑可照抄 activate_license_online()),真正需要拍板的只有認證模型與多環境如何隔離——把調查做在拍板前,讓決策只剩兩題而不是六題issuer=token_name)、未來多 SaaS 平台接入時統一控管教訓:
.env 填了一個「想要的」passphrase,結果簽發全部 503——私鑰是用 keygen 當下那組密碼加密的,事後在設定檔改字串不會反向改變檔案。第一把 ef99f508c74e43fd 因此作廢重產成 04b1e65f100c6c8f。更糟的是第一版自驗指令漏了 load_dotenv(),於是不論 .env 寫什麼都讀不到,把「設定沒載入」誤診成「passphrase 錯」——驗證環境設定的指令,必須先確認它真的載入了設定PUBLIC_KEYS 裡有對應 kid 才收得下。所以每次 keygen 都連動「一個 BE commit + 該環境 BE 重新部署」,順序做錯就是「未知的 kid」。這條在上正式環境時同樣成立——正式簽發鑰必須先進 public_keys.py 才 build 出貨 imagedeployment_mode 記載錯誤(saas,實際是 host)的照,決策者用 LC 後台的 rebind 想修,但 rebind 的語意是「同一張照換綁定目標」、其餘欄位照抄原照——內容要改只能重簽。功能名稱像什麼、和它實際做什麼,是兩回事deployment_mode,LC 端就套自己的預設 saas,簽進照裡沒有任何警告。產品自己最清楚自己是什麼版本,不該讓對方猜——跨系統呼叫時,凡是「對方有預設值」的欄位都該明確傳,不然預設值就是一個沒人負責的決策推翻了什麼:
產出物:三 repo 今日共 37 個 commit(BE 15/FE 13/LC 9,全部已 push,HEAD==origin/main);7 支 FR-062 相關 migration 各套進 STG 與 POC(DEV 早已有);LC 兩支 migration(001 plans+license_issuance、002 api_tokens)+三筆 plan seed 進 license_center_stg 與 license_center_poc;LC 部署手冊 docs/deployment-guide.html;LC repo CLAUDE.md;Notion 今日收 Done 18 張(FR-062 主案 7 張含母案 CM-1112、.9 三張、.10 八張)。
下一步:收尾文件批次(本檔/STATE/SUMMARY/頁面 spec,三支平行 runner)→ 決策者於 STG root 後台正式發照 → 雲端 LC 公網補驗(CM-1130 清單)→ 全案後 CM-1143 遺留模組退役。