prd-from-requirements

A workflow for turning raw requirements—such as documents, spreadsheets, interview notes, or rough drafts—into a structured product-requirements workspace. It can organize modules, trace requirements, define states, fields, permissions, acceptance checks, and unresolved questions.

In plain words
What is it for?
Use it to create or assess a modular PRD, build a requirements traceability matrix, describe workflows and permissions, define testable acceptance criteria, and identify dependencies.
Why use it?
It turns incomplete or scattered requests into material that product, engineering, and testing teams can review and verify without silently deciding open questions.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/voidtechnology/voidtech-claude-plugins/prd-from-requirements
Any agent
npx skills add VoidTechnology/voidtech-claude-plugins --skill prd-from-requirements
Clone the repo
git clone --depth 1 https://github.com/VoidTechnology/voidtech-claude-plugins

Made for: Claude Code, Codex.

Per session 89 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 10,707 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00089 $0.10707
Opus 5 $0.00044 $0.05353
Sonnet 5 $0.00018 $0.02141
Haiku 4.5 $0.00009 $0.01071

Measured yesterday against content hash c5b45dbe59b8, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

prd-from-requirements 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.

The scan reads SKILL.md. This mod also ships 32 executable files (scripts/check-prd-tree.py, scripts/generate-dashboard.py, scripts/prd-sync.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

plugins/voidtech-product/skills/prd-from-requirements/SKILL.md · 498 lines

How it starts

The opening of the file, as written. The whole thing — 498 lines — stays where its author put it; the contents beside it link to each section on GitHub.

prd-from-requirements

本技能用于从原始需求生成高质量 PRD 工作树。

执行任何随插件分发的脚本前,先读 HOST-RUNTIME.md(插件内路径:skills/_shared/HOST-RUNTIME.md),按当前宿主选择唯一入口。下文保留的 ${CLAUDE_PLUGIN_ROOT} 命令是 Claude Code 形式;OMP 必须映射为 voidtech_product_runtime 调用,不得把未展开变量交给 shell。

与 to-prd 的分工

本技能适用于“从原始需求文档生成模块化 PRD 工作树”,主要服务专业产品经理、业务分析、研发评审和测试验收。

如果用户只是希望把当前对话整理成一份轻量单体 PRD,并发布到项目 issue 追踪器,应该改用 voidtech-engineering:to-prdto-prd 不重新访谈需求,也不产出模块化工作树。

对已生成工作树的后续维护——深化模块到验收级、合入需求变更、定案开放问题、落实评审修订——改用 voidtech-product:prd-maintain,不要重跑本技能。prd-maintain 复用本技能的红线、模板与脚本,只封装维护流程。源需求文件(如 Excel)后续出新版本时的同步走 voidtech-product:prd-sync:它只计算差异并提出候选,确认后的合入仍由 prd-maintain 执行。本技能只负责首建。

触发场景

当用户要求基于原始需求、Excel 整理稿、访谈纪要、需求清单或已有粗稿生成、重构、评审 PRD 时,使用本技能。

典型请求包括:

  • 根据原始需求生成 PRD
  • 把需求整理成产品需求文档
  • 生成模块化 PRD 工作树
  • 生成需求追溯矩阵
  • 检查 PRD 是否能支撑研发和测试
  • 将业务需求拆成可评审、可开发、可验收的文档

目标

把原始需求转化为高质量 PRD 工作树,而不是简单改写原文。

产出必须做到:

  • 需求可追溯
  • 模块边界清晰
  • 跨系统依赖显式
  • 核心流程可执行
  • 状态机可判断
  • 字段规则可落地
  • 权限矩阵可测试
  • 验收标准可判真伪
  • 开放问题不被私自定案

输入

用户至少需要提供:

  • 原始需求路径或原始需求正文
  • 输出目录(可选;未提供时按“输出目录安全策略”生成默认目录)

如果需求来源包含多个文件,优先完整读取主需求文件,再读取直接引用的附件、表格、旧版 PRD 或补充说明。

Excel 输入处理

如果原始需求是 .xlsx,不要直接用 Read 读取二进制文件。目标是先得到可审阅的文本中间产物,再读取 Markdown 或 CSV。按下面的降级阶梯处理:

  1. 优先使用技能自带脚本。该脚本只使用 Python 标准库,不依赖 pandas、openpyxl 等第三方包。

    python3 "${CLAUDE_PLUGIN_ROOT}/skills/prd-from-requirements/scripts/xlsx-to-markdown.py" \
      <原始需求.xlsx> \
      <输出目录>/_source/<需求文件名>/
    
  2. 如果没有 python3,探测本机常见转换工具。优先保留多 sheet 信息。

    command -v xlsx2csv
    command -v in2csv
    
    • xlsx2csv 时,使用 xlsx2csv -a <原始需求.xlsx> <输出目录>/_source/<需求文件名>/ 导出所有 sheet。
    • in2csv 时,先用 in2csv -n <原始需求.xlsx> 查看 sheet,再按 sheet 导出到 _source/<需求文件名>/
  3. 如果以上工具都不可用,停下请求用户转换。明确告知用户:请在 Excel、WPS 或 Numbers 中把需求表另存为 .csv 后重新提供;拿到 CSV 前不要假装已经读取 .xlsx 内容。

转换产物固定放在当前 PRD 输出目录的 _source/<需求文件名>/ 下,并标注为“转换产物,以原始 xlsx 为准”:

  • INDEX.md:sheet 清单和转换结果索引。
  • NN-{sheet}.md:每个 sheet 的 Markdown 表格,优先供模型阅读。
  • NN-{sheet}.csv:每个 sheet 的 CSV,供精确检索、计数或复核。

Read the full file on GitHub · 498 lines

Files

What ships with it

60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

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.

  1. yesterday First seen · 498 lines · 89 tokens per session scan A c5b45dbe59b8

Subscribe to this mod's changes

prd-from-requirements is a skill published in the GitHub repository VoidTechnology/voidtech-claude-plugins (2 stars, last pushed 28d ago), licensed Apache-2.0. It adds 89 tokens to every session and 10,707 once invoked, about $0.0004 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.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

babysit-pr

Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…

openai/codex · 114 tokens

imagegen

Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…

openai/codex · 113 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens

next-cache-components-optimizer

Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…

vercel/next.js · 170 tokens