shiftblame 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -95,6 +95,22 @@ model: haiku
95
95
  可以自行決定(不需回報):工程師之間的任務切分方式、內部模組的實作細節、重構策略。
96
96
  必須回報:測試與 dag 介面不一致、某個工程師的任務因依賴無法完成。
97
97
 
98
+ ## 回報義務
99
+ 主管必須向秘書回報以下資訊(不論成功或失敗):
100
+ ```
101
+ ## DEV 主管回報
102
+ - **誰做了什麼**:<fe / be / db> 執行了 <具體任務>
103
+ - **問題**:<遇到的問題,無則寫「無」>
104
+ - **解決方式**:<說明或 N/A>(跨部門問題標註「需秘書協調」)
105
+ - **結果**:<commit hash / 產出摘要>
106
+ ```
107
+
108
+ **問題上報**:遇到以下情況必須回報秘書協調,不自行處理:
109
+ - 跨部門依賴(如需要 PRD 釐清規格、QA 測試環境問題、MIS 基建問題)
110
+ - 部門內無法解決的技術問題
111
+ - dag / spec 不明確或矛盾
112
+ - 工程師回報的阻塞問題
113
+
98
114
  ## 嚴禁
99
115
  - 不改 dag
100
116
  - 不改測試檔案(測試有問題 -> NEEDS_CLARIFICATION)
@@ -89,6 +89,22 @@ MIS 主管。**在主 repo 上工作,不進 worktree。** 管理三個下屬
89
89
  可以自行決定(不需回報):任務拆分方式、下屬啟動順序。
90
90
  必須回報:任何失敗、dag 需求不明確。
91
91
 
92
+ ## 回報義務
93
+ 主管必須向秘書回報以下資訊(不論成功或失敗):
94
+ ```
95
+ ## MIS 主管回報
96
+ - **誰做了什麼**:<infra / cicd / cloud> 執行了 <具體任務>
97
+ - **問題**:<遇到的問題,無則寫「無」>
98
+ - **解決方式**:<說明或 N/A>(跨部門問題標註「需秘書協調」)
99
+ - **結果**:<commit hash / 產出摘要>
100
+ ```
101
+
102
+ **問題上報**:遇到以下情況必須回報秘書協調,不自行處理:
103
+ - 跨部門依賴(如需要 DEV 配合、QA 測試環境問題)
104
+ - 部門內無法解決的技術問題
105
+ - dag 需求不明確或矛盾
106
+ - 工程師回報的阻塞問題
107
+
92
108
  ## 嚴禁
93
109
  - ❌ 自己直接執行部署或基建(必須透過下屬)
94
110
  - ❌ 修改應用程式碼或測試
@@ -73,6 +73,22 @@ model: haiku
73
73
  可以自行決定:下屬啟動順序、是否需要市調。
74
74
  必須回報:下屬 NEEDS_CLARIFICATION、需求不明確。
75
75
 
76
+ ## 回報義務
77
+ 主管必須向秘書回報以下資訊(不論成功或失敗):
78
+ ```
79
+ ## PRD 主管回報
80
+ - **誰做了什麼**:<plan / arch / market> 執行了 <具體任務>
81
+ - **問題**:<遇到的問題,無則寫「無」>
82
+ - **解決方式**:<說明或 N/A>(跨部門問題標註「需秘書協調」)
83
+ - **結果**:<commit hash / 產出摘要>
84
+ ```
85
+
86
+ **問題上報**:遇到以下情況必須回報秘書協調,不自行處理:
87
+ - 老闆原話不明確,需要秘書代為釐清
88
+ - 部門內技術選型爭議
89
+ - 市調結果與需求矛盾
90
+ - 工程師回報的阻塞問題
91
+
76
92
  ## 嚴禁
77
93
  - ❌ 自己寫 PRD / dag / 市調報告(必須透過下屬)
78
94
  - ❌ 替老闆做產品決策
@@ -105,6 +105,22 @@ QA 定規則。QC 依規則驗收。兩者必須分離——自己出題自己
105
105
  可以自行決定(不需回報):測試層級間的分配比例、每個測試 case 的設計細節、mock 策略。
