pm

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

/pm — Project management across the portfolio

/pm — 跨业务组合的项目管理

Methodology-first project management. Kanban + Eisenhower + async. One board per business. Tool-agnostic via adapters.
以方法论为核心的项目管理。Kanban + Eisenhower + 异步优先。每个业务对应一个看板。通过适配器实现工具无关。

Mental model

心智模型

Each business gets its own kanban with 5 columns:
Backlog  →  Ready  →  In Progress  →  Review/Blocked  →  Done/Archived
  • Backlog: everything that might matter — not yet committed
  • Ready: triaged, well-defined, can be picked up
  • In Progress: actively being worked
  • Review/Blocked: waiting on someone else, review, or external dependency
  • Done/Archived: shipped or killed
Eisenhower sits on top of the board — used to triage Backlog → Ready (which items make the cut) and to pick next from Ready (which Ready item to pull).
                Urgent          Not Urgent
Important       Q1: Do          Q2: Schedule    ← Q2 is the high-leverage zone
Not Important   Q3: Delegate    Q4: Delete
Async-first: every status snapshot should read like a Loom you didn't have to record. Make work visible without requiring a meeting.
每个业务都有自己的看板,包含5列:
Backlog  →  Ready  →  In Progress  →  Review/Blocked  →  Done/Archived
  • Backlog(待办储备):所有可能重要的事项——尚未确定执行
  • Ready(就绪):已梳理、定义清晰,可随时启动
  • In Progress(进行中):正在积极推进的事项
  • Review/Blocked(审核/阻塞):等待他人反馈、审核,或依赖外部资源的事项
  • Done/Archived(完成/归档):已交付或终止的事项
Eisenhower(艾森豪威尔)矩阵作为看板的上层逻辑——用于将Backlog中的事项梳理至Ready(筛选出值得推进的事项),以及从Ready中选择下一个要执行的任务。
                Urgent(紧急)          Not Urgent(不紧急)
Important(重要)       Q1: Do(立即执行)          Q2: Schedule(安排时间)    ← Q2是高价值区域
Not Important(不重要)   Q3: Delegate(委托他人)    Q4: Delete(删除)
异步优先:每个状态快照都应像无需录制的Loom视频一样直观。无需开会即可让工作进度可见。

Step 1 — Detect mode and target

步骤1 — 检测模式与目标

Parse the invocation:
InvocationModeTarget
/pm setup [business]
setupthe named business
/pm triage [business]
triagethe named business (or ask)
/pm next [business]
nextthe named business
/pm next
nextacross all boards (cross-portfolio)
/pm status [business]
statusthe named business (or ask)
/pm unblock [business]
unblockthe named business (or ask)
/pm weekly
weeklyall boards (Friday pulse)
/pm weekly [business]
weeklythe named business
解析调用指令:
调用指令模式目标
/pm setup [business]
setup指定的业务
/pm triage [business]
triage指定的业务(或询问确认)
/pm next [business]
next指定的业务
/pm next
next所有看板(跨业务组合)
/pm status [business]
status指定的业务(或询问确认)
/pm unblock [business]
unblock指定的业务(或询问确认)
/pm weekly
weekly所有看板(周五进度汇总)
/pm weekly [business]
weekly指定的业务

Step 2 — Load board config + personal overlay

步骤2 — 加载看板配置 + 个人覆盖设置

