Problem
Original text:
「3要,但 harness-devtools 應給喔是給大家用的開發工具,我自己的設定應該寫成json 像是.idd」
— Source: 使用者,2026-09-24(+08:00),回答 PsychQuant/Akashic-Library#625 的 clarity 問題「plugin-update 要認得新 marketplace,要不要到 harness-devtools 開 issue?」
harness-devtools 是給所有人用的開發工具,但它的腳本與 skill 文件混著單一使用者的個人設定(marketplace 放哪、binary repo 放哪、GitHub 帳號/組織名)。這些應該改由使用者自己的 JSON 設定檔提供——形狀比照 issue-driven-dev 的 .claude/.idd/local.json(使用者層+專案層 walk-up)——工具本身只留通用預設。
觸發案例:PsychQuant/Akashic-Library#625 會新增一個 marketplace akashic(repo 自帶 .claude-plugin/marketplace.json),plugin-update 要能找到它。
Type
refactor
量測(2026-09-24,plugins/harness-devtools/ v2.4.0 原始碼;grep 範圍 *.md *.sh *.json *.py)
| 個人識別 |
次數 |
檔案數 |
psychquant(marketplace/GitHub org 名) |
38 |
17 |
che-mcps(binary repo 目錄慣例) |
46 |
10 |
~/Developer、$HOME/Developer(repo 放置慣例) |
45 |
15 |
che-local-plugins |
26 |
6 |
che-claude-config |
13 |
3 |
kiki830621 |
11 |
6 |
/Users/<本機使用者> 絕對路徑 |
7 |
3 |
scripts/resolve-marketplace.sh 的程式碼已不寫死 marketplace 名稱(v1.0.0 起改為掃描 marketplace.json,名稱只剩在註解裡),但掃描根目錄的預設 MARKETPLACE_SEARCH_ROOT="${MARKETPLACE_SEARCH_ROOT:-$HOME/Developer}" 本身就是個人慣例;其他 skill(plugin-update 的 detect_binary_repo 試 ~/Developer、~/Developer/che-mcps、~/code 等)也把個人目錄慣例寫進流程。
Expected
- 設定檔(比照
.idd):使用者層(例如 ~/.claude/.harness/config.json)+專案層 walk-up(.claude/.harness/local.json),近者覆蓋遠者。可能的欄位:
marketplace_search_roots:掃描 marketplace.json 的根目錄清單
marketplaces:明確列出的 marketplace(名稱 → 路徑),補掃描找不到的
binary_repo_roots:binary 原始碼 repo 的搜尋根目錄
- 工具本身只留通用預設:沒有設定檔時的行為對任何使用者都合理(例如只看
claude plugin marketplace list 已註冊的 marketplace),不假設 ~/Developer 或任何組織名
- 文件去個人化:skill 文件的範例改用佔位(
<your-marketplace>、<org>),個人的實際值移到使用者自己的設定檔
- 環境變數(如
MARKETPLACE_SEARCH_ROOT)保留為單次覆寫,優先於設定檔
Actual
個人目錄慣例與組織名分散在 17+ 個檔案;別的使用者裝了 harness-devtools,預設行為是去找不存在的 ~/Developer、che-mcps。
Impact
- 其他使用者:預設行為不適用,只能靠環境變數或改原始碼
- 維護者自己:新增 marketplace(例如
akashic)時要確認工具找得到,而「找得到」取決於 repo 放的位置恰好符合寫死的慣例
Clarity Surface(idd-clarify run 2026-09-24T03:22:55Z)
| Type |
Source |
Question for you |
Status |
| ambiguity |
"使用者層(例如 ~/.claude/.harness/config.json)" |
使用者層設定檔要放 ~/.claude/.harness/config.json(與 .idd 同在 .claude 下),還是 ~/.config/harness-devtools/config.json? |
surfaced |
| ambiguity |
"沒有設定檔時的行為對任何使用者都合理" |
沒有設定檔時,要保留目前「掃 ~/Developer」的行為當相容 fallback,還是直接改成只看已註冊的 marketplace? |
surfaced |
Problem
harness-devtools 是給所有人用的開發工具,但它的腳本與 skill 文件混著單一使用者的個人設定(marketplace 放哪、binary repo 放哪、GitHub 帳號/組織名)。這些應該改由使用者自己的 JSON 設定檔提供——形狀比照 issue-driven-dev 的
.claude/.idd/local.json(使用者層+專案層 walk-up)——工具本身只留通用預設。觸發案例:PsychQuant/Akashic-Library#625 會新增一個 marketplace
akashic(repo 自帶.claude-plugin/marketplace.json),plugin-update要能找到它。Type
refactor
量測(2026-09-24,
plugins/harness-devtools/v2.4.0 原始碼;grep 範圍*.md*.sh*.json*.py)psychquant(marketplace/GitHub org 名)che-mcps(binary repo 目錄慣例)~/Developer、$HOME/Developer(repo 放置慣例)che-local-pluginsche-claude-configkiki830621/Users/<本機使用者>絕對路徑scripts/resolve-marketplace.sh的程式碼已不寫死 marketplace 名稱(v1.0.0 起改為掃描marketplace.json,名稱只剩在註解裡),但掃描根目錄的預設MARKETPLACE_SEARCH_ROOT="${MARKETPLACE_SEARCH_ROOT:-$HOME/Developer}"本身就是個人慣例;其他 skill(plugin-update的detect_binary_repo試~/Developer、~/Developer/che-mcps、~/code等)也把個人目錄慣例寫進流程。Expected
.idd):使用者層(例如~/.claude/.harness/config.json)+專案層 walk-up(.claude/.harness/local.json),近者覆蓋遠者。可能的欄位:marketplace_search_roots:掃描marketplace.json的根目錄清單marketplaces:明確列出的 marketplace(名稱 → 路徑),補掃描找不到的binary_repo_roots:binary 原始碼 repo 的搜尋根目錄claude plugin marketplace list已註冊的 marketplace),不假設~/Developer或任何組織名<your-marketplace>、<org>),個人的實際值移到使用者自己的設定檔MARKETPLACE_SEARCH_ROOT)保留為單次覆寫,優先於設定檔Actual
個人目錄慣例與組織名分散在 17+ 個檔案;別的使用者裝了 harness-devtools,預設行為是去找不存在的
~/Developer、che-mcps。Impact
akashic)時要確認工具找得到,而「找得到」取決於 repo 放的位置恰好符合寫死的慣例Clarity Surface(idd-clarify run 2026-09-24T03:22:55Z)
~/.claude/.harness/config.json)"~/.claude/.harness/config.json(與.idd同在.claude下),還是~/.config/harness-devtools/config.json?~/Developer」的行為當相容 fallback,還是直接改成只看已註冊的 marketplace?