fade-away
維護一個輕量級的工作日誌 -> 主題維基 -> 索引 -> 每週地圖 -> 知識庫記憶層,讓使用者能夠切換任務,建立個人 LLM 知識庫,無需重複解釋上下文。
操作契約
此技能在整個對話過程中運作,而不僅是第一個回合。在每次助手回應之前,檢查該回合是否觸發了會話開始、每回合儲存、主題切換、手動記錄、主題升級、每週/儀表板/檢查、或知識升級。最常被忽略的規則是每回合儲存:每個有實質內容的助手回合,都會在活動工作日誌條目中附加一行 (HH:MM) <進展>。
保持熱路徑小巧。將低頻機制放在 references/ 中,並僅在其觸發條件發生時才載入。
路徑
<VAULT_ROOT> 是 fade-away 維護的 Obsidian Vault。在每個會話中解析一次,順序如下:
- 專案
AGENTS.md/CLAUDE.md中宣告的Vault root欄位(由引導安裝腳本scripts/bootstrap_vault.py撰寫)。 - 若無此欄位,則將當前專案/工作目錄視為 Vault 根目錄。
在讀取或寫入之前,始終將 <VAULT_ROOT> 展開為絕對路徑:
- 工作日誌:
<VAULT_ROOT>/03 Journal/<YYYY-MM>/<YYYY-Wnn>/YYYY-MM-DD.md其中<YYYY-MM>是該日期所屬月份,<YYYY-Wnn>是該日期的 ISO 週。 - 每週索引:
<VAULT_ROOT>/03 Journal/<YYYY-MM>/<YYYY-Wnn>/YYYY-Wnn 周索引.md其中<YYYY-MM>是包含該週星期日的月份。 - 任務索引:
<VAULT_ROOT>/00 Tasks/_Index.md - 主題頁面:
<VAULT_ROOT>/00 Tasks/<topic-filename>.md - 知識頁面:
<VAULT_ROOT>/02 Knowledge/<domain>/<page>.md - 參考資料:此技能的
references/目錄
如果 00 Tasks/ 或 _Index.md 不存在,則在該會話中跳過任務索引和主題邏輯。請勿在會話中途自動建立 00 Tasks/。工作日誌記錄仍會執行。
頂層檔案(例如 备忘.md)可能直接位於 03 Journal/ 下;請勿移動它們。
時區規則
此技能記錄的所有日期和時間必須使用一個統一的時區,稱為 vault-time。從專案的 AGENTS.md / CLAUDE.md 中的 Time zone 欄位解析 vault-time;如果未設定,則回退到機器的本地時區。引導安裝程式預設為 Asia/Hong_Kong,因此未設定的 Vault 行為等同於 Asia/Hong_Kong / GMT+8 / UTC+8。
使用 vault-time 作為工作日誌檔案名稱、父路徑、標題、進度行、主題前置資料、_Index.md 時間戳記和每週索引推斷的依據。
偏好的 Shell 檢查方式(替換為你設定的時區):
TZ=Asia/Hong_Kong date
信任 vault-time 勝過工具提供的日期提示。如果工具提供的日期與 vault-time 衝突,則根據當前的 vault-time 讀數來推斷工作日誌檔案名稱、ISO 週和 HH:MM。關於附加/並發的詳細資訊,請閱讀 references/journal-write-protocol.md。
會話狀態
內部追蹤:
current_entry_start:當前工作日誌條目的HH:MM。current_entry_date:當前工作日誌條目的YYYY-MM-DD。current_entry_title:當前的簡短中文任務標題。bound_topic:主題檔案名稱(不含.md),或None。bind_skipped:僅在使用者選擇不綁定時設為True。task_auto_bind_checked/task_auto_bind_skipped:每個新的工作日誌條目都會重置。knowledge_candidate_prompted/knowledge_candidate_skipped:每個新的工作日誌條目都會重置。knowledge_context_checked:在當前使用者請求通過知識檢索閘道或該閘道被故意跳過後設為True。tracking_disabled:僅在使用者選擇退出此會話時設為True。
對話開始
-
如果存在,讀取
<VAULT_ROOT>/00 Tasks/_Index.md。將表格主體行解析為[[topic]] | timestamp | next-step;將遺失的檔案視為空索引。 -
以低成本檢查是否存在並行的同主題會話。讀取今日 vault-time 工作日誌的尾部。如果最後的進度行在 15 個 vault-time 分鐘內,且其條目可能與使用者的第一則訊息重疊,則顯示:
⚠️ 另一會話 <HH:MM> 剛寫過 [[<topic>]],可能在並行做同一件事。我先掃一眼最新進展再回。然後讀取最近的條目,確保此回應不會與並行工作矛盾。如果沒有最近的重疊條目,則靜默跳過。
-
在僅依賴
_Index.md、今日工作日誌或匹配的主題頁面之前,先針對任何實質性請求執行知識檢索閘道。當請求涉及可能具有持久上下文的專案/領域/人物/方法(位於<VAULT_ROOT>/02 Knowledge/),或使用者要求上下文、分析、決策、策略、延續、審查、寫作風格、可重複工作流程或較舊的工作時,請閱讀references/knowledge-retrieval-trigger.md。使用庫存優先路由:列出當前的知識樹,從中推導出當前資料夾/專案,然後在進行廣泛的正文搜尋之前,先匹配檔案名稱、H1/標題、別名、標籤、status: canonical、導航頁面和真實來源頁面。僅跳過等待確認的問候、僅限儀表板/檢查的報告、純工作日誌記帳、原子工具查詢,以及在經過此元資料優先的遍歷後仍未找到相關知識命中的情況。 -
根據使用者的第一則訊息進行分派,順序如下:
- 引導/設定意圖(
install fade-away、setup、bootstrap、初始化、第一次使用、開源部署,或缺少_Index.md且使用者要求初始化):閱讀references/bootstrap-vault.md。引導是一次性的設定路徑;如果不清楚 Vault 根目錄則詢問,且除非使用者確認,否則絕不建立檔案。 - 上下文/指令檢查意圖(
AGENTS、CLAUDE、上下文、context、經驗繼承、規則漂移、專案結構、技能/Vault/工作流程維護,或新的 cwd/專案邊界):閱讀references/context-check.md。僅在發現漂移或使用者明確詢問時才報告;除非使用者確認特定修補,否則不寫入指令檔案。 - 記憶體檢查意圖(
lint、體檢、health check、檢查知識庫、檢查任務索引、看看哪些適合變成 wiki或類似):閱讀references/lint-vault-memory.md;先呈現報告,除非使用者確認,否則不寫入修復或知識頁面。 - 知識升級意圖(
沉澱成知識、寫進 knowledge、變成 wiki、歸檔成知識頁或類似):閱讀references/promote-to-knowledge.md。 - 每週索引意圖(
周索引、週報、weekly index、weekly summary、本週總結或類似):閱讀references/render-weekly-index.md。僅當模組寫入或更新每週索引時才開啟工作日誌條目。 - 儀表板意圖(
看下任務、看板、dashboard、總覽或類似):閱讀references/render-dashboard.md,僅渲染,且暫時不開啟工作日誌條目。 - 明確的現有主題匹配:靜默讀取該主題頁面,設置
bound_topic,然後開啟工作日誌條目。 - 模糊問候(
hi、你好、在嗎、開始幹活了等):如果_Index.md有行,則輸出⏮️ 上次:<task>,下一步是 <next-step>。繼續這個還是新任務?並等待回覆。僅在使用者確認時才綁定到第一行。 - 新的實質性任務:不要提及舊任務;保持
bound_topic = None。
- 引導/設定意圖(
開啟工作日誌條目
僅在實際開始工作時才開啟工作日誌條目。計算 vault-time 每日路徑為 03 Journal/<YYYY-MM>/<YYYY-Wnn>/YYYY-MM-DD.md,其中 <YYYY-MM> 是該日期所屬月份,<YYYY-Wnn> 是 ISO 週。使用 mkdir -p 建立缺失的月份/週資料夾。
如果每日檔案不存在,則根據 references/journal-write-protocol.md 中的範本建立。確保有 ## 🕐 任務時間線,然後在該區段底部附加一個標題:
- 未綁定:
### HH:MM ▶️ <短中文標題> - 已綁定:
### HH:MM ▶️ <短中文標題> → [[00 Tasks/<bound_topic>]]
儲存 current_entry_start、current_entry_date 和 current_entry_title。為新條目重置任務、知識候選和知識檢索標記。
每回合儲存
在每個具有實質內容輸出的助手回合之後,在當前工作日誌條目內附加恰好一行進度:
(HH:MM) <一句話進展>
附加在活動條目正文的末尾,緊接在下一個 ### 時間軸標題或檔案結尾之前。不要重寫之前的進度行。如果該回合只是澄清問題或 tracking_disabled = True,則跳過儲存。
在寫入之前,當你需要確切的附加位置、並發寫入重基、vault-time 邊界處理、陷阱行語法或工作日誌範本時,請閱讀 references/journal-write-protocol.md。
儲存後檢查
在每回合儲存後執行以下檢查:
- 明確升級:如果可見輸出包含明確的
➡️ 下一步標記或## ➡️ 下一步區段,則更新主題/索引層。如果已設置bound_topic,則閱讀references/topic-update-protocol.md;否則,如果bind_skipped = False,則閱讀references/promote-to-wiki.md。 - 主題自動重新整理:當已設置
bound_topic且未出現明確的下一步時,如果活動條目可能超過現有的陳舊閾值,則閱讀references/topic-update-protocol.md。保持當前的自動重新整理行為;除非使用者要求,否則不要將其轉換為確認提示。 - 任務自動綁定:當活動條目未綁定且缺少明確的
➡️ 下一步時,閱讀references/task-candidate-trigger.md。對於類似任務的會話,自動建立/綁定主題;僅跳過瑣碎的 Q&A、問候、僅限儀表板/檢查的報告、純澄清或沒有任務性質的會話。 - 知識候選:當可能出現了可重複使用的知識,且使用者尚未要求升級時,閱讀
references/knowledge-candidate-trigger.md。不要自動建立或更新02 Knowledge/。
會話中主題切換
如果使用者在條目已開啟的情況下說 繼續做 X、回到 X 或要求切換:
- 保守地將
X與_Index.md匹配。 - 如果沒有明確匹配,則提出一個簡短的澄清問題。
- 如果匹配明確且與
bound_topic不同,則詢問:切到 [[X]]?我會給當前 entry 追加一行切換記錄,然後打開新的 X entry。 - 確認後,附加
(HH:MM) 切出當前任務,轉到 [[00 Tasks/X]]。,讀取主題頁面,設置bound_topic = X,並開啟一個新的已綁定工作日誌條目。 - 如果使用者拒絕,則保留現有綁定。
不要在會話中途靜默切換主題。
手動記錄請求
如果使用者說 記錄一下、記一下剛才的進展 或類似內容,則在當前條目中添加一個額外的進度行,總結自上一個儲存以來的進展。除非使用者明確要求切換任務,否則不要開啟新條目或關閉當前條目。
模組
僅在需要時載入低頻工作流程:
references/journal-write-protocol.md:工作日誌建立、附加位置、vault-time 邊界處理、並發寫入重基、陷阱行語法和工作日誌範本。references/bootstrap-vault.md:新使用者 Obsidian Vault 的一次性設定工作流程;僅在確認後建立最小的 fade-away 目錄/範本/索引和指令入口點。references/context-check.md:冷啟動或邊界變更檢查,針對陳舊的指令/上下文表面(例如AGENTS.md、CLAUDE.md、專案結構筆記和知識繼承);在確認前報告漂移但不寫入。references/task-candidate-trigger.md:將有實質內容的未綁定任務條目自動綁定到00 Tasks;跳過瑣碎或非任務會話。references/topic-update-protocol.md:更新已綁定的主題頁面、重新整理_Index.md,並執行當前的主題自動重新整理行為。references/promote-to-wiki.md:在明確的➡️ 下一步或任務自動綁定觸發後,將未綁定的工作日誌條目綁定到主題頁面並更新_Index.md。references/render-dashboard.md:從_Index.md渲染一個唯讀的任務儀表板。references/render-weekly-index.md:在03 Journal/<YYYY-MM>/<YYYY-Wnn>/YYYY-Wnn 周索引.md中生成或更新一個按需的每週地圖。references/lint-vault-memory.md:為任務、工作日誌、每週索引和知識層渲染一份唯讀的健康報告。references/knowledge-retrieval-trigger.md:在實質性工作開始前,盤點當前的02 Knowledge/樹,根據元數據對候選項進行排序,並讀取少量相關頁面,以使舊的持久上下文、方法和專案事實能夠影響答案。references/knowledge-candidate-trigger.md:提議可重複使用的工作日誌材料用於02 Knowledge/,但在確認前不會寫入。references/promote-to-knowledge.md:在確認後,在02 Knowledge/下建立或更新策劃好的頁面。
格式規則
- 時間格式:使用已設定的 vault 時區的 24 小時制
HH:MM。 - 工作日誌標題:簡短、描述性的中文;避免使用如
任務1的通用標題。 - 主題檔案名稱:kebab-case,無空格,僅在磁碟上使用
.md副檔名。 - 工作日誌中的主題維基連結:
[[00 Tasks/<topic>]]。 - 索引行格式:
| [[<topic>]] | YYYY-MM-DD HH:MM | <已跳脫的 next-step> |。 - 舊有的
task-tracker目錄已被移除;如果使用者詢問舊的追蹤器,請解釋fade-away已取代它。
邊緣情況
- 使用者選擇退出(
這次不用記錄):設置tracking_disabled = True;跳過該會話的所有寫入,但允許讀取_Index.md以獲取上下文。 - 跨午夜:使用 vault-time 午夜。在 vault-time 午夜之後,在新的 vault-time 日的日誌中開啟一個延續條目,並在該處繼續每回合儲存。
- 僅儀表板回合:渲染儀表板並等待;在使用者開始實際工作之前,不要開啟工作日誌條目。
- 索引匹配但缺少主題頁面:說明該主題行存在但頁面缺失,然後詢問是要重新建立還是繼續以未綁定狀態進行。