Read
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.md
(personal — real business list + tool mapping per business). Falls back to
references/boards.md
in the repo if the local file doesn't exist yet — that's a template.
Also try to load
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/team.local.md
if present — this is where the user lists partners, active clients, and typical blocker phrasings. Use it to make status output specific ("Waiting on <partner>'s review") instead of generic.
FieldExample
business
<slug>
tool
notion
/
github
/
plane
/
linear
/
obsidian
/
manual
board_id or URLtool-specific
column overridesonly if this board doesn't use the default 5 columns
If the business has no mapping yet, jump to setup automatically — ask which tool, save the mapping, return to the requested mode.
读取
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.md
(个人配置文件——包含真实业务列表及每个业务对应的工具映射)。如果本地文件不存在,则回退到仓库中的
references/boards.md
——这是一个模板文件。
如果存在
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/team.local.md
,也会尝试加载——用户可在此列出合作伙伴、活跃客户及典型阻塞场景的表述。用于生成更具体的状态输出(如“等待<合作伙伴>的审核”),而非通用表述。
字段示例
business
<slug>
tool
notion
/
github
/
plane
/
linear
/
obsidian
/
manual
board_id 或 URL工具特定标识
column overrides仅当看板不使用默认5列时配置
如果业务尚未配置工具映射,将自动跳转至setup模式——询问使用的工具,保存映射,然后返回请求的模式。

Step 3 — Load the adapter

步骤3 — 加载适配器

Read the relevant section of
references/adapters.md
for the tool. Each adapter section explains how to:
  • List cards / issues / pages by column
  • Read a single card's full content
  • Create a card
  • Move a card between columns
  • Add a comment / note
Adapters use:
  • Notion
    $NOTION_API_KEY
    (already in zshenv). Database with
    Status
    select property.
  • GitHub Projects
    gh
    CLI (already authed).
    gh project item-list
    ,
    gh project item-edit
    .
  • Plane → Plane API (needs
    $PLANE_API_KEY
    and workspace slug).
  • Linear → Linear MCP or API key.
  • Obsidian → local kanban markdown files in the vault. Read/write directly.
  • Manual → ask the user to paste the current board state; offer to write back to a local markdown file.
读取
references/adapters.md
中对应工具的相关章节。每个适配器章节说明如何:
  • 按列列出卡片/议题/页面
  • 读取单张卡片的完整内容
  • 创建卡片
  • 在列之间移动卡片
  • 添加评论/备注
适配器使用方式:
  • Notion
    $NOTION_API_KEY
    (已在zshenv中配置)。需包含
    Status
    选择属性的数据库。
  • GitHub Projects
    gh
    CLI(已完成认证)。使用
    gh project item-list
    gh project item-edit
    命令。
  • Plane → Plane API(需要
    $PLANE_API_KEY
    和工作区slug)。
  • Linear → Linear MCP或API密钥。
  • Obsidian → 库中的本地看板Markdown文件。直接读写。
  • Manual(手动模式) → 要求用户粘贴当前看板状态;可选择将结果写回本地Markdown文件。

Step 4 — Run the mode

步骤4 — 运行对应模式

setup

