Community程式設計與開發github.com

qbarev/para-plugin

在 Obsidian PARA 庫中管理「領域」——建立一個持續責任的領域,或檢視哪些領域已沉寂以及其中的變化。當使用者說「建立領域」、「新領域」、「檢視領域」、「哪些領域已沉寂」等時使用。

para-plugin 是什麼?

此技能專為 Obsidian PARA 方法論設計,協助使用者管理「領域」(Areas)——那些沒有結束日期的持續責任,例如健康、財務或職涯。它提供兩個主要子命令:`create` 用於建立新領域,`create` 會根據模板和群組模型填入 frontmatter 與內容;`review` 則用於掃描所有領域,根據 `thresholds.md` 中的沉寂閾值標記哪些領域已被忽略,並報告群組內的問題,例如懸掛的 wiki 連結、遺失的標籤或與專案混淆的內容。此技能完全遵循 PARA 框架的模型驅動設計——它從 `areas.md` 讀取群組結構,從 `paths.md` 取得路徑,並從 `lang/<LANG>.md` 使用本地化字串,支援 Cursor 和 Claude Code 等平台。重要的是,`review` 子命令是唯讀的,不會修改任何筆記,僅提供事實陳述(如「74 天未更改」)而非評斷,讓使用者自行決定後續行動。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/qbarev/para-plugin/tree/HEAD/skills/areas

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

領域(Areas)

領域是沒有結束日期的持續責任——健康、財務、職涯。 它們不是專案,也永遠不會「完成」。一個已經沉寂的領域正是此技能旨在揭露的:與專案不同,沒有任何跡象會表明一個領域已被忽略。

領域如何組織不在這裡決定。 areas.md 負責定義模型:是否有分組層、群組如何命名、哪個 frontmatter 欄位記錄群組,以及新筆記應放在何處。此技能持有演算法並讀取模型——它永遠不會硬編碼群組名稱或假設有多少個群組。

基礎層

在採取行動之前閱讀,每個檔案相對於此技能的基礎目錄為 ../../para/<file>.md——這些檔案包含共享規則,不要憑記憶重述:

  • ../../para/paths.md —— 總是包含,包括「語言」:下面的字串來自 lang/<LANG>.md
  • .claude/para/areas.md(儲存庫根目錄下的庫設定)—— 總是包含;沒有模型,此技能就沒有意義
  • ../../para/note-format.md —— 用於 create;用於 review 下的 TASKS = files 和「舊有欄位」
  • ../../para/find-target.md —— 當 review 需要解析一個命名的領域時
  • ../../para/confirm.md —— create 會寫入;review 不寫任何內容
  • ../../para/thresholds.md —— 用於 review

子命令

$ARGUMENTS 的第一個單詞決定子命令:create 或 review。空值 → 顯示兩者並詢問。


create <name> —— 開始一個領域

  1. 從磁碟讀取 Templates/Area.md,逐字讀取。
  2. 決定群組。 從描述中選擇 areas.md 中 GROUPS 列出的一個值。如果確實不清楚,請詢問——分組欄位決定了檔案存放位置,因此不能留空。 若 GROUPING = none,則此步驟不適用。
  3. 填入 frontmatter,依照 note-format.md 中領域行的模式:title、tags: [area/<slug>],其中 slug 依照 note-format.md 填入,如果模型有分組欄位,則加入該欄位。
  4. 填入內容:
    • common.links 區段——相關筆記的 wiki 連結,否則使用模板的空白 -。
    • area.current_state 區段——此責任目前的狀態,以使用者自己的話從描述中獲取。如果他們沒有提及,則留空。
    • area.notes 區段——留空;它會隨時間累積。
  5. 寫入到 areas.md 中 PLACEMENT 給出的路徑,如果描述暗示子資料夾則深入。首先檢查基本檔名是否與整個庫衝突。
  6. 報告路徑和群組。

如果描述有結束狀態和目標,那它就是一個專案,而不是領域——請說明並提供 /projects create。


review —— 有哪些已沉寂

