caesarloo172 downloadsTurn requirement notes into a live project overview: parse frontmatter, sync SVN snapshots, track milestone progress with AI reminders, and send milestone emails.
AI PM Tool is a desktop-only Obsidian plugin that offloads PM busywork to an LLM: notes as tasks, SVN snapshots as history. The LLM only produces analysis and reminders — nothing is written back until a human confirms.
Full disclosure of what this plugin does on your system:
svn command-line client via Node child_process.execFile (no shell parsing, fixed argument arrays only). It runs only when you actively trigger an SVN operation (manual sync / "Commit to SVN" / snapshot comparison), and only commands against your SVN working copy. Input is validated to block injection and path traversal; passwords are masked in logs. svn is never bundled or downloaded — you install it yourself.vault.read / vault.cachedRead).vault.modify / vault.create), only for actions you confirm in the UI (sample generation, frontmatter updates, sent-mail records). The "✨ Add requirement" flow calls the Templater plugin's API (only if you have it installed & enabled) to really execute your requirement template into a new note in your requirement directory; closing the dialog without committing keeps the note file (content saved, never deleted) for later editing / SVN commit.Why the plugin invokes the system svn command
SVN is a standalone version-control system that Obsidian's API cannot drive. To sync / commit / compare snapshots the plugin must call the system svn CLI — there is no alternative path, which is why this is disclosed rather than hidden. The call is as narrow as it can be:
child_process.execFile only — no shell (shell: false), no string-built commands; every invocation is a fixed svn binary plus a static argument array (paths and the commit message are passed as separate argv entries).svn is never bundled or downloaded — it is auto-detected from PATH / common install locations, or you can set the path yourself; if it is missing, the SVN features degrade gracefully and nothing executes.windowsHide: true, capped output; commands run only when you actively trigger them (manual sync / "Commit to SVN" / snapshot comparison) and only against your SVN working copy.Current stable version: 0.1.5
Latest release: https://github.com/caesarloo/ai-pm-tool/releases
main.jsmanifest.jsonstyles.css<Vault>/.obsidian/plugins/ai-pm-tool/Once the plugin is listed in the community directory, you can also install it directly from the in-app marketplace.
svn command — required to operate the SVN working copy (snapshot sync / commits). Everything else is provided by Obsidian's built-in runtime.AI-PM-TOOL/ and auto-configure the settings. Existing files are never overwritten (idempotent).The sidebar shows dynamic stats across project status / requirement status / approvals, filterable tabs with counts, search, and "My tasks". Run Manual sync (SVN snapshot comparison) to pull the latest working-copy changes into the view.
Clicking any requirement card in the overview opens the Requirement workbench — it defaults to Project progress:
svn commit).Fields are written back key-by-key against the baseline at open time — untouched keys keep their on-disk form, so progress-form / mail write-backs are never overwritten. Closing the dialog while the edit view has unsaved changes still keeps the file (content saved, never deleted).
From a milestone node: ① LLM draft (falls back to a template when no model is configured) → ② preview & edit (recipients from your contact book + stakeholders, subject/body editable, attachments per-file) → ③ send & record (flags the milestone, archives the sent body into the note, then commit to SVN). Configure SMTP in Settings to actually send; without SMTP the flow only records the draft as sent-acknowledged.
Click "✨ Add requirement" at the top of the project overview (only entry, no command) — fill in one free-text requirement description (background / goals / feature points / expected value / plan / owners); the plugin really executes your requirement template via Templater (all frontmatter fields/defaults + template date math + mail-section skeleton) to create a temporary skeleton, then the LLM auto-generates the suggested file name (= 需求名称) and the frontmatter field values from the description + the content-generation SKILL (Settings → "Requirement content-generation SKILL path": the file provides your company naming conventions — financial codes (e.g. domestic / cross-border tiers), department → product-line mapping and key projects; falls back to the review SKILL's data for generic naming guidance when unset; never touches structure or template defaults), followed by the review-SKILL content review (rules from the file at "Requirement review SKILL path", kept lenient: expected-value audit / three-part name check / product-line & department checks — opinions shown in the preview only, never written to the note). Review the file name, the full editable field table and the body, then "Commit to SVN" (renames to the final file name and auto-adds the new file). After committing, the dialog switches in place into that note's Requirement workbench (defaults to Project progress; the title-row switch button reads "➤ Enter editor" and opens the full-field editor) — no separate "done" page; keep editing, updating progress or sending mails in the same dialog. Requirements: a model enabled, the Templater plugin installed & enabled, and a template path configured (Settings → "Requirement template path"); the two optional SKILL paths ("Requirement review SKILL path" / "Requirement content-generation SKILL path") enable content review and company-accurate generation — when unset, review is skipped with a one-time notice, creation is not blocked.
Settings → add an OpenAI-compatible provider (base URL, model, API key — stored in the system keychain via Obsidian SecretStorage). Multiple providers, one active; network mode: system proxy / direct / custom proxy.
AI PM Tool 是一个 Obsidian 桌面插件:用大模型承担 PM 事务性工作——任务即笔记、快照即历史(SVN),LLM 只产出分析/提醒,人工确认后落地。
插件在您系统上的行为如实披露如下:
child_process.execFile 调用系统 svn 命令行客户端(无 shell 解析,仅固定参数数组)。仅在您主动触发 SVN 操作时执行(手动同步 / 「提交SVN」/ 快照对比),且只对您的 SVN 工作副本执行命令;输入经校验以拦截命令注入与路径穿越,日志中的密码参数会被脱敏。插件不捆绑 svn,需您自行安装。vault.read / vault.cachedRead)。vault.modify / vault.create),仅限您在界面中确认的操作(生成示例、frontmatter 更新、发送记录留痕)。**「✨ 新增需求」**会调用 Templater 插件 API(仅当您已安装并启用 Templater 时)在需求目录中真实执行您的需求模板新建笔记;未提交 SVN 直接关闭弹窗时会保留该笔记文件(内容已落盘、不会删除),供稍后编辑或手动提交。为何需要调用系统 svn 命令
SVN 是独立版本控制系统,Obsidian 的 API 无法驱动它。同步 / 提交 / 快照对比必须调用系统 svn 命令行——没有其他可行路径,因此本插件如实披露而非隐藏该行为。调用面已压缩到最小:
child_process.execFile——不经过 shell(shell: false),不用字符串拼接命令;每次调用都是固定的 svn 可执行文件 + 静态参数数组(路径与提交备注作为独立 argv 传入)。windowsHide: true、输出有上限;仅在您主动触发时执行(手动同步 / 「提交SVN」/ 快照对比),且只作用于您的 SVN 工作副本。当前稳定版本:0.1.5
最新发布页:https://github.com/caesarloo/ai-pm-tool/releases
main.jsmanifest.jsonstyles.css<Vault>/.obsidian/plugins/ai-pm-tool/上架社区目录后,也可直接在应用内市场安装。
svn 命令的主机(用于 SVN 工作副本同步/提交)。其余运行环境由 Obsidian 内置运行时提供。AI-PM-TOOL/ 并自动配置对应设置(幂等:已存在的文件不会被覆盖)。侧边栏展示项目状态/需求状态/审批三维度动态统计、筛选 Tab(含计数)、搜索、「我的任务」(独立开关)。「我的任务」与项目状态 / 需求状态 / 审批为互相独立的维度,可同时选中(如「我的任务 + 进行中」按 AND 组合过滤)。执行**手动同步(SVN 快照对比)**拉取最新工作副本变更。
总览中点击任一需求卡片打开需求工作台——默认展示项目进展:
svn commit);时间轴当前环节可「✉️ 发起邮件」写入按「打开时基线」键级写回:未改动的键保持磁盘原样,进展表单/邮件流程回写的字段不会被覆盖。编辑视图有未提交修改时关闭弹窗仍会保留文件(内容落盘、不删除)。
从进展页节点进入:① LLM 生成草稿(未配置模型时降级用模板草稿)→ ② 预览确认(收件人来自通讯录+干系人,主题/正文可编辑、附件单独添加/移除)→ ③ 发送回写(标记环节、正文发送记录存档、提交 SVN)。设置中配置 SMTP 后真实发信;未配置则仅回写留痕。
点击项目总览顶部 「✨ 新增需求」(唯一入口,无命令)——只需填写需求描述(背景/目标/功能点/预期价值/计划/负责人等自由文本);插件通过 Templater 真实执行您的需求模板(frontmatter 全字段/默认值 + 模板日期计算 + 正文邮件小节骨架)创建临时骨架,让 LLM 依据描述与「需求内容生成 SKILL 路径」指向的公司口径规则自动生成建议文件名(= 需求名称)与各字段(SKILL 文件提供贵司命名规范:财务编码(如境内/跨境两档)、业务部门→产品线映射、重点项目清单等;未配置时命名用通用三段式说明、名称/列表 R 校验跳过——不回退「需求审核 SKILL」数据;不改结构、不覆盖模板默认),随后按 「需求审核 SKILL 路径」指向的审核规则做内容审核(预期价值审核 / 需求名称三段式 / 产品线与部门列表校验——意见仅在预览页展示,不落盘)。核对文件名、全字段表与正文后可编辑,最后点 「⬆️ 提交 SVN」(按最终文件名重命名 + 新文件 autoAdd)。提交后弹窗原地转入该需求的「需求工作台」(默认展示项目进展,标题行右侧「进入编辑」按钮切换至字段编辑)——不再有单独的完成页,继续改字段、改进展、发邮件都在同一弹窗完成;总览卡片点击打开的也是同一工作台(任意需求文件都能打开编辑与再提交)。前置要求:已启用模型、已安装并启用 Templater 插件、已配置模板路径(设置 → 需求笔记模板路径);「需求审核 SKILL 路径」「需求内容生成 SKILL 路径」两条均可选——缺失时审核跳过并提示一次、生成按通用三段式命名指导,均不阻塞创建。
设置 → 添加 OpenAI 兼容 provider(地址/模型/API Key——密钥存 Obsidian SecretStorage 系统密钥库)。支持多 provider 单选启用;网络方式:跟随系统代理/直连/自定义代理。