6a49f25aef
SDD: docs/3-specs/jdd-dual-profile(draft → active,leo 2026-08-05 回「開工」)
範圍:總管指定的「防炸兩件 → Phase 0 → Phase 1」,Phase 2 以後未開工。
■ 防炸(排在所有 task 之前,因為它們炸的是既有的東西)
- check-no-instance-names.sh + instance-names.txt:框架範本不得混入實例專名
基線實測 22 行命中(非先前誤報的 20)→ 9 行無損泛化改寫、13 行檔級豁免記帳待 W3 搬走
拒絕假性清理(把專名換成模糊詞=資訊消失、分層問題還在)
- check-legacy-paths.sh:已發佈腳本引用的 35 條遠端路徑只增不移
舊實例跑的是舊腳本、路徑寫死;搬檔=整排 404 且不會有下一次更新來修它(1.16.0 前科)
■ Phase 0 地基
- template/manifest/{common,repo,orchestrator}.tsv:安裝清單單一真相源
修好 install/update 兩份硬編清單的既有漂移——install 從不裝 wiki-first-search /
subagent-wiki-guard / publish-lag-check / decisions-summary,但 update 會
⇒ 乾淨安裝反而拿不到 1.16/1.17/1.18 的招牌功能
- .claude/hooks/lib/role-lib.sh:scope×role 兩軸機械判定,零自陳
身分矩陣六組實測全通過,含「成員 repo × orchestrator」不存在的格子擋下
- .sdt-framework-dev:框架開發標記(官方沒有 --framework-dev 這個參數,實查非記憶)
■ Phase 1 雙 profile
- profiles/{repo,orchestrator}/CLAUDE.md 兩部憲法
- install.sh:--profile + 自動偵測+寫檔前確認、manifest 驅動、
CLAUDE.md 三段組裝(框架區/本地補充區界標+sha256)、.profile、.template-manifest、
settings.json 寫入 env.AGENT_ROLE 預設
- update.sh:漂移偵測(不覆蓋手改檔、另存 .new、白話清單)+ 基準快照隨更新前進
- template/CLAUDE.md 原路徑凍結留底(相容)
■ 順手修掉兩個舊 bug(都在本次要動的函式裡)
- add_if_missing 少了 mkdir -p ⇒ 新目錄的檔 curl 失敗但 VERSION 照升(2026-07 記「待回報」至今未修)
- 下載健全性只用 [ -s ]=非空即接受 ⇒ 404 頁面會無聲覆寫好檔
(SKILL.md 260→1 行的機制;同一支腳本的版本號那條路早就防了,檔案這條沒防)
■ 實測(非推論)
- G4 憲法分流:兩個乾淨環境各裝一次,orchestrator 版含 SDD 三件式關鍵字 0 次、
repo 版含上游指針 8 次;界標 4/4;sha 宣告與實算相符
- G7 CI 擋實例名:注入違規行 → fail 並指出 sdd-check.md:77,exit 1;還原後 exit 0
- 漂移偵測:手改兩支 hook → 正確報 2 支、手改內容保住、產 .new;
解掉後歸零;連跑三輪冪等
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
19 lines
1.1 KiB
Plaintext
19 lines
1.1 KiB
Plaintext
# .sdt-framework-dev — 這裡是「框架 repo 本身」的標記
|
|
#
|
|
# 存在即生效,內容不重要(這些字只是給人看的)。
|
|
#
|
|
# 它解除的是什麼:
|
|
# 實例側有一條封路——「不准改安裝產物區(.claude/hooks/、system-dev/ 範本區、
|
|
# plugin 安裝目錄)」,因為機制變更必須回框架提案,而不是各實例自己手改
|
|
# (手改的下場:4 支 hook 已經漂移,而且沒有任何人知道)。
|
|
# 但在**框架 repo 自己**開發時,改那些檔正是本職工作 ⇒ 這個標記讓 guard 放行。
|
|
#
|
|
# 為什麼是檔案而不是 CLI 參數:
|
|
# 《分離導入規格》§6.1 寫的是「`--framework-dev` 標記的 session」,
|
|
# 但 Claude Code **沒有這個官方參數**(實查,非記憶)。
|
|
# 改用檔案的好處:框架 repo 天生就帶著它、隨 clone 就在、零記憶負擔,
|
|
# 不必每次開 session 記得加旗標。
|
|
# (臨時情境仍可用環境變數 SDT_FRAMEWORK_DEV=1 達到同樣效果。)
|
|
#
|
|
# ⚠️ 實例不該有這個檔。實例裡出現它 = 有人在關掉自己的封路,git 上看得見。
|