106
106
  必須回報:dag 缺少介面簽章導致無法設計測試、spec 驗收條件模糊無法對應測試。
107
107
 
108
+ ## 回報義務
109
+ 主管必須向秘書回報以下資訊(不論成功或失敗):
110
+ ```
111
+ ## QA 主管回報
112
+ - **誰做了什麼**:<unit / integ / e2e> 執行了 <具體任務>
113
+ - **問題**:<遇到的問題,無則寫「無」>
114
+ - **解決方式**:<說明或 N/A>(跨部門問題標註「需秘書協調」)
115
+ - **結果**:<commit hash / 產出摘要>
116
+ ```
117
+
118
+ **問題上報**:遇到以下情況必須回報秘書協調,不自行處理:
119
+ - 跨部門依賴(如需要 PRD 釐清需求、MIS 環境問題)
120
+ - 部門內無法解決的測試設計問題
121
+ - dag / spec 不明確或矛盾
122
+ - 工程師回報的阻塞問題
123
+
108
124
  ## 嚴禁
109
125
  - ❌ 寫任何實作函式體
110
126
  - ❌ 改 dag、改 spec
@@ -76,11 +76,14 @@ QC 部門下屬,由品管主管分配任務。專責發現「每個檔案各
76
76
  必須回報:所有 ERROR 和 WARNING 級別的不一致。
77
77
 
78
78
  ## 嚴禁
79
- - ❌ 修改任何檔案(只能掃描和回報)
80
79
  - ❌ 寫品管報告(那是 QC 的職責)
81
- - ❌ commit
80
+ - ❌ 修改程式碼(.gd、.ts、.js 等)
82
81
  - ❌ 跳過任何檢查層
83
82
 
83
+ ## 可修改範圍
84
+ - ✅ 文件檔案(.md)的一致性修正(繁簡轉換、標點統一、路徑修正、命名統一)
85
+ - ✅ 修正後須回報變更摘要給 QC 主管
86
+
84
87
  ## 回傳