唯讀。回答「我的哪些責任我沒有在看」。帶有參數時,僅檢視該領域;無參數時,檢視 GROUPS 列出的每個群組——無論有多少個。

  1. 遞迴遍歷 Areas/。對於每個筆記:路徑、分組欄位和修改時間(stat -f '%m %N')。在 TASKS = files 下,排除 */Tasks/*:那些是任務筆記,不是領域筆記(note-format.md「舊有欄位」)。

  2. 讀取每個筆記的 frontmatter,以及存在的 area.current_state 區段。不要讀取完整的內容——這是一次掃描,不是對每個筆記的摘要。

  3. 計算每個群組:有多少筆記、該群組最後一次被觸及的時間,以及哪些個別筆記已超過 thresholds.md 中的領域沉寂閾值,該閾值故意設定得比專案的寬鬆得多。

  4. 僅標記實際觸發的項目:

    • 一個完全沒有任何筆記的群組;
    • 超過該閾值的筆記——說明已經過了多久,而不是說它不好;
    • 違反 PLACEMENT_CHECK 的筆記——其分組欄位與所在資料夾不一致。當模型設定 PLACEMENT_CHECK = none 時跳過;
    • 一個帶有空白的 area/ 標籤 slug 的領域筆記;
    • 完全沒有 frontmatter 的筆記(早於該慣例——陳述事實,不要遷移它);
    • common.links 區段中的懸掛 wiki 連結;
    • 一個包含看起來像專案工作的領域——一個帶有結束狀態的目標。指出並提供將其拆分出來。
  5. 以 LANG 渲染,按照 REVIEW_GROUPING 的設定,丟棄任何沒有需要報告的群組,使用 areas.review.* 字串。輸出的確切格式存放在 areas.md 中——它依賴於模型,因此寫在模型所在的位置。

  6. 不寫任何內容。 如果檢視發現了值得做的事情,說出來並讓使用者決定。

備註

  • 領域中的沉寂是資訊,不是評判。要事實地報告——「74 天未更改」,絕不要說「你放棄了它」。
  • 領域很少被歸檔;持續的責任不會結束。如果被要求歸檔一個,那通常意味著筆記過時了,而不是責任過時了——請參閱 /archive。
  • 一切內容都在 LANG 中。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

qbarev/para-plugin

Work with Archive in the Obsidian PARA vault — put a finished or abandoned project (folder and its project in the task app, such as Todoist) or a note into the archive, list what is already there, or restore something back into an active folder. Use when the user says "archive this", "move to archive", "close the project", "what is in the archive", "show the archive", "restore from the archive", "заархивируй", "перенеси в архив", "закрой проект", "что в архиве", "покажи архив", "верни из архива", "восстанови проект".

qbarev/para-plugin

Work with the inbox of the PARA vault, which lives in the task app's inbox — capture a raw thought into it, list what is sitting there unprocessed, or process captures one by one into their proper PARA folder. Use when the user wants to capture a note, mentions their task app's inbox (Todoist «Входящие», for example), or says "capture this", "add to the inbox", "what is in the inbox", "process the inbox", "запиши", "закинь в инбокс", "что в инбоксе", "покажи инбокс", "разбери инбокс", "разгреби инбокс".

qbarev/para-plugin

Set up a folder as a PARA vault run by this plugin, or bring an already set-up vault up to date — detect what the folder is, ask the setup questions one at a time, show one plan, apply it on one «yes», report. Re-running fills in what is missing and migrates an older vault schema. Use when the user says "set up the vault", "init the vault", "initialise PARA", "migrate the vault", "run /para:init", "настрой хранилище", "инициализируй хранилище", "подключи PARA", "мигрируй хранилище".

qbarev/para-plugin

Work with Projects in the Obsidian PARA vault and their pairs in the task app — list the active projects, create a project (folder plus a project in the task app), summarize where a project stands, or add a task to a project in the task app (Todoist, for example). Use when the user says "list projects", "show projects", "what am I working on", "create a project", "new project", "project overview", "project status", "add a task", "какие проекты", "список проектов", "покажи проекты", "что у меня в работе", "заведи проект", "новый проект", "саммари по проекту", "обзор проекта", "что по проекту", "статус проекта", "где я по проекту", "добавь задачу", "заведи задачу".

相關技能