Files
system-dev-template/template/manifest/common.tsv
T
Leo 6a49f25aef feat(W2 Phase 0-1): 雙 profile 地基+JDD 兩軸身分+兩支防炸閘
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>
2026-08-05 23:56:48 +08:00

89 lines
6.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# common.tsv — 兩個 profile 都要裝的產物(安裝清單的單一真相源)
#
# 為什麼有這張表(SDD jdd-dual-profile 決策 D1):
# 在這之前,安裝清單**硬編在 install.sh,另一份幾乎重複的硬編在 update.sh**。
# 兩份手抄的清單必然漂移——而且已經漂了:
# · wiki-first-search.sh 1.16.0 頭條功能)→ update 會裝,**install 不裝**
# · subagent-wiki-guard.sh 1.17.0 頭條功能)→ update 會裝,**install 不裝**
# · publish-lag-check.sh 1.18.0 頭條功能)→ update 會裝,**install 不裝**
# · wiki/decisions-summary.md → update 保留它,**install 不建**
# 但 CLAUDE.md 範本的「Wiki 讀取順序」表裡就列著它 ⇒ 新用戶開檔即撲空
# ⇒ **乾淨安裝反而拿不到最新三版的招牌功能**,只有「先裝舊版再 update」的人拿得到。
# 本表讓兩支腳本讀同一份清單,這類漂移在結構上不可能再發生。
#
# ── 欄位 ──────────────────────────────────────────────
# 1 src 來源。T:<路徑> template/ 底下;S:<路徑> scripts/ 底下;- 建目錄用
# 2 dest 安裝到實例的哪裡(相對實例根)
# 3 class overwrite 模板/邏輯檔,新版直接蓋(使用者不會手改)
# keep 使用者資料檔,**永遠不動**(蓋掉=清空他的記憶)
# add-if-missing 使用者資料檔,缺了才補,已有絕不覆蓋
# keep-with-template 使用者會手填的客製檔;保留原檔,新版另存 .template.<ext>
# claude-md 特殊:CLAUDE.md 走「框架區+本地補充區」組裝,見 install.sh
# dir 只建目錄
# 4 module core | wiki | sdd —— 對應 install.sh 的 --wiki/--sdd/--all 模組選擇
# 5 profile 這裡一律 commonrepo/orchestrator 專屬的在各自的 tsv
#
# ⚠️ 路徑契約:dest 一旦發佈就是對既有實例的承諾,**只增不移**
# (舊實例跑的是舊腳本,路徑寫死;搬檔=它們整排 404、更新機制本身壞掉)。
# 要改版面先跑 scripts/check-legacy-paths.sh。
#
#src dest class module profile
# ── 目錄骨架 ──
- system-dev/docs/1-vision dir core common
- system-dev/docs/2-architecture/decisions dir core common
- system-dev/docs/4-guides dir core common
- system-dev/docs/5-records/incidents dir core common
- system-dev/docs/5-records/test-reports dir core common
- system-dev/docs/6-user dir core common
- system-dev/scripts dir core common
- .claude/commands dir core common
- .claude/hooks dir core common
- .claude/hooks/lib dir core common
# ── core:兩個模組都要的底盤 ──
T:system-dev/docs/README.md system-dev/docs/README.md overwrite core common
T:system-dev/docs/4-guides/logseq-markers.md system-dev/docs/4-guides/logseq-markers.md overwrite core common
T:system-dev/VERSION system-dev/VERSION overwrite core common
S:install.sh system-dev/scripts/install.sh overwrite core common
S:update.sh system-dev/scripts/update.sh overwrite core common
T:.claude/commands/issue-handle.md .claude/commands/issue-handle.md overwrite core common
T:.claude/hooks/pre-write-guard.sh .claude/hooks/pre-write-guard.sh keep-with-template core common
T:.claude/hooks/lib/role-lib.sh .claude/hooks/lib/role-lib.sh overwrite core common
T:.claude/hooks/publish-lag-check.sh .claude/hooks/publish-lag-check.sh overwrite core common
# ── wiki 模組 ──
- system-dev/wiki dir wiki common
- system-dev/wiki/cards dir wiki common
T:system-dev/wiki/INDEX.md system-dev/wiki/INDEX.md overwrite wiki common
T:system-dev/wiki/TAXONOMY.md system-dev/wiki/TAXONOMY.md keep wiki common
T:system-dev/wiki/status.md system-dev/wiki/status.md keep wiki common
T:system-dev/wiki/mistakes.md system-dev/wiki/mistakes.md keep wiki common
T:system-dev/wiki/principles.md system-dev/wiki/principles.md add-if-missing wiki common
T:system-dev/wiki/decisions-summary.md system-dev/wiki/decisions-summary.md add-if-missing wiki common
T:system-dev/wiki/.wikiignore system-dev/wiki/.wikiignore keep wiki common
T:system-dev/docs/SKILL.md system-dev/docs/SKILL.md overwrite wiki common
T:.claude/commands/wiki-init.md .claude/commands/wiki-init.md overwrite wiki common
T:.claude/commands/wiki-capture.md .claude/commands/wiki-capture.md overwrite wiki common
T:.claude/commands/wiki-update.md .claude/commands/wiki-update.md overwrite wiki common
T:.claude/commands/wiki-recall.md .claude/commands/wiki-recall.md overwrite wiki common
T:.claude/commands/wiki-extract.md .claude/commands/wiki-extract.md overwrite wiki common
T:.claude/hooks/session-start-recall.sh .claude/hooks/session-start-recall.sh overwrite wiki common
T:.claude/hooks/wiki-secret-scan.sh .claude/hooks/wiki-secret-scan.sh overwrite wiki common
T:.claude/hooks/wiki-first-search.sh .claude/hooks/wiki-first-search.sh overwrite wiki common
T:.claude/hooks/subagent-wiki-guard.sh .claude/hooks/subagent-wiki-guard.sh overwrite wiki common
# ── sdd 模組 ──
- system-dev/docs/3-specs dir sdd common
- system-dev/workflows dir sdd common
T:system-dev/docs/3-specs/TEMPLATE-sdd/design.md system-dev/docs/3-specs/TEMPLATE-sdd/design.md overwrite sdd common
T:system-dev/docs/3-specs/TEMPLATE-sdd/tasks.md system-dev/docs/3-specs/TEMPLATE-sdd/tasks.md overwrite sdd common
T:system-dev/docs/3-specs/SDD-LIFECYCLE.md system-dev/docs/3-specs/SDD-LIFECYCLE.md overwrite sdd common
T:system-dev/docs/3-specs/pending-changes.md system-dev/docs/3-specs/pending-changes.md add-if-missing sdd common
T:system-dev/docs/2-architecture/decisions/TEMPLATE-adr.md system-dev/docs/2-architecture/decisions/TEMPLATE-adr.md overwrite sdd common
T:.claude/commands/sdd-check.md .claude/commands/sdd-check.md overwrite sdd common
T:.claude/hooks/sdd-guard.sh .claude/hooks/sdd-guard.sh overwrite sdd common
T:scripts/sdd-active-check.sh system-dev/scripts/sdd-active-check.sh overwrite sdd common
T:system-dev/workflows/tasks-project-sync.yaml system-dev/workflows/tasks-project-sync.yaml overwrite sdd common
T:system-dev/workflows/tasks-project-sync.local.sh system-dev/workflows/tasks-project-sync.local.sh overwrite sdd common