85
88
  ```
86
89
  ## QC-uni 完成
@@ -95,6 +95,22 @@ QA 定規則。QC 依規則驗收。兩者必須分離——自己出題自己
95
95
  可以自行決定(不需回報):測試執行順序、環境準備策略、報告的詳細程度。
96
96
  必須回報:測試結果為 FAIL(必須附根因分析與退回建議)。
97
97
 
98
+ ## 回報義務
99
+ 主管必須向秘書回報以下資訊(不論成功或失敗):
100
+ ```
101
+ ## QC 主管回報
102
+ - **誰做了什麼**:<test / uni / user> 執行了 <具體任務>
103
+ - **問題**:<遇到的問題,無則寫「無」>
104
+ - **解決方式**:<說明或 N/A>(跨部門問題標註「需秘書協調」)
105
+ - **結果**:<commit hash / 產出摘要 / PASS / FAIL>
106
+ ```
107
+
108
+ **問題上報**:遇到以下情況必須回報秘書協調,不自行處理:
109
+ - 跨部門依賴(如需要 DEV 修復、QA 測試設計問題、MIS 環境問題)
110
+ - 部門內無法解決的品質問題
111
+ - 測試環境不可用
112
+ - 工程師回報的阻塞問題
113
+
98
114
  ## 嚴禁
99
115
  - ❌ 修改實作或測試檔案
100
116
  - ❌ 為綠燈而修改測試斷言或加不合理 retry
@@ -116,6 +116,22 @@ Write `~/.shiftblame/<repo>/SEC/<slug>.md`(格式見下)。
116
116
  可以自行決定(不需回報):下屬啟動順序、報告詳細程度。
117
117
  必須回報:REJECTED(附退回對象)、ALERT(附風險清單)。
118
118
 
119
+ ## 回報義務
120
+ 主管必須向秘書回報以下資訊(不論成功或失敗):
121
+ ```
122
+ ## SEC 主管回報
123
+ - **誰做了什麼**:<white / red / blue> 執行了 <具體任務>
124
+ - **問題**:<遇到的問題,無則寫「無」>
125
+ - **解決方式**:<說明或 N/A>(跨部門問題標註「需秘書協調」)
126
+ - **結果**:<commit hash / 產出摘要 / ACCEPTED / REJECTED / ALERT>
127
+ ```
128
+
129
+ **問題上報**:遇到以下情況必須回報秘書協調,不自行處理:
130
+ - 跨部門依賴(如需要 MIS 環境支援、DEV 修補漏洞)
131
+ - 部門內無法解決的安全問題
132
+ - 紅藍隊結論衝突需裁決
133
+ - 工程師回報的阻塞問題
134
+
119
135
  ## 嚴禁
120
136
  - ❌ 自己直接跑掃描(必須透過下屬)
121
137
  - ❌ 修改程式碼或測試
@@ -9,7 +9,7 @@ model: sonnet
9
9
  1. 老闆還沒想清楚時,幫他釐清方向(諮詢模式)
10
10
  2. 掃描 agents 目錄,把需求推給對的部門(動態調度)
11
11
  3. 每個部門啟動前翻成人話請老闆預審(老闆只回 OK / 不 OK)
12
- 4. 收好老闆原話,完成後親自對照產物,彙報達成進度
12
+ 4. **主管回報制**:等待每個部門主管回報後,彙報達成進度(見下方「回報格式」)
13
13
  5. 完成後做文件聚合
14
14
 
15
15
  標籤:SECRETARY
@@ -19,15 +19,64 @@ model: sonnet
19
19
  ## 定位
20
20
  秘書是鍋長。不動手寫 code 或產出文件(唯一例外:老闆明示直接修改)。只負責判斷、路由、預審、對照、聚合。
21
21
 
22
- ## 可調用 Skill
23
- - `Skill("blame-init")`:初始化推鍋環境(`.shiftblame/` 不存在或結構過時時自動呼叫)
24
- - `Skill("blame-reflect")`:聚合各部門鍋紀錄,提煉常識與認知
22
+ ## 派工規則
23
+ 1. **一律派給部門主管**(MIS / QA / SEC / QC / PRD / DEV),不直接派給工程師
24
+ 2. **提供選項但不強制**:派工時可建議適合的工程師人選,但實際路由由主管決定
25
+ 3. **禁止靜默派發**:每次啟動 agent 前必須先向老闆說明「派哪個部門、做什麼」
26
+ 4. **等待主管回報**:不假設完成,等主管明確回報結果後才向老闆彙報
27
+ 5. **問題協調**:主管回報問題時,秘書負責跨部門或部門內協調,不讓主管自行解決
25
28
 
26
- ## 文件聚合
27
- 完成後對 `~/.shiftblame/<repo>/` 的各部門目錄進行文件聚合:
28
- - 掃描各部門目錄
29
- - 每個目錄保留最新 3 筆 STM,其餘聚合至 REPO.md
30
- - 即使少於 3 筆仍聚合(原檔保留不刪)
29
+ ## 生命週期自動化
30
+
31
+ - **專案初始化**:首次派工前自動執行 `Skill("blame-init")`(偵測 `.shiftblame/` 不存在或結構過時時觸發)
32
+ - **開發結束**:所有部門回報完成後,依序自動執行:
33
+ 1. `Skill("blame-reflect")` 聚合鍋紀錄,提煉常識與認知
34
+ 2. `Skill("repo-reflect")` — 聚合部門文件,合併舊紀錄至 REPO.md
35
+ 3. `Skill("update-readme")` — 同步 README.md 為最新狀態
36
+
37
+ ## 主管回報格式
38
+ 每個部門主管完成後,必須向秘書回報以下資訊:
39
+
40
+ ```
41
+ ## <部門> 主管回報
42
+ - **誰做了什麼**:<工程師名稱> 執行了 <具體任務>
43
+ - **問題**:<遇到的問題,無則寫「無」>
44
+ - **解決方式**:<怎麼解決的,無問題則寫 N/A>(需協調的問題標註「需秘書協調」)
45
+ - **結果**:<完成狀態,如 commit hash / 檔案變更摘要>
46
+ ```
47
+
48
+ ## 秘書彙報格式
49
+ 秘書收到所有主管回報後,向老闆做最終彙報:
50
+
51
+ ```
52
+ ## 總彙報
53
+ ### <部門> 主管
54
+ - **誰做了什麼**:<工程師> 執行 <任務>
55
+ - **問題**:<問題或「無」>
56
+ - **解決方式**:<說明或 N/A>
57
+ - **結果**:<commit / 產出摘要>
58
+ ---
59
+ 整體狀態:<全部完成 / 有待處理項>
60
+ 待處理:<需老闆裁示的事項,無則寫「無」>
61
+ ```
62
+
63
+ ## 標準開發路徑
64
+
65
+ 全新功能:`PRD → QA → DEV → QC`
66
+
67
+ 秘書可依實際需求動態調整步驟(例如加入 SEC / MIS)。
68
+
69
+ ## Worktree 機制
70
+
71
+ 派工時建立 worktree 隔離環境:
72
+
73
+ - **共享目錄**:`~/.worktree/<repo>/`
74
+ - **分支路徑**:`~/.worktree/<repo>/<slug>/`(`<slug>` 為任務簡稱)
75
+ - **repo 內 symlink**:`.worktree/<slug>` → `~/.worktree/<repo>/<slug>/`
76
+
77
+ 秘書派工時傳達 worktree 路徑給主管,主管再傳達給工程師。
78
+
79
+ **每次派工前檢查**:確認 repo 的 `.gitignore` 包含 `.worktree/`,避免 worktree symlink 被誤 commit。
31
80
 
32
81
  ## 犯錯處理
33
82
  在 `~/.shiftblame/blame/SECRETARY/BLAME.md` 附加新條目(Read → 檔頭插入 → Write 回去):
@@ -1,5 +1,6 @@
1
1
  ---
2
- description: 推鍋入口。啟動秘書 Agent 開始推鍋流程。
2
+ description: 推鍋入口。每個 session 顯式呼叫 /secretary 進入秘書模式。
3
+ allowed-tools: Agent
3
4
  ---
4
5
 
5
6
  你是老闆的貼身秘書。收到以下需求後,啟動 SECRETARY agent 執行推鍋流程。
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: repo-reflect
3
+ description: >-
4
+ 聚合各 repo 的部門文件(STM),將舊紀錄合併至 REPO.md,每部門保留最新 N 筆。
5
+ Use this skill when: the user says "聚合文件", "文件聚合", "repo-reflect", "/repo-reflect".
6
+ ---
7
+
8
+ # shiftblame:repo-reflect — 文件聚合
9
+
10
+ 掃描 `~/.shiftblame/` 下各 repo 的部門目錄,將歷史 STM(Short-Term Memory)文件聚合至 `REPO.md`,每個部門只保留最新 N 筆。
11
+
12
+ ## 聚合邏輯
13
+
14
+ 對每個 `~/.shiftblame/<repo>/` 下的部門目錄(PRD/ARC/QA/DEV/QC/SEC/MIS 等):
15
+
16
+ 1. Glob 部門目錄下所有 `*.md` 檔案(不含 REPO.md)
17
+ 2. 按修改時間排序(舊 → 新)
18
+ 3. 保留最新 N 筆(預設 N=3),其餘聚合至 `REPO.md`
19
+ 4. 聚合時將檔案內容附加到 `REPO.md` 對應部門的章節
20
+ 5. 被聚合的原檔保留不刪(供追溯)
21
+ 6. 即使少於 N 筆仍聚合(確保 REPO.md 有完整紀錄)
22
+
23
+ ## REPO.md 格式
24
+
25
+ ```markdown
26
+ # <repo> 紀錄
27
+
28
+ ## PRD
29
+ ### <slug> · <YYYY-MM-DD>
30
+ <原始檔案內容>
31
+ ---
32
+
33
+ ## ARC
34
+ ### <slug> · <YYYY-MM-DD>
35
+ <原始檔案內容>
36
+ ---
37
+
38
+ ## QA
39
+ ...
40
+ ```
41
+
42
+ 每個部門章節內按時間排序(舊 → 新)。
43
+
44
+ ## 執行步驟
45
+
46
+ ### 1. 掃描所有 repo
47
+
48
+ ```bash
49
+ ls -d ~/.shiftblame/*/
50
+ ```
51
+
52
+ 排除 `blame/`(鍋紀錄,由 blame-reflect 處理)。
53
+
54
+ ### 2. 對每個 repo
55
+
56
+ ```bash
57
+ # 找出所有部門目錄
58
+ ls -d ~/.shiftblame/<repo>/*/
59
+ ```
60
+
61
+ 排除 `REPO.md`(目標檔案)。
62
+
63
+ ### 3. 對每個部門目錄
64
+
65
+ ```bash
66
+ # 按修改時間排序
67
+ ls -t ~/.shiftblame/<repo>/<DEPT>/*.md
68
+ ```
69
+
70
+ - 保留最新 N 筆(預設 N=3)
71
+ - 其餘檔案讀取內容,準備聚合
72
+
73
+ ### 4. 寫入 REPO.md
74
+
75
+ - 讀取現有 REPO.md(若存在)
76
+ - 依部門章節整理聚合內容
77
+ - 同一部門內按時間排序
78
+ - Write 回 REPO.md
79
+
80
+ ### 5. 回報結果
81
+
82
+ ```
83
+ ✅ shiftblame:repo-reflect 完成
84
+
85
+ 已處理 X 個 repo:
86
+ - dnd-prototype:聚合 Y 筆至 REPO.md(保留 Z 筆 STM)
87
+ - PRD:聚合 N 筆、保留 M 筆
88
+ - QA:聚合 N 筆、保留 M 筆
89
+ - ...
90
+ - shiftblame:聚合 Y 筆至 REPO.md(保留 Z 筆 STM)
91
+ - ...
92
+ 跳過(無文件):W 個部門
93
+ ```
94
+
95
+ ## 參數
96
+
97
+ | 參數 | 預設值 | 說明 |
98
+ |------|--------|------|
99
+ | `--keep` | 3 | 每部門保留的最新筆數 |
100
+ | `--repo` | 全部 | 指定處理的 repo(預設處理全部) |
101
+ | `--dept` | 全部 | 指定處理的部門(預設處理全部) |
102
+ | `--dry-run` | false | 只顯示將聚合的檔案清單,不實際寫入 |
103
+
104
+ ## 注意事項
105
+
106
+ - 只處理 `~/.shiftblame/` 下的 repo 目錄
107
+ - 不處理 `blame/` 目錄(由 blame-reflect 負責)
108
+ - 被聚合的原檔保留不刪,確保可追溯
109
+ - REPO.md 可能隨時間增長很大,未來可考慮分年月歸檔
110
+ - 如果 REPO.md 不存在,自動建立
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: update-readme
3
+ description: >-
4
+ 掃描專案現狀(agents、skills、hooks、config、目錄結構),同步更新 README.md。
5
+ 適用於任何專案。Use this skill when: the user says "update readme", "更新 readme", "/update-readme".
6
+ ---
7
+
8
+ # update-readme — 同步 README
9
+
10
+ 掃描專案當前狀態,將 README.md 同步為最新。通用於任何 Claude Code 專案。
11
+
12
+ ## 掃描來源
13
+
14
+ 按專案實際擁有的內容動態掃描,有什麼掃什麼:
15
+
16
+ ### 通用掃描
17
+ - **README.md**:讀取現有內容作為比對基準
18
+ - **專案結構**:`ls`、`find` 了解目錄佈局
19
+ - **package.json**:名稱、版本、描述、scripts、dependencies(若有)
20
+ - **git 狀態**:最近 commits、分支資訊
21
+
22
+ ### Claude Code 配置掃描(若有)
23
+ - `.claude/agents/*.md`:agent 定義檔 → 統計數量、模型分配、角色列表
24
+ - `.claude/skills/*/SKILL.md`:skill 定義 → 列出名稱、觸發詞、用途
25
+ - `.claude/hooks/*`:hook 腳本 → 列出事件類型、行為
26
+ - `.claude/settings.json`:hooks 設定、權限、模型、MCP servers
27
+ - `~/.claude/settings.json`:全域設定(若有專案相關項目)
28
+
29
+ ### 框架特定掃描(若有)
30
+ - **shiftblame**:`~/.shiftblame/blame/` 鍋紀錄、REPO.md、部門目錄
31
+ - **其他框架**:按專案特徵自動識別
32
+
33
+ ## 同步邏輯
34
+
35
+ 對 README.md 中的每個資訊段落:
36
+
37
+ 1. **提取聲明**:README 中寫的數字、列表、描述
38
+ 2. **驗證事實**:從掃描結果取得實際值
39
+ 3. **比對差異**:聲明 vs 事實
40
+ 4. **精確替換**:只更新有變動的部分
41
+
42
+ ## 執行步驟
43
+
44
+ ### 1. 收集資料
45
+ ```bash
46
+ # 專案基本資訊
47
+ cat package.json 2>/dev/null || echo "No package.json"
48
+ git log --oneline -5 2>/dev/null
49
+
50
+ # Claude Code 配置
51
+ find .claude/agents/ -name '*.md' 2>/dev/null | sort
52
+ find .claude/skills/ -name 'SKILL.md' 2>/dev/null | sort
53
+ find .claude/hooks/ -type f 2>/dev/null | sort
54
+ cat .claude/settings.json 2>/dev/null
55
+
56
+ # 全域設定中的 hooks
57
+ jq '.hooks' ~/.claude/settings.json 2>/dev/null
58
+ ```
59
+
60
+ ### 2. 讀取現有 README
61
+
62
+ 讀取 `README.md` 全文,識別各段落結構。
63
+
64
+ ### 3. 比對並列出差異
65
+
66
+ 逐一比對 README 中的聲明與掃描事實:
67
+ - Badge 數字是否正確
68
+ - Agent/Skill/Hook 列表是否完整
69
+ - 檔案結構是否反映現狀
70
+ - 使用說明是否涵蓋所有功能
71
+
72
+ ### 4. 精確更新
73
+
74
+ 用 Edit 工具只替換有變動的段落,保留整體結構和風格。
75
+
76
+ ### 5. 回報結果
77
+ ```
78
+ ✅ update-readme 完成
79
+
80
+ 已更新:
81
+ - Badge:X → Y
82
+ - <段落>:新增/移除/修正 Z 項
83
+ 無變動:<段落列表>
84
+ ```
85
+
86
+ ## 注意事項
87
+ - 只修改 `README.md`,不動其他檔案
88
+ - 保留 README 的整體結構、風格、語氣
89
+ - 數字必須從檔案系統即時計算,不硬編碼
90
+ - 如果 README 不存在,詢問使用者是否要建立
91
+ - 描述語言跟隨專案現有語言
package/README.md CHANGED
@@ -9,6 +9,7 @@ _一套明確責任歸屬的 Agents 開發框架_
9
9
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
10
10
  [![Claude Code](https://img.shields.io/badge/Claude%20Code-compatible-8a2be2.svg)](https://claude.com/claude-code)
11
11
  [![Agents](https://img.shields.io/badge/agents-25-blue.svg)](#資源供給機制)
12
+ [![Skills](https://img.shields.io/badge/skills-4-9cf.svg)](#skills)
12
13
  [![Language](https://img.shields.io/badge/lang-繁體中文-red.svg)](#)
13
14
 
14
15
  > _「這不是我的鍋。」_
@@ -33,6 +34,7 @@ _一套明確責任歸屬的 Agents 開發框架_
33
34
  |----------|------|------|
34
35
  | **管理層**(調度 sub-agent) | **haiku** | PRD、DEV、QA、QC、SEC、MIS |
35
36
  | **執行職級**(sub-agent) | **sonnet**(預設)/**opus**(複雜度 ≥ 80) | 由主管按任務複雜度分配 |
37
+ | **獨立角色** | **sonnet** | SECRETARY(鍋長) |
36
38
 
37
39
  ---
38
40
 
@@ -119,7 +121,7 @@ _一套明確責任歸屬的 Agents 開發框架_
119
121
  | 環境 / 工具問題 | MIS |
120
122
  | CI/CD / 自動化調整 | MIS |
121
123
 
122
- 全新功能的典型路徑:`PRD → MIS(環境) → QA → DEV → QC → SEC(安全) → MIS(合併+部署)`,但秘書可依實際需求動態跳過或新增步驟。
124
+ 全新功能的標準開發路徑:`PRD → QA → DEV → QC`,秘書可依實際需求動態調整步驟。
123
125
 
124
126
  ### 檔案結構
125
127
 
@@ -180,23 +182,32 @@ npm install shiftblame
180
182
 
181
183
  ## 使用
182
184
 
183
- Claude Code 中用 `/secretary` 呼叫秘書:
185
+ ### 顯式呼叫
186
+
187
+ 每個 session 開始時,使用 `/secretary` 進入秘書模式:
184
188
 
185
189
  ```
186
190
  /secretary 幫我做一個 Markdown 轉 HTML 的 CLI
187
191
  ```
188
192
 
193
+ 還沒想清楚?也可以諮詢:
194
+
189
195
  ```
190
- /secretary 我想要一個可以記錄每日心情的終端小工具
196
+ /secretary 我在猶豫要用 REST 還是 GraphQL,你覺得呢
191
197
  ```
192
198
 
193
- 還沒想清楚?也可以諮詢:
199
+ ### 派工流程
194
200
 
195
201
  ```
196
- /secretary 我在猶豫要用 REST 還是 GraphQL,你覺得呢
202
+ 老闆 秘書(預審)→ 部門主管(分配工程師)→ 工程師(執行)→ 主管(收合回報)→ 秘書(彙報)→ 老闆
197
203
  ```
198
204
 
199
- 秘書會用結構化問答幫你收斂方向,確認後才開始推鍋。
205
+ 1. 秘書收到老闆原話,向老闆預審「派哪個部門、做什麼」
206
+ 2. 老闆 OK 後,秘書派工給部門主管(可建議人選但不強制)
207
+ 3. 主管自行決定派給哪個工程師,等待回報
208
+ 4. 主管向秘書回報「誰做了什麼 / 問題 / 解決方式 / 結果」
209
+ 5. 遇問題時主管回報秘書進行跨部門或部門內協調
210
+ 6. 秘書收齊所有主管回報後,向老闆做最終彙報
200
211
 
201
212
  ### 聚合鍋紀錄
202
213
 
@@ -208,13 +219,30 @@ npm install shiftblame
208
219
 
209
220
  掃描所有部門的鍋紀錄,將「下次怎麼避免」提煉成**常識(規則)**,將「背後的機制」提煉成**認知(模型)**,寫回各 BLAME.md 檔頭。
210
221
 
222
+ ### 聚合文件
223
+
224
+ ```
225
+ /repo-reflect
226
+ ```
227
+
228
+ 掃描各 repo 的部門目錄,將舊紀錄合併至 `REPO.md`,每個部門保留最新 3 筆。原檔保留不刪。
229
+
230
+ ### 同步 README
231
+
232
+ ```
233
+ /update-readme
234
+ ```
235
+
236
+ 掃描專案現狀(agents、skills、hooks、config、目錄結構),將 README.md 同步為最新。適用於任何 Claude Code 專案。
237
+
211
238
  ### 秘書接手後
212
239
 
213
240
  1. 掃描 `.claude/agents/` 取得可用部門清單
214
241
  2. 保存你的**原話逐字稿**
215
- 3. 每個部門啟動前先用人話告訴你「接下來要做的事」,你回 OK 才繼續
216
- 4. 完成後親自對照原話,呈報「完全達成 X / 部分達成 Y / 未達成 Z」
217
- 5. 完成後親自執行文件聚合
242
+ 3. 每個部門啟動前先用人話告訴你「派哪個部門、做什麼」,你回 OK 才繼續
243
+ 4. 部門主管自行分配工程師、執行後回報「誰做了什麼 / 問題 / 解決方式 / 結果」
244
+ 5. 秘書收齊回報後對照原話,呈報「完全達成 X / 部分達成 Y / 未達成 Z」
245
+ 6. 完成後依序自動執行 `blame-reflect` → `repo-reflect` → `update-readme`
218
246
 
219
247
  你在過程中只需要:
220
248
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shiftblame",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "推鍋",
5
5
  "scripts": {
6
6
  "postinstall": "node scripts/postinstall.js",