Starter Harness Designer — Workspace v1
"一個好的模板勝過 100 頁的指南。"
這個技能是為誰設計的
- 初次使用 harness 的人
- 非開發者(產品經理、行銷人員、作家、律師、教師、營運人員等)
- 想要快速以經過驗證的結構開始工作的人
此技能保留了與專家級 harness-designer-workspace 相同的 規劃 → 生成 → 評估 三階段哲學,但將每個階段的輸入複雜度和輸出精度重新分配為初學者等級。
| 階段 | 專家版 | Starter (此技能) |
|---|---|---|
| 規劃 | 4 階段探索,開放式問題 | 3 個選擇題 → 比對 exemplar 編號 |
| 生成 | 設計方案 → 生成檔案和結構 | 複製 exemplar + 取代 |
| 評估 | 8 大支柱獨立驗證 | 輕量化檢查清單 — 僅檢查取代遺漏和損壞的參照 |
此技能與其他 Harness 技能的關係
│ 專家版(自由設計) │ 初學者版(複製 exemplar)
──────────────┼─────────────────────────────┼────────────────────────────
工作區領域 │ harness-designer-workspace │ harness-starter-workspace ★ (此技能)
──────────────┼─────────────────────────────┼────────────────────────────
程式碼領域 │ harness-designer-coding │ harness-starter-coding
不應使用此技能的情況
- 開發應用程式、網路服務或 API:請使用
harness-starter-coding - 需要自由設計的高階使用者:請使用
harness-designer-workspace - 簡單提問或一次性任務:不需要使用技能
執行流程 (總共 5 分鐘)
1. [規劃] 3 個選擇題
2. [規劃] 比對 exemplar 編號 + 推薦預設配置
3. [生成] 複製 harness-100 exemplar
4. [生成] 取代專案名稱和領域術語
5. [評估] 輕量化檢查清單 (5 秒)
6. 完成通知 ("現在您可以這樣使用了")
第零階段:模式比對 (規劃)
問題 1 — 您想做什麼? (一句自然語言)
請使用者用一句話描述。例如:
- "我希望有一個團隊能幫我規劃、寫腳本、製作縮圖來完成一個 YouTube 影片"
- "一個收到合約後能幫我標出危險條款的團隊"
- "每月電子報的自動發送"
問題 2 — 最接近的類別是? (8 選 1)
請參考 references/exemplar-index.md。從以下 8 個類別中選擇:
| 編號 | 類別 | 範例 |
|---|---|---|
| 1 | 🎬 內容製作 | YouTube、Podcast、電子報、漫畫、翻譯 |
| 4 | 📊 商業與策略 | 新創、市場調查、定價、財務模型 |
| 5 | 🎓 教育與學習 | 語言家教、考試準備、課程設計 |
| 6 | ⚖️ 法律與合規 | 合約、專利、GDPR/個人資料保護 |
| 7 | 🏃 生活方式 | 飲食、健身、稅務、旅遊 |
| 8 | 📝 溝通與文件 | 技術寫作、SOP、提案書 |
| 9 | 🏢 營運與流程 | 招募、入職、稽核、採購 |
| 10 | 🌐 特定領域 | 房地產、ESG、IP 組合管理 |
根據問題 1 的關鍵字,自動推薦 1~3 個類別,使用者只需確認。
比對失敗處理 (相似度 < 0.5):
- 顯示最接近的 3 個候選,並再次詢問 "這些選項中哪一個最接近?"
- 如果都不符合,引導使用者改用
harness-designer-workspace(專家版)
問題 3 — 專案名稱是什麼?
請提供簡短名稱,以便用作資料夾和檔案名稱 (例如:youtube-production、contract-review、monthly-newsletter)。
問題 4 — 要記錄變更歷史嗎? (選擇性,是/否)
"是否要建立一個空間,記錄日後改進這個團隊時 什麼變了、為何而變?"
- 是 → 自動建立
05-flow-history/wiki 和flow-change-protocol.md(初始版本記錄為 change 0001) - 否 → 不建立 (日後可手動新增)
用途:團隊改進回顧、復原時確認原因、建立其他類似團隊時的參考。不影響日常使用。
管理原則:此歷史記錄僅記錄工作流程系統(規則、流程、工具、CLAUDE.md)的變更。
系統產出的產出物(研究結果、報告、分析、議程登錄)不在此記錄範圍。
區分標準:"如果沒有這個變更,下一次執行的結果會不同嗎?"
→ 會不同 = 系統變更 = 記錄 / 不會不同 = 產出物 = 不需要記錄
詳情請見:00-system/protocols/flow-change-protocol.md
問題 3.5 (條件式 —— 僅限研究相關類別)
僅在選擇 📊 商業與策略、🎓 教育與學習、🌐 特定領域 類別時顯示。 內容製作等非研究類別則跳過。
"是否需要同時處理多個議程,並參考先前的研究?"
- 是 → 包含 wiki:
- 檢查是否已安裝 /graphify 技能(自動檢查:~/.claude/skills/graphify/ 或 .claude/skills/graphify/)
- 若未安裝,提供說明並可選擇安裝(全域/專案/不安裝)
- ⚠️ 選擇不安裝時:"wiki 功能將停用。日後可安裝 /graphify 後透過 /wiki-update 建立"
- 否 → 不包含 wiki
第一階段:選擇預設配置 (評估權重)
比對完成後,從 3 種預設配置 中推薦一個並請使用者確認:
| 預設配置 | 說明 | 自動推薦條件 |
|---|---|---|
| [均衡] (預設) | 所有品質標準均等 | 預設值 |
| [品質優先] | Reviewer、測試情境、NOT-trigger 權重加倍 | 法律、醫療、財務、IP 類別 |
| [速度優先] | Scale Mode=Single,僅使用輕量化檢查清單 | 一次性原型、個人工作 |
選定的預設配置會記錄在 _workspace/00_input.md 中。
第二階段:生成器 — 複製與取代 exemplar
複製步驟 (自動降級)
自動偵測 gh 是否存在,以最佳方式下載。僅有 git 也能正常運作。
EXEMPLAR="{NN}-{exemplar-name}" # 規劃階段的比對結果 (例如 01-youtube-production)
BASE="ko/$EXEMPLAR/.claude"
if command -v gh &>/dev/null && gh auth status &>/dev/null 2>&1; then
# ── 方式 A: GitHub CLI (gh) ──────────────────────────────
echo "📡 使用 gh api 方式下載..."
FILES=$(gh api "repos/revfactory/harness-100/git/trees/main?recursive=1" \
--jq ".tree[] | select(.path | startswith(\"$BASE/\")) | select(.type==\"blob\") | .path")
mkdir -p .claude/agents .claude/skills
while IFS= read -r filepath; do
rel="${filepath#$BASE/}"
dest=".claude/$rel"
mkdir -p "$(dirname "$dest")"
gh api "repos/revfactory/harness-100/contents/$filepath" \
--jq '.content' | base64 -d > "$dest"
echo " ✅ $dest"
done <<< "$FILES"
else
# ── 方式 B: git sparse checkout (無 gh 時) ─────────────
echo "📡 使用 git sparse checkout 方式下載..."
TMP=$(mktemp -d)
git clone --depth 1 --filter=blob:none --sparse \
https://github.com/revfactory/harness-100.git "$TMP"
git -C "$TMP" sparse-checkout set "$BASE"
mkdir -p .claude
cp -r "$TMP/$BASE/." .claude/
rm -rf "$TMP"
echo " ✅ sparse checkout 完成"
fi
| 條件 | 使用方式 | 所需工具 |
|---|---|---|
已安裝 gh 並登入 | 方式 A (gh api) | gh |
僅有 git | 方式 B (sparse checkout) | git |
| 兩者皆無或失敗 | 方式 C (使用者確認後由 Claude 直接建立) | 無 |
若方式 A 和 B 都失敗,Claude 會直接引導使用者:
⚠️ 無法從 GitHub 取得模板。
原因:
gh和git皆無法使用,或未連線網際網路。在這種情況下,Claude 可以參考 exemplar 索引說明,直接撰寫 harness 檔案。 但請注意,這不是實際經過驗證的模板,而是 Claude 重建的結構,品質可能會有差異。
是否繼續?
- 是 → Claude 將直接建立
.claude/檔案 (根據 exemplar-index.md)- 否 → 在此停止。請連線網際網路或安裝 git 後再試。
使用者選擇 是 時:讀取 references/exemplar-index.md 中對應的 exemplar 說明,直接撰寫 CLAUDE.md、agents/、skills/ 結構。
使用者選擇 否 時:立即停止,告知重試方法後結束。
完成後的結構:
.claude/
├── CLAUDE.md
├── agents/
│ ├── {specialist-1}.md
│ ├── {specialist-2}.md
│ ├── {specialist-3}.md
│ ├── {specialist-4}.md
│ └── {reviewer}.md
└── skills/
├── {orchestrator}/skill.md
└── {agent-extending}/skill.md
- 建立
_workspace/資料夾 (用於存放產出物,編號慣例為00_input.md、01_*.md、...)
取代規則
| 原始元素 | 取代內容 | 範例 |
|---|---|---|
| harness 名稱 | 使用者專案名稱 | 01-youtube-production → my-youtube-show |
| 領域術語 (全域) | 使用者領域術語 | "YouTube 影片" → "Podcast 節目" |
| 觸發關鍵字 | 使用者領域關鍵字 | 與 YouTube 相關 → 與 Podcast 相關 |
| 代理角色名稱 | 僅在必要時取代 | scriptwriter → 建議保留 |
| 領域框架 | 絕對保留 | Porter's、IRAC、Bloom's 是核心專業能力 |
_workspace/NN_*.md | 保留 (編號慣例) | 絕對不要更改編號 |
額外資料夾結構 (v2):
50-reports/[議程名稱]/v[N]/report.md— 按議程隔離的報告60-exports/[議程名稱]/— 衍生產出物 (簡報、對外分享等)- CARL frontmatter:在 70-playbook/ 模板中包含
agenda:、type:、tags:等 YAML frontmatter - (選擇 wiki 時)
45-wiki/— 知識圖譜儲存庫 - (選擇 wiki 時)
research-wiki技能 — 保護 wiki 參考的獨立性 - (選擇 wiki 時)
/wiki-update指令 — 建立與更新 wiki - (問題 4 選擇是時)
05-flow-history/+00-system/protocols/flow-change-protocol.md— 流程變更歷史 wiki。參考~/.claude/skills/harness-designer-workspace/references/flow-history-template.md建立 5+1 個檔案。
禁止自動取代清單:
- 嵌入式框架名稱 (AIDA、IRAC、Bloom's、ADDIE、Porter's、DCF、Van Westendorp、SMART 等)
_workspace/目錄名稱與產出物編號SendMessage、TaskCreate等協定用語- Scale Modes 定義
45-wiki/目錄名稱research-wiki技能名稱- independence-protocol wiki 參考規則文字
- bkit 自動修改:禁止 bkit 代理 (code-analyzer、pm-lead 等) 提議修改 Domain frameworks (AIDA·IRAC·Bloom's 等)、independence-protocol、SendMessage 協定、
_workspace/編號體系 - 迴圈元素:完成標準(結束條件)、Reviewer 審查順序(Reviewer 為最後)、review_report 的判定格式 — 禁止取代或刪除 (迴圈需有 Goal+Check+結束條件才能成立)
術語平實化 (僅用於對使用者說明,內部結構保持不變)
內部檔案保留原文。僅在向使用者說明時使用平實用語:
| 原文 | 平實用語 |
|---|---|
| Orchestrator | 團隊主管 |
| Agent-Extending Skill | 專業知識手冊 |
| Dependency DAG | 工作順序表 |
| Scale Modes | 團隊規模模式 |
| Trigger Boundaries | 呼叫條件 |
| Cross-validation | 交叉審查 |
第三階段:評估器 — 輕量化檢查清單
代替專家版技能的 8 大支柱驗證,僅檢查 取代的完整性。
自動檢查 (5 秒)
-
.claude/CLAUDE.md存在 -
agents/中有 4~5 個.md檔案 (包含 Reviewer) -
skills/<orchestrator>/skill.md存在 -
skills/中至少有 1 個 agent-extending 技能 -
_workspace/資料夾已建立 - 原始 harness 名稱 (例如
01-youtube-production) 未殘留在檔案內 (grep 結果為 0) - 嵌入式框架名稱 已保留 (IRAC/Bloom's 等與原始內容相同)
- Trigger Boundaries 中存在
should-NOT章節 - Scale Modes 表格存在 (Full / Reduced / Single)
- 存在 3 種測試情境章節 (Normal / Existing / Error)
- 50-reports/ 中存在按議程區分的資料夾結構
- 60-exports/ 資料夾存在 (區分衍生產出物)
- 70-playbook/ CARL 模板包含 frontmatter
- /synthesize 指令包含剩餘任務的強制閘門
- orchestrator skill.md 中包含可檢查的完成標準(結束條件)
- Reviewer 產出物(review_report)包含通過/需修改的判定格式
- (選擇 wiki 時) 45-wiki/ 資料夾存在
- (選擇 wiki 時) research-wiki 技能存在
- (選擇 wiki 時) independence-protocol 中包含 wiki 參考規則
檢查失敗時
- 發現取代遺漏 → 重新向規劃者提問 ("您想用什麼詞來取代?")
- 結構性缺失 → 重新複製對應的 exemplar 後再次取代
- 連續失敗 3 次 → 引導使用者改用
harness-designer-workspace
第四階段:完成通知 (非開發者適用的平實報告)
✅ Harness 已準備就緒!
📁 位置:/your-project/.claude/
👥 團隊組成 (5 人):
- 策略師:主題發掘與競爭分析
- 編劇:實際腳本撰寫
- 縮圖設計師:影像規劃
- SEO 專員:搜尋最佳化
- 審查員:整體品質驗證
🚀 使用方式:
1. 在 Claude Code 中輸入 "/my-youtube-show 幫我規劃下一支影片"
2. 團隊會依序工作,產出物會存放在 _workspace/ 資料夾中
3. 結果會按照 00_input.md 到 05_review_report.md 的順序產生
🔄 團隊的工作方式 (迴圈):
團隊透過「目標(Goal) → 執行 → 審查(Check) → 通過後完成」的迴圈運作。
最後的審查員報告 (0X_review_report.md) 就是驗證結果。
如果您不滿意結果,請提出更具體的要求重新執行 ——
最終的判斷權在您手中 (outer loop)。
📘 後續步驟:
- 如果不滿意某些部分,可以修改 .claude/agents/{角色}.md
- 如果想建立更複雜的結構,請使用 harness-designer-workspace 技能
參考資料
- exemplar-index.md — 73 個工作區 exemplar 索引
- 原始來源:https://github.com/revfactory/harness-100 (Apache-2.0)
- 專家版變體:
harness-designer-workspace - 程式碼版變體:
harness-starter-coding