简体中文 | English
PM Copilot 是一个开源、平台中立的产品经理 Agent Workflow Kit。它帮助产品经理把模糊的产品需求转化为可交接成果:完整 PRD、源码优先的带标注 UI 交付物、从真实源码预览中提取的独立 HTML 交付件,以及结构化参考文档或文档型原型。
项目刻意不做成 Web 应用、CLI 或 Figma 插件,而是提供一套可复用的仓库资产:Agent 定义、技能、提示词规则、记忆规则、产物契约、工作流规则、护栏和模板。它可以适配 Codex、Claude Code、Cursor 或内部 Agent 平台等环境。
PM Copilot 支持三种上下文模式:repo-backed、document-backed、brief-only。Agent 应该根据可用输入先判断模式再开始起草,因此不要求每次都有代码仓库;如果产品文档或一段简要需求才是起点,也可以正常工作。
PM Copilot 也支持“已实现功能反向 PRD 交付”工作流:当功能已经在当前分支写好时,Agent 应先读取分支差异、相关代码、截图/资源和验证结果,再把真实实现还原成完整 prd.md,并在需要对外交付时生成可直接浏览的 prd.html。
PM Copilot 将中文和英文都视为一等用户语言。生成的 PM 产物、UI 交付文案、标注、评审发现、就绪状态和验证说明都应跟随用户语言,并保持同一套工作流、产物范围和质量标准。文件名、事件名、属性名、需求 ID 和其他机器可读标识保持 ASCII,便于跨平台使用。
- 适合产品、设计、研发、QA 和数据分析评审的
prd.md - 面向外部交付或浏览器阅读的
prd.html,作为 PRD 文档渲染而不是 UI 原型 - PRD 内的版本记录、需求输入、澄清答案、假设和待确认事项
- 调研和参考结论,优先包含外部竞品、同类功能、用户研究或公开方案来源;当前实现只作为产品上下文和工程约束
- 需求列表和详细需求表,覆盖逻辑、内容、规则、交互、数据、权限、边界状态、埋点链接和验收链接
- 已实现功能反向 PRD 场景下的实现证据和覆盖映射,说明哪些需求来自当前分支、哪些产品意图仍需确认
- PRD 内的目标、指标、埋点方案和流程图
- 适用于 Web、H5、App 或小程序场景的带标注 UI 交付物;有前端源码时默认用源码预览/增量补丁;如果 PM 需要交付独立 HTML,应先在原项目源码预览或用户明确要求的当前仓库实现中完成目标区域,再用
extract_ui_region.py提取为带可编辑标注配置的prototype-<platform>.html或离线index.html;只有无源码、明确便携 HTML 且不要求源码实现、明确重做视觉或源码渲染被阻塞时才使用本地 HTML 兼容产物 - 文档类需求的结构化参考交付,例如参数表、能力矩阵、规则说明、数据字典、SOP/runbook 或迁移清单;当用户明确不要 PRD 时,不强制生成 PRD
- 文档型 HTML 原型,用目录、表格、层级字段、来源/评审状态和
attention_points呈现文档重点,而不是套用普通前端页面注释 - 必要时作为内部追踪使用的
run-log.yaml,不作为面向 PM 的交付件 - 工具预检、交付总控校验、HTML 解析、浏览器截图和可选视觉差异验证;缺少 Playwright/浏览器时先运行安装辅助脚本
- 按需生成用于研发交接和上线决策支持的
dev-tasks.yaml和launch-decision.yaml
直接使用 Agent 时请看 docs/direct-use.md。嵌入到现有项目中使用时请看 docs/embedded-use.md。
- 在支持 Agent 的工作区中打开本仓库。
- 让 Agent 读取
PM_COPILOT.md,然后自然描述你的产品经理需求,例如:我需要一份会员自动续费优化的 PRD、埋点方案和 H5 UI 交付物。 - Agent 应先检查相关上下文,生成前询问必须澄清的问题,然后自动创建
prd.md和对应 UI 交付物。 - 可选:之后创建本地记忆文件,以便获得更贴合产品和个人工作习惯的结果。
推荐提示词:
我们想优化 H5 会员自动续费体验。用户反馈续费提醒不清楚,取消入口难找,客服工单也在增加。
如果关键信息缺失,请先问我。
如果信息足够,请创建 `prd.md` 和对应的 UI 交付物。
如果功能已经在当前分支实现,推荐提示词:
当前分支已经把功能写好了。请先读取当前分支 diff、相关代码、截图/资源和验证结果,把实现完整还原成 PRD Markdown,并生成可对外交付的 `prd.html`。
涉及图片的位置如果没有最终截图,就在对应需求位置放内联 `占位图`,不要单独做图片列表。
缺失截图只在对应需求位置使用下面格式,其他地方不要使用这几个字:
> 占位图:文件上传-上传中.png
> 用途:展示文件上传过程中的进度、按钮状态和不可重复提交规则。截图按内容命名;同一个对象有多个状态时使用“对象-具体状态”,例如 文件上传-上传中.png、文件上传-上传失败.png,不要使用 文件上传-状态.png。生成或更新 HTML 需求文档时使用 scripts/render_prd_html.py,嵌入宿主项目时输出路径应是 pm-copilot/outputs/<run-id>/。
把下面任一请求直接粘贴给支持 Agent 的工作区。PM Copilot 会先识别上下文模式,加载必要 Agent、技能、契约和工具规则;缺关键信息时先问问题,信息足够后再生成 PRD、UI 交付物、运行追踪和可选交接材料。
适合证明 PM Copilot 不只是写通用文档,而是会读取现有代码仓库,贴合当前产品结构、权限模型、路由、UI 组件和埋点约定;同时把外部参考、当前产品上下文和研发交接任务分开记录。
我们要在后台管理端做团队权限管理。
请先检查现有项目里的路由、角色模型、成员管理页面、权限判断、埋点约定和组件风格。
需要做少量外部同类产品参考,但不要把仓库文件当成竞品调研。
如果关键信息不够,请先问我。
如果信息足够,请输出 PRD、Web UI 交付物,并补一份可转 issue 的研发任务拆分。
一次有效运行应能产出:
| 产物 | 应该看到什么 |
|---|---|
outputs/team-permissions/prd.md |
目标用户、当前产品约束、外部参考结论、MVP/可选/未来范围、成员邀请、角色变更、权限拦截、审计记录、加载/空/错误/无权限状态 |
| Web UI 交付物 | 有前端源码时使用源码驱动的预览路由、Storybook/demo 或 source_delta_patch,复用现有后台壳层、组件库和表格密度;当需要离线交付研发时,从源码预览或用户批准的当前仓库实现中提取 source_extract_html;仅在明确便携 HTML 且不做源码实现或源码渲染被阻塞时才退回兼容 HTML |
outputs/team-permissions/dev-tasks.yaml |
可转 issue 的研发任务、依赖关系、验收标准、测试建议、相关宿主项目文件和阻塞确认项 |
outputs/team-permissions/run-log.yaml |
上下文模式、读取过的宿主项目文件、外部调研来源、样式证据、现有 UI 基线、工具校验和未解决风险 |
这个 Demo 重点展示:repo-backed 上下文读取、外部调研和仓库上下文分离、中文 PRD、现有 UI 源码增量交付、必要时从源码预览区域提取独立 HTML、红色组件标注、研发交接、权限和边界状态覆盖。
适合证明 PM Copilot 可以从一段模糊业务描述或产品文档出发,不依赖代码仓库,也能处理支付、取消、提醒、埋点、隐私和上线门禁这类更高风险的产品需求。
我们想优化 H5 会员自动续费体验。用户反馈续费提醒不清楚,取消入口难找,客服工单也在增加。
业务目标是降低续费相关投诉,同时不要误伤会员留存。
如果需要我补充当前扣费规则、提醒周期、取消路径、客服口径、法务要求或指标口径,请先问我。
信息足够后,请输出 PRD、H5 UI 交付物、埋点方案,并给出上线决策建议。
一次有效运行应能产出:
| 产物 | 应该看到什么 |
|---|---|
outputs/membership-renewal/prd.md |
用户问题、业务目标、外部参考、当前假设、提醒策略、取消链路、支付/客服/法务风险、验收标准和上线状态 |
outputs/membership-renewal/prototype-h5.html |
无代码或文档起步时的 H5 兼容 HTML UI 交付物,覆盖会员中心入口、续费提醒、自动续费管理、取消确认、结果回执、未登录/无会员/接口失败等访问态和边界状态 |
| PRD 内埋点表 | renewal_notice_view、renewal_manage_open、renewal_cancel_submit、renewal_cancel_result 等事件和隐私说明 |
outputs/membership-renewal/launch-decision.yaml |
工程可交接范围、上线阻塞项、法务/支付/客服 owner、回滚建议和人工批准缺口 |
outputs/membership-renewal/run-log.yaml |
澄清问题、默认假设、外部调研状态、访问态视觉校验、工具结果和未确认门禁 |
这个 Demo 重点展示:document-backed 或 brief-only 模式、中文交付、移动端 UI 交付物、访问态一致性、指标和埋点、支付/隐私/法务风险显性化,以及工程交接和上线决策状态分离。
如果要把 PM Copilot 引入真实软件项目,推荐结构如下:
host-repo/
|-- AGENTS.md or CLAUDE.md or .cursor/rules/
|-- src/
`-- pm-copilot/
`-- PM_COPILOT.md
将本仓库复制或 clone 到宿主项目的 pm-copilot/ 目录,然后在宿主仓库根目录安装一个小型适配器:
cd host-repo/pm-copilot
python3 scripts/install_adapter.py --host .. --tool all嵌入式使用时适配器是必要的。仅把 pm-copilot/ 文件夹放入另一个项目,并不能保证 Codex、Claude Code、Cursor 或其他 Agent 自动发现嵌套说明。
在嵌入模式下,PM Copilot 起草前应先检查当前宿主项目。现有路由、数据模型、UI 模式、权限、埋点约定和文档都会影响新需求;除非你明确要求绿地方案,Agent 不应假设这是一个全新产品。
适配器安装后,用户可以在宿主项目中直接提出自然语言 PM 需求,无需点名 PM Copilot:
帮我写团队权限管理的 PRD 和 UI 交付物。
详情和手动适配器片段请看 docs/embedded-use.md。
产品经理不需要软件仓库也可以使用 PM Copilot。如果产品上下文在文档里,把相关文件放入或附加到工作区,然后自然提问即可。
可用上下文包括:
- 历史 PRD、规格文档和发版记录
- 产品文档、截图、线框图和 UI 交付说明
- 调研摘要、用户反馈、客服工单和会议纪要
- 分析导出、KPI 定义和现有埋点方案
- 业务规则、合规约束、定价说明和灰度计划
PM Copilot 应把这些文档作为当前产品上下文读取;当文档不足时先询问必须回答的问题;澄清门通过后再生成 prd.md 和 UI 交付物。
PM_COPILOT.md 跨平台 PM Copilot 主入口
adapters/ Codex、Claude Code、Cursor 等宿主项目适配器
agents/ Agent 角色、职责、输入、输出和交接
skills/ 可复用的 PM 方法和任务技能
prompts/ 提示词组装、记忆使用、澄清和生成规则
context/ 产品记忆、用户偏好、决策、业务规则和指标
workflow/ 状态机、人工检查点和执行顺序
artifacts/ 输出契约和质量标准
tools/ 工具注册表、使用协议和分能力工具说明
guardrails/ 安全、隐私、来源、假设和故障转移规则
templates/ 可复用产物模板
docs/ 用户、维护者和发版文档
scripts/ 轻量级本地校验
需求接收
-> 工具预检
-> 当前产品上下文扫描
-> 已实现功能证据扫描(当当前分支已经包含功能)
-> 需求澄清
-> 用户回答或明确批准假设
-> 包含目标、调研、需求、指标、埋点和流程的 PRD
-> 多平台 UI 交付物,或结构化参考/文档型原型
-> 交付检查
默认交互模式是“先澄清,再生成”。如果缺少必须回答的信息,Agent 应先提问并停止,不创建 PRD 或 UI 交付件。只有在用户回答或明确接受假设风险后才继续。PRD 状态、研发交接状态和上线状态是相互独立的:阻塞研发交接的确认项会阻止标记为“可交接研发”;只阻塞上线的事项必须保留 owner 和所需确认。
对于政策、医疗、法律、金融、安全或运营内容,PM Copilot 会记录来源状态、评审 owner、评审状态、免责声明状态和上线影响。未经评审的内容必须标记为占位或草稿,即使周边产品框架已经可以交接研发。
每次真实需求运行都会在 outputs/<run-id>/ 下生成一个产物目录,通常包含 prd.md、UI 交付物引用和可选 run-log.yaml。run id 使用英文 kebab-case 需求名加日期,例如 membership-renewal-2026-05-18;同一天同名冲突时追加 -2、-3 等数字后缀。在有前端源码的仓库中,UI 交付物默认是源码驱动预览/增量补丁并记录在 run-log.yaml;当用户要求先在当前仓库实现好再一比一交付研发时,应先运行实现后的宿主 UI,再提取目标区域为源码派生 HTML。仅在无源码、明确便携 HTML 且不要求源码实现、明确重做视觉或源码渲染被阻塞时,才生成兼容文件 prototype-<platform>.html,离线文件夹交付也可以使用同目录下的 index.html 作为入口。outputs/ 目录在运行时生成,不随仓库发布示例产物。如果目标 git 仓库不可用但桌面存在同名源码目录,Agent 可以把源文件改动写入该本地目录,并明确说明未执行远端推送。
当用户要求把已实现功能交付成文档时,同一个运行目录可以包含 prd.html。它应是 prd.md 的浏览器可读版本:普通文档样式、可选左侧目录、完整表格、正确渲染 Mermaid、图片或截图占位放在对应需求位置,真实图片可点击全屏查看。不要把 prd.html 做成 UI 原型、卡片化页面或单独截图清单。
已实现功能反向 PRD 推荐使用 templates/implemented-feature-prd-template.md,并通过 python3 scripts/render_prd_html.py outputs/<run-id> 生成 prd.html。在嵌入模式下,运行目录必须位于 pm-copilot/outputs/<run-id>/,对应命令是 python3 pm-copilot/scripts/render_prd_html.py pm-copilot/outputs/<run-id>。
生成兼容 HTML UI 交付物时,PM Copilot 应运行 python3 scripts/validate_prototype_visual.py outputs/<run-id>。生成源码驱动 UI 预览时,应通过宿主项目的 dev/preview/Storybook/模拟器路径运行;有浏览器预览 URL 或本地预览文件时运行 python3 scripts/validate_ui_preview.py <preview-url-or-file> --run-folder outputs/<run-id>,否则记录等价截图或模拟器证据。如果缺少 Playwright 或浏览器工具,应先运行或引导 python3 scripts/setup_visual_validation.py;只有安装失败、环境禁止启动浏览器,或用户拒绝安装时,才允许记录跳过原因。最终交付前应优先运行 python3 scripts/run_delivery_checks.py outputs/<run-id> --language zh,并把工具证据写入 outputs/<run-id>/tool-results/。当用户请求研发交接或上线就绪检查时,同一个运行目录也可以包含 dev-tasks.yaml 和 launch-decision.yaml。
PM Copilot 会跟随用户语言生成产物:中文请求应生成中文标题、标签、状态、说明和 PM 内容;英文请求应生成英文等价内容。文件名和机器可读标识保持 ASCII。
PM Copilot 使用本地文件记忆,让重复使用更顺手,同时不依赖托管服务:
context/product-memory.local.yaml存放稳定产品事实context/user-preferences.local.yaml存放用户工作风格context/decision-log.local.yaml存放长期产品决策outputs/<run-id>/run-log.yaml存放单次运行追踪outputs/<run-id>/tool-results/delivery-check-report.json存放交付总控工具报告outputs/<run-id>/visual-review/visual-report.json存放完成 Playwright/浏览器安装或配置后的 UI 截图和视觉差异证据outputs/<run-id>/dev-tasks.yaml存放按需生成、可转 issue 的研发交接内容outputs/<run-id>/launch-decision.yaml存放按需生成的上线决策支持内容
仓库只提供 .example.yaml schema。.local.yaml 记忆文件会被 Git 忽略,应保持私有。当前用户指令和当前产品上下文始终优先于记忆。
PM Copilot 不绑定特定 Agent 框架。每个 Agent 和技能都是可移植的 Markdown 契约:
- Agent 定义职责、输入、输出、决策点、交接和故障转移行为。
- 技能定义可复用流程、标准和产物规则。
- 提示词规则定义需求分类、记忆使用、澄清行为和生成边界。
- 产物契约定义必要输出结构和最低质量标准。
- 护栏定义 Agent 不能编造或静默假设的内容。
skills/ 存放可复用的产品工作方法。PM_COPILOT.md 和各 Agent 只在命中场景时加载相关技能,避免把整套技能塞进上下文。
| 分组 | 技能 |
|---|---|
| 需求和范围 | requirement-intake、opportunity-discovery、feedback-synthesis、process-mapping、knowledge-ops、scope-edge-cases |
| PRD 和交付 | prd-writing、user-stories、user-flow、acceptance-criteria、review-checklist、artifact-packaging、development-handoff |
| 指标和数据 | metrics-tree、tracking-plan、experiment-design、product-ops-analysis |
| 调研和沟通 | competitor-research、roadmap-communication |
| UI 交付和 UI 证据 | multi-platform-prototype(含图片/截图转 UI 还原)、design-system-audit |
| 工具和能力治理 | tool-vetting、sharingan、skill-cleaner |
同一能力类型只保留一个 canonical skill。吸收外部资源时用 skills/sharingan/SKILL.md 做风险检查和合并,不新增重复技能。
PM Copilot 可以接入 Figma、浏览器验证、文档系统、项目管理、数据分析、CRM、自动化平台等外部工具,但这些工具不会因为出现在推荐列表里就被视为可用。
tools/external-tool-catalog.json记录候选工具、来源类型、成本风险、凭据要求、数据风险、权限边界和 fallback。agents/integration-governance-agent.md和skills/tool-vetting/SKILL.md负责在使用前做工具评估。python3 scripts/preflight_integrations.py --tier recommended会检查推荐层级工具的本地运行条件、缺失凭据和候选状态。- 需要 API key、OAuth、商业账号、工作区权限或写操作的工具默认都是可选项,不能静默启用。
- 数据库、分析、CRM、客服、投放和协作系统默认走只读/最小权限;写入、发布、改预算、改工单、发消息等动作必须有明确用户批准。
README.en.md- 英文 READMEdocs/direct-use.md- 直接一次性 Agent 使用方式docs/embedded-use.md- 在另一个开发仓库内使用 PM Copilotdocs/configuration.md- 产品上下文配置docs/quality-rubric.md- 生成 PRD 和 UI 交付的人工评分标准docs/optimization-playbook.md- 真实任务优化循环docs/failure-taxonomy.md- 失败分类和修复映射docs/versioning.md- 版本和兼容性策略docs/release-checklist.md- 发版就绪清单tools/tool-registry.yaml- 工具能力注册表artifacts/tool-result-contract.md- 工具结果契约CONTRIBUTING.md- 贡献规则SECURITY.md- 安全和隐私策略CHANGELOG.md- 详细版本历史
欢迎通过 GitHub issues 提交真实使用反馈:
- Bug 反馈:
.github/ISSUE_TEMPLATE/bug_report.md - 功能建议:
.github/ISSUE_TEMPLATE/feature_request.md - 场景请求:
.github/ISSUE_TEMPLATE/scenario_request.md
请优先使用合成或脱敏的产品上下文。不要在公开 issue 中提交私有产品数据、凭证、未公开财务信息或真实用户数据。
当 PM Copilot 嵌套在另一个开发仓库内时,在宿主项目中安装小型适配器:
python3 scripts/install_adapter.py --host /path/to/host-repo --tool all安装后,用户可以直接提出自然 PM 需求,无需说出项目名。
运行:
python3 scripts/preflight_tools.py --strict
python3 scripts/validate_repo.py.github/workflows/validate.yml 中的 GitHub workflow 会在 push 和 pull request 上运行同一校验器。
在 PM Copilot 运行期间校验生成目录:
python3 scripts/run_delivery_checks.py outputs/<run-id> --language zh
python3 scripts/validate_outputs.py outputs/<run-id> --language zh如果本次交付依赖外部调研或来源校验,请使用 python3 scripts/preflight_tools.py --check-network <url> --require-network --strict 做网络能力预检。validate_prototype_visual.py 在未指定 --prototype 时会校验运行目录中的全部受支持兼容 HTML 文件;源码预览用 validate_ui_preview.py 记录浏览器证据。
PM Copilot 应通过真实任务运行、追踪记录、质量评分、失败分类和回归用例持续改进。
从这些文件开始:
docs/optimization-playbook.mddocs/self-improvement-system.mddocs/failure-taxonomy.mddocs/quality-rubric.mdtemplates/agent-run-log-template.yamltemplates/dev-tasks-template.yamltemplates/launch-decision-template.yamltemplates/evaluation-case-template.md
持续优化时运行:
python3 scripts/agent_improvement_scorecard.py默认使用本地文件。不要粘贴敏感生产数据、用户个人数据、私有凭证、未公开财务信息或保密合作方信息,除非你的环境已被批准处理这些数据。需要真实业务上下文时,优先使用匿名化示例和抽样指标。
MIT License。见 LICENSE。

