Community编程与开发github.com

qbarev/para-plugin

在 Obsidian PARA 库中处理“领域”——创建一个持续的责任区域,或审查哪些领域已经沉寂以及其中出现了什么。当用户说“创建一个领域”、“新领域”、“审查领域”、“哪些领域沉寂了”或类似的中文指令时使用。

para-plugin 是什么?

该技能专为 Obsidian 中的 PARA 方法设计,帮助用户管理“领域”(Areas)——即那些没有明确结束日期的持续责任,如健康、财务或职业。技能提供了两个核心子命令:`create` 用于创建新领域,它会从模板读取并填充元数据写入指定路径;`review` 则用于审查哪些领域已被忽视,通过递归扫描 `Areas/` 目录、计算最后修改时间并与阈值比较来标记沉寂的笔记、违反分组规则的笔记以及未填写的标签。技能完全遵循 `areas.md` 定义的模型,包括分组方式、元数据字段和文件放置规则,并且所有输出都使用用户设置的语言(通过 `lang/<LANG>.md` 加载)。此技能不会硬编码任何组名,也不写任何数据在审查过程中——它只报告问题,让用户决定操作。

兼容平台✓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.md 拥有模型的管辖权:是否存在分组层、分组的名称、记录分组的 YAML 前置元数据字段,以及新笔记的存放位置。此技能持有算法并读取模型——它从不硬编码组名或假设有多少个组。

基础层

每次操作前需读取以下文件,每个文件相对于此技能的基目录,路径为 ../../para/<file>.md——它们包含共享规则,不要从记忆重述:

  • ../../para/paths.md —— 始终包含,包括“语言”:下面的字符串来自 lang/<LANG>.md
  • .claude/para/areas.md (仓库配置,位于 REPO_ROOT 下)—— 始终需要;没有模型此技能毫无意义
  • ../../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. 填充前置元数据,按照 note-format.md 中领域行的模式:title、tags: [area/<slug>](标签中的 slug 按 note-format.md 填充),以及如果模型有分组字段则填充该字段。
  4. 填充正文:
    • common.links 章节——相关笔记的维基链接,否则为模板中的空 -。
    • 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. 读取每个笔记的前置元数据,以及存在的 area.current_state 章节。不读全部正文——这是扫描,不是对每个笔记的总结。
  3. 按分组计算:有多少个笔记、该分组最后被触摸的时间,以及哪些单个笔记超过了 thresholds.md 中定义的领域沉寂阈值(该阈值故意设置得比项目的阈值宽松很多)。
  4. 只标记实际触发的问题:
    • 某个分组没有任何笔记;
    • 某个笔记超过阈值——说明超了多少天,而不是说它不好;
    • 某个笔记违反了 PLACEMENT_CHECK——其分组字段与所在文件夹不一致。如果模型设置 PLACEMENT_CHECK = none 则跳过;
    • 某个领域笔记的 area/ 标签 slug 未填充;
    • 某个笔记完全没有前置元数据(早于约定——指出但不自动迁移);
    • common.links 章节中存在悬空的维基链接;
    • 某个领域包含了看似是项目工作的内容——有结束状态的目标。注明并提供拆分建议。
  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", "какие проекты", "список проектов", "покажи проекты", "что у меня в работе", "заведи проект", "новый проект", "саммари по проекту", "обзор проекта", "что по проекту", "статус проекта", "где я по проекту", "добавь задачу", "заведи задачу".

相关技能