收件匣
型態庫的捕捉緩衝區是任務後端的收件匣,而不是一個資料夾 —— paths.md 負責定義這條規則以及磁碟上 Inbox/ 的用途。一旦確定捕捉內容的性質,它就會從緩衝區移至正確的 PARA 資料夾;如果只是單純的動作,則會留在後端。
在 TASKS = files 模式下,收件匣即為 Inbox/ 資料夾(paths.md 會說明其含義,包括雜散檔案);除雜散檔案的處理外,以下步驟與預設模式相同。
每次任務呼叫都是 tasks.md 中的一個操作,根據 TASKS 的轉接器執行。如果後端不可用,則適用 tasks.md 中的「後端缺失」規則。
基礎層
在操作前,請先閱讀下列檔案,它們位於此技能基礎目錄的 ../../para/<file>.md 相對路徑中 —— 這些檔案包含共享規則,請勿憑記憶複述:
../../para/paths.md—— 始終需要,包括「語言」:以下字串來自lang/<LANG>.md../../para/tasks.md—— 始終需要:操作;對於process,還包括任務、領域和專案的定義../../para/note-format.md—— 用於process../../para/confirm.md—— 用於process../../para/move.md—— 用於process,當它需要將雜散檔案移出Inbox/時
子指令
$ARGUMENTS 的第一個單詞決定子指令。任何非 list 或 process 的內容都視為 add 的文字,因此 /inbox a thought about sleep 會捕捉該想法 —— add 關鍵字是可選的。空的 $ARGUMENTS → 顯示三個子指令並提問。
add <text> —— 捕捉
inbox.add需提供title和可選的description。短文字直接作為標題;長文字則根據LANG提取一個短標題(6 個字以內),完整文字逐字作為描述。- 不設定其他內容 —— 除非使用者明確指定,否則不設日期、優先級或標籤。這只是一個緩衝區,不是用來整理使用者想法的場所。
- 以一行文字回報 已建立的內容,以便使用者在不同意的情況下重新命名。
如果捕捉內容明顯屬於某個特定位置,請在回報中說明,並提供 /inbox process 的建議 —— 未經請求不要自行歸檔。
list —— 顯示未處理的項目
唯讀。
inbox.list—— 每個開啟的捕捉。- 以數字列表列印,從最舊到最新,並在開頭加上
inbox.header字串({n}個捕捉,{days}最舊項目的天數)。僅顯示標題,不顯示描述。 - 雜散檔案。 非
TASKS = files模式(請見paths.md)。列出Inbox/中的所有*.md檔案(僅檔名,不開啟)。如果存在任何此類檔案,則增加一行,顯示inbox.strays字串({k}個檔案)。 - 空的收件匣是有效且好的答案:請直接說明。
process —— 歸檔捕捉內容
收件匣的閥門。互動式,一次只處理一個捕捉 —— 絕對不要將整個收件匣連同建議的目標位置全部列出並要求使用者一次性批准。
-
列出收件匣,如上所述 —— 先列出後端捕捉(從最舊到最新),再列出
Inbox/中的雜散檔案(在TASKS = files模式下,inbox.list會同時包含兩者,paths.md說明)。說明共有多少項目,並從第一個開始處理。 -
對於每個捕捉:顯示標題和內容(描述,或雜散檔案的檔案主體)—— 如果內容很長則簡要顯示。然後給出你對其性質的解讀,並提供路由選項。路由名稱使用
lang/<LANG>.md中的inbox.route.*字串;下表左欄為對應的鍵:路由 作用 inbox.route.action不屬於任何專案的待辦事項 → 按照 tasks.md「什麼是任務」的定義檢查措辭,首先提議並與使用者商定改寫後的措辭,然後以使用者選擇的area(領域名稱由tasks.md定義)和商定的title呼叫task.moveinbox.route.project_task現有專案的一個步驟 → 根據 find-target.md找到專案,按照tasks.md「什麼是任務」提議措辭,然後以找到的project_ref和新title呼叫task.move;該任務保持開啟,不建立或關閉任何事物。在TASKS = files模式下,已使用的基底名稱視為衝突:請見note-format.md「名稱衝突」inbox.route.project有結束狀態的工作 → 轉交給 /projects createinbox.route.area持續的責任 → 轉交給 /areas create,或附加到現有領域inbox.route.resource值得保留的知識 → 轉交給 /resources createinbox.route.keep時機未到 —— 留在收件匣,無需感到不好意思 inbox.route.delete垃圾 → 關閉(見下文) 推薦一個路由,並用一句話說明理由。由使用者決定。
-
執行路由,將捕捉的文字傳遞給負責目標位置的技能 —— 該技能會根據自己的範本建立筆記。請勿在此處撰寫筆記。
-
關閉捕捉,一旦其路由執行完畢:
- 後端捕捉 —— 已歸檔至型態庫,或者被標記為垃圾 →
inbox.close—— 可逆轉(tasks.md),因此屬於第一層級(confirm.md)。inbox.route.action和inbox.route.project_task會移動任務本身(task.move)並使其保持開啟;inbox.route.keep則將其留在原處。 Inbox/中的雜散檔案 —— 在/projects create、/areas create或/resources create獲取其內容後,透過/remove刪除該檔案;對於inbox.route.delete,直接交給/remove處理。inbox.route.action會先用task.add和area將其轉為任務,再以同樣方式刪除該檔案。
- 後端捕捉 —— 已歸檔至型態庫,或者被標記為垃圾 →
-
然後處理下一個捕捉。 不要等到最後才批次關閉。
-
當使用者要求停止時停止,並回報已處理多少項目以及還有多少項目剩餘。一次性處理完整個收件匣並非目標。
備註
- 收件匣刻意設計為低摩擦:
add不會問任何可以避免的問題。process才是思考發生的地方。 - 所有內容(包括任務)均使用
LANG指定的語言。