Files
ISEP/skills/deep-recall/SKILL.md
T
Leo c2638668e3 ISEP 0.1.0:環境設定收成一個 plugin,本機與雲端共用一份
leo 2026-08-20:「同一個 plugin 你用,薄殼也用,保證兩邊同步」
              「我要你幫雲端做薄殼,永遠都有問題,你要做的就是這組設定
                你自己可以 dogfooding」

搬進來:41 支 hook(51 條註冊)/7 支 command/2 支 skill/23 支腳本。
不搬 .env、wiki、docs——那些是知識不是環境。

51 條 hook 路徑全部從 $CLAUDE_PROJECT_DIR/.claude/hooks/ 改成 ${CLAUDE_PLUGIN_ROOT}/hooks/,
零漏網。那正是薄殼一直壞掉的根:雲端 cwd 不是真身,寫死路徑就斷。

尚未驗證:Claude Code 能不能從私有 Gitea repo 裝 marketplace(要憑證)。
下一步就是在本機實際裝一次,通了才動雲端 bootstrap.sh。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 11:41:46 +08:00

115 lines
6.1 KiB
Markdown
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.
---
name: deep-recall
description: |
內部 deep research:把散落在 Gitea 票、各 repo wiki、KBDB 裡的枝葉,**還原成一棵 leo 讀得懂的樹**。
在下列時機必讀、必用:leo 問「現在做到哪」「有什麼還沒完成」「幫我看現況」「列今天的大項」;
要交任何橫跨 3 個以上票或 repo 的回報;重裝/遷移前後要拍對帳快照;接關後要向 leo 交待全局。
核心判準:**leo 要的是「他能讀的資訊」,不是「拆得更細的知識」**——
交出沒有分組的清單、或沒有邏輯鏈的散文,兩者都算沒交付(2026-08-14 一個 session 內連犯兩次)。
收齊:為什麼「靠記得提綱挈領」必定失敗的機械原因/三步流程(分頭讀→只回 schema→先分群再下筆)/
輸出樹的硬格式(每格必須有出處+狀態)/五條禁令/快照落地位置與對帳用法。
---
# deep-recall — 內部 deep research
## 這支存在的原因(先讀,否則你會以為自己不需要它)
leo 2026-08-14:「給你大量資訊時,你有 2 種反應:1)列出瑣碎資訊沒有分組、重組;
2)總結成幾段缺邏輯鏈的散文。**總管需要提綱挈領**。」
**這不是能力問題,是流程問題。** 對外 deep research 能從枝葉還原樹,靠的是三件事——
而「自己一頁一頁讀完再憑印象寫」這三件一件都沒有:
| deep research 做的 | 自己硬讀會發生什麼 |
|---|---|
| 每個來源由**獨立的讀者**讀完,只把**結構化摘要**帶回來 | 原文全湧進同一個 context,讀到第 30 筆時前面的細節已在跟新細節爭位置 ⇒ 只剩「還記得的那幾條」=清單 |
| **先產候選主題、把發現掛上去、再砍掉沒支撐的枝** | 邊讀邊寫 ⇒ 輸出順序=讀到的順序 ⇒ 流水帳 |
| 每個節點**回貼出處與狀態** | 沒有出處就只能寫感想 ⇒ 散文 |
🔴 **判準:你手上有沒有枝葉,跟你交不交得出樹,是兩件事。**
2026-08-14 那次,總管**已經讀完** 134 張票與全部 wiki,交出去的仍然是清單——
所以「下次記得要提綱挈領」不是解法,**照下面的步驟做**才是。
## 三步流程(不准跳步)
### 步驟 1|先劃範圍與骨架,再讀任何一個字
寫下這三行(寫在回覆或 scratchpad,不准只在腦裡):
1. **問題**:leo 這次要的是什麼決定/什麼判斷(不是「他問了什麼」,是「他要拿它做什麼」)
2. **來源清單**:哪些 repo 的票、哪些 wiki 檔、KBDB 的哪幾個查詢、哪些線上端點
3. **候選骨架**:先猜 3–5 條主線(**允許猜錯,後面會被證據推翻**)——沒有骨架就會退化成流水帳
### 步驟 2|分頭讀,每個讀者只准回固定 schema
一個來源一個 subagent(或一批)。**原文不進主 context**,只回這個 schema
```json
{
"source": "Leo/Arcrun#87 / system-dev/wiki/mistakes.md:1200-1400 / kbdb_get_map()",
"findings": [
{
"claim": "一句話講完的事實(人話,不是術語)",
"evidence": "票號+留言 id/檔:行/實測輸出的關鍵那行",
"status": "✅通 | ◐半通 | ❌斷 | 📌事實",
"blocked_by": "誰擋著它(票號/人/前置條件),沒有就 null",
"belongs_to": "你認為它掛在哪條主線(用步驟 1 的骨架,覺得都不對就寫 new:<你的命名>)"
}
]
}
```
- 派給 subagent 時**寫目的不寫做法**CLAUDE.md 派工鐵律),但**輸出 schema 要寫死**——
格式不是做法,是介面。
- **事實宣稱要自己驗**(規則四之一):subagent 回「X 不存在」時,那多半是「我這裡看不到」。
### 步驟 3|先分群,再下筆
1. 把所有 `findings``belongs_to` 攤開,**看哪些 new: 出現超過兩次** ⇒ 那是骨架漏掉的主線,補進去
2. **砍掉只有一個發現支撐的枝**(那是細節,塞回它的父節點當證據)
3. 每條主線寫一句 **「共通形狀」**——如果寫不出來,那條主線是假的,拆掉重分
4. 才開始寫輸出
## 輸出的硬格式
```
主線 N|<一句話的父項,講「共通形狀」不是講領域>
現況:✅通 / ◐半通 / ❌斷 ——(一句話:卡在哪)
├─ <子節點> [狀態] ← <出處>
├─ <子節點> [狀態] ← <出處>
完工判準:<可以實測的一句話>
下一步:<誰做什麼;要 leo 的標 👤>
```
**每一格都要有 `← 出處`。** 寫不出出處的節點**不准出現**——
它不是「我還沒查」,它是「我在編」。
## 五條禁令
1. **不准交沒有父項的清單**(票號列表=原始資料,不是回報)
2. **不准交沒有出處的散文**
3. **不准把「我沒查」「查不到」「工具回 401/回 0」講成「不存在」**(三者要分開講)
4. **不准把「程式碼寫完了」當成狀態**——狀態只有 ✅/◐/❌(CLAUDE.md Critical Path 鐵律)
5. **不准在同一份輸出裡混「已驗證」與「我推測」而不標**
## 快照要落地(否則下次又要重跑一次)
產出的樹存成 `system-dev/wiki/trees/<YYYY-MM-DD>-<主題>.md`,開頭三行寫:
**問題/來源清單/量測時間**
**對帳用法(重裝、遷移、大改之前後必做)**:動手前拍一次、動完拍一次,
`diff` 兩棵樹——**沒有掉東西**才算成功。這是「重裝有沒有弄丟知識」唯一可驗的方法。
## 這支的終局:它應該被資料層取代
現在這支是 brute force:每次都要把全部重讀一遍,貴且慢。
**真正的解是讓那棵樹變成 ingest 的產物**——leo 2026-08-14 定的兩條鏈:
```
上傳:原文 → 萃 wiki → 同步 wiki+三元組+該庫 index → 組成全局圖 → 算出全庫摘要
查詢:圖搜索 → 查到幾個有關庫 → 查該庫 index → 從 index 找 wiki → 從 wiki 找原文
```
**「該庫 index」與「全庫摘要」就是這棵樹的持久化版本。** 它們做出來以後,
本 skill 從「每次重算」降級成「驗算與補洞」。在那之前,**每次都要跑這支**。