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: DeleteAsync-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:
| Invocation | Mode | Target |
|---|---|---|
| setup | the named business |
| triage | the named business (or ask) |
| next | the named business |
| next | across all boards (cross-portfolio) |
| status | the named business (or ask) |
| unblock | the named business (or ask) |
| weekly | all boards (Friday pulse) |
| weekly | the named business |
解析调用指令:
| 调用指令 | 模式 | 目标 |
|---|---|---|
| setup | 指定的业务 |
| triage | 指定的业务(或询问确认) |
| next | 指定的业务 |
| next | 所有看板(跨业务组合) |
| status | 指定的业务(或询问确认) |
| unblock | 指定的业务(或询问确认) |
| weekly | 所有看板(周五进度汇总) |
| weekly | 指定的业务 |
Step 2 — Load board config + personal overlay
步骤2 — 加载看板配置 + 个人覆盖设置
Read (personal — real business list + tool mapping per business). Falls back to in the repo if the local file doesn't exist yet — that's a template.
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.mdreferences/boards.mdAlso try to load 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.
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/team.local.md| Field | Example |
|---|---|
| business | |
| tool | |
| board_id or URL | tool-specific |
| column overrides | only 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.mdreferences/boards.md如果存在,也会尝试加载——用户可在此列出合作伙伴、活跃客户及典型阻塞场景的表述。用于生成更具体的状态输出(如“等待<合作伙伴>的审核”),而非通用表述。
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/team.local.md| 字段 | 示例 |
|---|---|
| business | |
| tool | |
| board_id 或 URL | 工具特定标识 |
| column overrides | 仅当看板不使用默认5列时配置 |
如果业务尚未配置工具映射,将自动跳转至setup模式——询问使用的工具,保存映射,然后返回请求的模式。
Step 3 — Load the adapter
步骤3 — 加载适配器
Read the relevant section of for the tool. Each adapter section explains how to:
references/adapters.md- 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 → (already in zshenv). Database with
$NOTION_API_KEYselect property.Status - GitHub Projects → CLI (already authed).
gh,gh project item-list.gh project item-edit - Plane → Plane API (needs and workspace slug).
$PLANE_API_KEY - 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 → (已在zshenv中配置)。需包含
$NOTION_API_KEY选择属性的数据库。Status - GitHub Projects → CLI(已完成认证)。使用
gh、gh project item-list命令。gh project item-edit - Plane → Plane API(需要和工作区slug)。
$PLANE_API_KEY - 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 (NOT to
${MAKERSKILLS_CONFIG:-$HOME/.config/makerskills}/pm/boards.mdin the repo — that's a template only). Create the parent directory if it doesn't exist yet.references/boards.md - 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 (with no business): pull Ready from every board, Eisenhower-rank, recommend top 1–3 across all businesses. Bias toward Q1 then Q2.
/pm next
- 单个看板:获取Ready列,再获取In Progress列。如果WIP(在制品)数量超出限制,提示应优先完成哪些任务。如果WIP有剩余容量,推荐Ready列中按Eisenhower优先级排序的顶部任务。
- 跨业务组合(不带业务名称的):获取所有看板的Ready列内容,按Eisenhower优先级排序,推荐跨所有业务的前1-3项任务。优先推荐Q1,其次是Q2。
/pm next
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:
- For each board: shipped this week, in progress, blocked
- Cross-portfolio: where's momentum? where's drift?
- Plan next week: 3–5 Q2 items to pull from Ready into In Progress on Monday
- Output the combined snapshot — pasteable into Notion weekly log, partner update, or personal journal
周五进度汇总+周计划:
- 针对每个看板:本周已交付、进行中、阻塞的任务
- 跨业务组合:哪些业务有进展?哪些业务出现停滞?
- 下周计划:从Ready列中选取3-5项Q2任务,在周一移至In Progress
- 输出合并后的快照——可粘贴到Notion周志、合作伙伴更新或个人日志中
WIP limits
WIP限制
Default WIP per column (override in your local per business):
boards.md| Column | Default WIP |
|---|---|
| In Progress | 3 |
| Review/Blocked | (no limit — but flag if >5) |
If WIP exceeded in mode, don't pull more — recommend finishing or moving something to Review/Blocked first.
next默认每列的WIP(在制品)数量限制(可在本地中按业务自定义):
boards.md| 列 | 默认WIP限制 |
|---|---|
| In Progress | 3 |
| Review/Blocked | (无限制——但数量>5时会标记) |
如果在模式下WIP超出限制,不要拉取新任务——建议先完成或移走部分任务至Review/Blocked列。
nextAsync-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
可组合使用的工具
- — when a project hits a real decision, route to
decide/decide - — when a card needs research before it's actionable
deep-research - — when an idea on the Backlog deserves pressure-testing before triage
business-brainstorm - — when status / shipped items become BIP-post material
jab-hook - Memory () — for portfolio context per business
project_*.md
- ——当项目遇到关键决策时,跳转至
decide/decide - ——当卡片需要先完成研究才能推进时
deep-research - ——当Backlog中的想法需要先进行压力测试再梳理时
business-brainstorm - ——当状态/交付内容可作为BIP帖子素材时
jab-hook - 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 per business if truly needed). If the cap is hit, don't pull more — recommend finishing or moving something to Review/Blocked.
boards.md - 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(若确实需要,可在本地中按业务自定义)。如果达到上限,不要拉取新任务——建议先完成或移走部分任务至Review/Blocked列。
boards.md - 每个状态输出开头点明核心信息——本周交付了什么,或存在哪些风险。不要写“在X上取得进展”——这是无效信息。
- 表述具体。“交付了主logo变体”优于“在品牌建设上取得进展”。具体表述意味着真实进展;模糊表述则相反。
- 动词需明确主语。撰写状态更新时要确保读者无需上下文即可理解——即使是3周后或转发给错过上次更新的合作伙伴。
- 阻塞点要明确对象。“等待设计师审核首页草稿”——而非“已阻塞”。未明确对象的阻塞点无法产生紧迫感。
- 待解决问题要清晰——每个状态输出中用加粗行明确列出能推动进度的问题。异步协作的成效取决于待解决问题的清晰程度。
- 设计为工具无关。pm工具基于Kanban + Eisenhower逻辑;适配器(Notion / GitHub / Plane / Linear / Obsidian / manual)负责与具体工具交互。添加新工具只需编写一个适配器文件,无需重写核心逻辑。