setup

  • Ask which tool the business uses
  • Walk through column setup (default 5 columns; offer custom)
  • Save mapping to
    ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.md
    (NOT to
    references/boards.md
    in the repo — that's a template only). Create the parent directory if it doesn't exist yet.
  • Optionally seed the board with starter cards from a conversation about what's on the user's mind for that business
  • 询问业务使用的工具
  • 引导完成列配置(默认5列;支持自定义)
  • 将映射保存至
    ${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.md
    不要保存到仓库中的
    references/boards.md
    ——该文件仅作为模板)。如果父目录不存在则创建。
  • 可选择根据用户关于该业务的想法,为看板添加初始卡片

triage

triage

  • Pull the Backlog column
  • Apply Eisenhower (Q1/Q2/Q3/Q4) — show the user the matrix view
  • Recommend moves:
    • Q1 (urgent + important) → move to Ready or In Progress now
    • Q2 (important, not urgent) → move to Ready, schedule when
    • Q3 (urgent, not important) → delegate (to whom?) or move to Ready if no one
    • Q4 (neither) → archive
  • Apply moves via the adapter (or output text the user applies manually)
  • 获取Backlog列的内容
  • 应用Eisenhower矩阵(Q1/Q2/Q3/Q4)——向用户展示矩阵视图
  • 推荐操作:
    • Q1(紧急+重要)→ 立即移至Ready或In Progress
    • Q2(重要、不紧急)→ 移至Ready,安排执行时间
    • Q3(紧急、不重要)→ 委托给他人(谁?),若无合适人选则移至Ready
    • Q4(既不紧急也不重要)→ 归档
  • 通过适配器执行操作(或输出文本供用户手动执行)

next

next

  • Single board: pull Ready, then In Progress. If WIP exceeded, surface what to finish first. If WIP available, recommend top Ready item by Eisenhower priority.
  • Cross-portfolio (
    /pm next
    with no business): pull Ready from every board, Eisenhower-rank, recommend top 1–3 across all businesses. Bias toward Q1 then Q2.
  • 单个看板:获取Ready列,再获取In Progress列。如果WIP(在制品)数量超出限制,提示应优先完成哪些任务。如果WIP有剩余容量,推荐Ready列中按Eisenhower优先级排序的顶部任务。
  • 跨业务组合(不带业务名称的
    /pm next
    ):获取所有看板的Ready列内容,按Eisenhower优先级排序,推荐跨所有业务的前1-3项任务。优先推荐Q1,其次是Q2。

status

status

Generate an async-shareable snapshot:
markdown
undefined
生成可异步分享的快照:
markdown
undefined

[Business] — Status as of YYYY-MM-DD

[业务名称] — 状态更新(截至YYYY-MM-DD)

Shipped this week: N cards
  • <card title>
  • <card title>
In progress: N cards
  • <card title> — <who/what>
Review/Blocked: N cards
  • <card title> — blocked on <reason>
Up next: top 2–3 from Ready
  • <card title>
  • <card title>
Open question: <one thing that would unblock progress if answered>

Output is paste-ready for Slack, Notion, email, partner DM.
本周已交付: N项任务
  • <卡片标题>
  • <卡片标题>
进行中: N项任务
  • <卡片标题> — <负责人/相关事项>
审核/阻塞: N项任务
  • <卡片标题> — 阻塞原因:<具体原因>
接下来: Ready列中的前2-3项任务
  • <卡片标题>
  • <卡片标题>
待解决问题: <一个能推动进度的关键问题>

输出内容可直接粘贴到Slack、Notion、邮件或合作伙伴私信中。

unblock

unblock

  • Read everything in Review/Blocked
  • For each card: surface the blocker, suggest an action (nudge X, escalate to Y, descope, kill, move back to In Progress if blocker is gone)
  • Output a short list of moves
  • 读取Review/Blocked列中的所有内容
  • 针对每个卡片:指出阻塞点,建议操作(提醒X、升级至Y、缩小范围、终止、若阻塞已解除则移回In Progress)
  • 输出简短的操作列表

weekly

weekly

Friday pulse + planning:
  1. For each board: shipped this week, in progress, blocked
  2. Cross-portfolio: where's momentum? where's drift?
  3. Plan next week: 3–5 Q2 items to pull from Ready into In Progress on Monday
  4. Output the combined snapshot — pasteable into Notion weekly log, partner update, or personal journal
周五进度汇总+周计划
  1. 针对每个看板:本周已交付、进行中、阻塞的任务
  2. 跨业务组合:哪些业务有进展?哪些业务出现停滞?
  3. 下周计划:从Ready列中选取3-5项Q2任务,在周一移至In Progress
  4. 输出合并后的快照——可粘贴到Notion周志、合作伙伴更新或个人日志中

WIP limits

WIP限制

Default WIP per column (override in your local
boards.md
per business):
ColumnDefault WIP
In Progress3
Review/Blocked(no limit — but flag if >5)
If WIP exceeded in
next
mode, don't pull more — recommend finishing or moving something to Review/Blocked first.
默认每列的WIP(在制品)数量限制(可在本地
boards.md
中按业务自定义):
默认WIP限制
In Progress3
Review/Blocked(无限制——但数量>5时会标记)
如果在
next
模式下WIP超出限制,不要拉取新任务——建议先完成或移走部分任务至Review/Blocked列。

Async-first writing rules

异步优先写作规则

When generating status / weekly outputs:
  • Lead with the headline — what shipped this week, or what's at risk
  • Be specific — "shipped X" not "made progress on Y"
  • No verbs without subjects — write so the reader can pick up cold
  • Blockers name the blocker — "waiting on designer's review" not "blocked"
  • Open questions are explicit — one bolded line per status that asks for what would unblock momentum
生成status / weekly输出时:
  • 开头即点明核心信息——本周交付了什么,或存在哪些风险
  • 表述具体——“交付了X”而非“在Y上取得进展”
  • 动词需明确主语——确保读者无需上下文即可理解内容
  • 阻塞点要明确对象——“等待设计师审核”而非“已阻塞”
  • 待解决问题要清晰——每个状态输出中用加粗行明确列出能推动进度的问题

Composes with

可组合使用的工具

  • decide
    — when a project hits a real decision, route to
    /decide
  • deep-research
    — when a card needs research before it's actionable
  • business-brainstorm
    — when an idea on the Backlog deserves pressure-testing before triage
  • jab-hook
    — when status / shipped items become BIP-post material
  • Memory (
    project_*.md
    ) — for portfolio context per business
  • decide
    ——当项目遇到关键决策时,跳转至
    /decide
  • deep-research
    ——当卡片需要先完成研究才能推进时
  • business-brainstorm
    ——当Backlog中的想法需要先进行压力测试再梳理时
  • jab-hook
    ——当状态/交付内容可作为BIP帖子素材时
  • Memory(
    project_*.md
    )——用于每个业务的组合上下文

Notes on quality

质量注意事项

  • Limit WIP. Multitasking is the most reliable way to ship nothing. Cap In Progress at 3 (override in your local
    boards.md
    per business if truly needed). If the cap is hit, don't pull more — recommend finishing or moving something to Review/Blocked.
  • Lead with the headline in every status output — what shipped this week, or what's at risk. Not "made progress on X" — that's noise.
  • Be specific. "Shipped the primary logo variant" beats "made progress on branding." Specificity signals real motion; vagueness signals none.
  • No verbs without subjects. Write status so the reader can pick up cold — 3 weeks later or forwarded to a partner who missed the last update.
  • Blockers name the blocker. "Waiting on designer's review of the homepage draft" — not "blocked." Blockers without names create no urgency.
  • Open questions are explicit — one bolded line per status that asks for what would unblock momentum. Async momentum lives or dies on how well open questions are surfaced.
  • Tool-agnostic by design. pm speaks Kanban + Eisenhower; the adapters (Notion / GitHub / Plane / Linear / Obsidian / manual) translate. Adding a new tool = one adapter file, not a rewrite.
  • 限制WIP数量。多任务处理是导致交付停滞的最常见原因。将In Progress的WIP上限设为3(若确实需要,可在本地
    boards.md
    中按业务自定义)。如果达到上限,不要拉取新任务——建议先完成或移走部分任务至Review/Blocked列。
  • 每个状态输出开头点明核心信息——本周交付了什么,或存在哪些风险。不要写“在X上取得进展”——这是无效信息。
  • 表述具体。“交付了主logo变体”优于“在品牌建设上取得进展”。具体表述意味着真实进展;模糊表述则相反。
  • 动词需明确主语。撰写状态更新时要确保读者无需上下文即可理解——即使是3周后或转发给错过上次更新的合作伙伴。
  • 阻塞点要明确对象。“等待设计师审核首页草稿”——而非“已阻塞”。未明确对象的阻塞点无法产生紧迫感。
  • 待解决问题要清晰——每个状态输出中用加粗行明确列出能推动进度的问题。异步协作的成效取决于待解决问题的清晰程度。
  • 设计为工具无关。pm工具基于Kanban + Eisenhower逻辑;适配器(Notion / GitHub / Plane / Linear / Obsidian / manual)负责与具体工具交互。添加新工具只需编写一个适配器文件,无需重写核心逻辑。