Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add Leo-maomao/pm-copilot --skill prd-writinggit clone --depth 1 https://github.com/Leo-maomao/pm-copilotWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/leo-maomao/pm-copilot/prd-writing)<a href="https://agentmods.dev/skills/leo-maomao/pm-copilot/prd-writing"><img src="https://agentmods.dev/badge/skills/leo-maomao/pm-copilot/prd-writing/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/leo-maomao/pm-copilot/prd-writing"><img src="https://agentmods.dev/badge/skills/leo-maomao/pm-copilot/prd-writing.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00016 | $0.02146 |
| Opus 5 | $0.00008 | $0.01073 |
| Sonnet 5 | $0.00003 | $0.00429 |
| Haiku 4.5 | $0.00002 | $0.00215 |
Grade A, and why
prd-writing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 46 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PRD Writing
Goal
Create outputs/<run-id>/prd.md as a product document that starts from users and their problems, then makes every proposed behavior reviewable through a requirement list and matching requirement details.
Workflow
- Load
artifacts/prd-contract.md. Use its canonical ordered structure only for a new PRD. When a new PRD migrates or references another PRD, the source supplies only confirmed requirement content, terminology, assets, and explicitly requested migration boundaries; it never supplies the new document's chapters, field labels, numbering, or canonical structure unless the user explicitly says so. Do not record an assumption that the new PRD follows the source PRD's structure. For an in-place revision, the identified PRD is the sole structural source of truth: preserve its existing chapter order, headings, fields, numbering, and unaffected content. Do not use another or older PRD, or the canonical new-document structure, to normalize its overall structure unless the user explicitly requests a structural rewrite. Apply only the user-requested patch; when that patch concerns screenshots, it is limited to the matching需求详情cell. Remove deleted requirements and renumber the remaining detail IDs consecutively only when the user requested a requirement deletion. - Identify target users, their scenario, problem, desired outcome, and the source or confirmation status before drafting requirements.
- For a new PRD, apply the evidence boundary and requirement-granularity rules in
artifacts/prd-contract.mdbefore creating需求清单. Create需求清单before需求详情; use the matching detail number, such as5.1, as the sole identifier for every coherent user need, and do not use a visual state or coverage decision as a requirement boundary. For an in-place revision, preserve existing requirement boundaries and identifiers unless the user explicitly changes them. - Expand each requirement only in its matching
需求详情subsection. Do not create requirements that cannot be traced back to a user problem or scenario. - For a new standard PRD, structure each requirement detail with the four required rows:
用户与场景,需求入口,需求详情, and设计与交互. For a layout-only revision, do not add, delete, rename, or reorder rows. Keep every screenshot and its matching state logic inside the existing single需求详情cell as repeatedprd-detail-mediablocks: fixed-width image column on the left and that state's functional logic on the right. The right column is not a filename, caption, or generic annotation such as “对应成功状态”; it must state the user-visible rule, boundary, or feedback shown by the adjacent image. Do not add a separate图示row or visible image-name caption. For an implemented-feature PRD, create a coverage item for every independently reviewable production user-facing state retained in the PRD:real_figure,required_placeholder, ornot_required, with rationale. A named production user-facing page, panel, dialog, node, toolbar, media state, or flow requires visual evidence; do not mark itnot_required. Coverage items are visual evidence, not requirement items. Do not combine several states into one coverage item or placeholder name. Add each required figure or placeholder inline with its matching requirement. Beforerequired_placeholder, execute and record the capability chain: discover existing previews, reuse or activate the project runtime using its actual project configuration, recover the target test state, then attempt Playwright, Chrome DevTools, and Computer Use. Do not assume or require a fixed port, and do not useskippedas a capture result. Every attempted capability and capture recordsaction、evidenceand a non-empty localresult_refundertool-results/. When capture recovery fails, continue withrequired_placeholder, set the PRD status to可评审(图示待人工补全), and record the named manual replacement instruction inrun-log.yaml; do not label the PRD as degraded or block its review. A placeholder cell contains only controlled占位图:功能-状态.pngvalues, separated by<br>when several states need placeholders. User-provided videos are not screenshots: preserve the original local video as an inline player with browser controls; never replace a supplied video with a still frame unless the user explicitly asks for a frame image. Put normal and exception states, permissions, empty/loading/error feedback, recovery, and boundaries in需求详情; when it has two or more rules, split independently presented concerns into content groups. Restart every group's heading at一、; restart that group's rules at1.、2.、3.. Never continue a previous group's二、/三、numbering just because the groups share one需求详情cell. Write each heading and numbered rule on its own<br>line, and separate adjacent groups with one<br>. A media block or content group is not a new5.xrequirement. Do not add risk, pending-confirmation, acceptance-result, technical-test, or standalone exception fields. - Use
用户流程图for a user's cross-surface or cross-state interaction path and操作流程图for operation rules, conditions, permissions, state transitions, or exceptions. Neither is mandatory: add either or both Mermaid diagrams immediately above the matching detail table only when they improve reviewability; when both are present, list the user flow first. - Treat a screenshot as evidence, not decoration. Follow the canonical visual-evidence, crop, placeholder, and fixed-column media-block rules in
artifacts/prd-contract.md; this workflow must not restate or override them. Record the required visual-capture review only in internal evidence. If a figure does not improve reviewability, omit the media block. - Add
需求调研,多语言需求, and埋点需求only when they have real, decision-relevant content. Before omitting多语言需求or埋点需求, complete the per-requirement coverage review inrun-log.yaml:not_neededrequires evidence that the requirement has no changed visible copy or no decision-relevant measurable action/outcome. Record measurable actions and outcomes as real YAML lists, never comments. The absence of existing event code or event definitions is not evidence for omission. For every research row, state the source fact and the PRD decision it changes. In a Chinese PRD, the multilingual pure-text block and文案column contain the localized Chinese copy only, not an English source string. A multilingual section contains only new or changed user-visible copy in one copyable pure-text block, followed by文案、使用位置、参数rows; apply the PRD contract's smallest-localizable-copy-unit rule so every independently usable string has its own pure-text line and matching文案row. List placeholders such as{reason}in参数and use/when none exist. A tracking table uses only事件、事件名称、上报时机、附加参数、备注: use unique lowercase semanticfeature_actionidentifiers such aslogin_click, never PRD-location or generic IDs such asprd_5_1_vieworjourney_view. Select access events, meaningful clicks/operations, important outcomes, and value signals such as duration, depth, exposure, completion, or retention when the user journey needs them. Keep上报时机to one observable sentence, put only event-external properties in附加参数, and use/when either附加参数or备注has no content. Omit empty optional sections and explanatory labels. - Clean user input before writing: retain user-confirmed facts, source-backed observations, and explicit product decisions; remove template guidance, process narration, technical evidence, duplicated explanation, and vague filler. If an unresolved product rule materially affects the requirement, ask for a decision before generation; do not put it in the PRD. Never invent behavior from model intuition.
- Add a version record only for the initial document or a material change to a user need, product behavior, scope, rule, or user-visible copy. Do not record rendering, formatting, validation, synchronization, or other document operations.
- For implemented-feature reconstruction, use technical evidence only to infer and verify user-visible behavior. Record technical evidence in
run-log.yaml, never in the PRD. - Do not include technical implementation or solution content in a PRD, including code paths, routes, components, services, APIs, schemas, infrastructure, commands, technical architecture, CSS variables or selectors, color tokens, gradients, stacking levels, exact dimensions, or source field names. Translate implementation evidence into user-visible behavior. Create or link a separate engineering handoff only when the user explicitly requests one.
- Remove empty tables, artificial
不涉及text, instructional prose, duplicated restatement, and detached implementation or testing plans. Before delivery, check that background explains a causal user problem, every list row names an independently reviewable user outcome, every detail row makes a distinct product decision, and every tracking event can answer a product or business question.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed dec2400620e9
- 5d ago Changed 64c432b744eb
- 6d ago Changed 62eef114b007
- 10d ago First seen · 46 lines · 16 tokens per session scan A 1b05cbe37f81
prd-writing is a skill published in the GitHub repository Leo-maomao/pm-copilot (4 stars, last pushed yesterday), licensed MIT. It adds 16 tokens to every session and 2,146 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
dcjc
Use when executing multi-step tasks, when code quality or progress deviates from plan, when tool calls fail repeatedly, or when a task delay exceeds 50% of the estimate.
qsbg
Use when starting a new task, facing ambiguous requirements, choosing between multiple technical approaches, making architectural decisions, or considering parallel agent execution.
xxfw
Use when completing a milestone, encountering a major risk or blocker, finishing a task, or when more than two reporting nodes have passed without a status update.
chinese-git-workflow
A reference for configuring Git with Chinese code-hosting services such as Gitee, Coding.net, GitLab China, and CNB, including SSH, HTTPS, credentials, CI, and repository mirroring.
chinese-documentation
A Chinese technical-documentation style guide covering spacing, punctuation, numbers, terminology, and links when Chinese and English appear together.
seedance-vocab-zh
This skill should be used when the user asks for Chinese Seedance 2.0 prompt wording, Mandarin cinematic vocabulary, Chinese prompt compression, or translation of camera, lighting, action, VFX, audio, and production terms into Chinese.