Requirement Analysis logo

Requirement Analysis

Community
fishzjp
requirement-analysis

Model a requirement/system: extract goals, scope, roles, rules, exceptions, dependencies from PRD, docs, bugs, code; outputs a structured model with clarifications. Not for: writing cases, strategy decisions, the pipeline. 建模需求/系统:从 PRD、文档、Bug、代码提炼目标/范围/角色/规则/异常/依赖。不用于:直接写用例、策略、流水线。

Overview

Publisherfishzjp
Repositoryqa-skills
Skill namerequirement-analysis
Stars
60
Forks
10
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by fishzjp on GitHub. Read the source before you install it.

Installation

Install the Requirement Analysis AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/fishzjp/qa-skills/tree/main/skills/requirement-analysis
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/fishzjp/qa-skills.git /tmp/qa-skills
mkdir -p .claude/skills
cp -r /tmp/qa-skills/skills/requirement-analysis .claude/skills/requirement-analysis
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Requirement Analysis in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Requirement Analysis on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Requirement Analysis is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

需求分析(requirement-analysis)

回答"这个需求到底要做什么"——建立对系统的正确理解,而不是写测试。

  • 输入:PRD、设计文档、API 文档、Bug、Issue、代码仓库;旁路场景下消费 exploratory-testing 的探索笔记(系统理解 + 风险清单)
  • 输出(落盘):{项目}/需求模型.md——按下方 Schema 组织,含澄清记录与用户裁决
  • 边界:不产出用例(→ test-case-writing);澄清后仍模糊的项如实标注 open_questions,不硬猜

When to Use

  • 拿到 PRD/设计文档,需要系统性理解"这个需求到底要做什么"再进入测试
  • 多输入源(文档 + 代码 + Bug 单)需要交叉核对、暴露矛盾与缺口
  • 为 test-strategy / test-case-writing 准备结构化的需求模型输入

When NOT to Use

  • 端到端测试整个需求 → qa 编排
  • 已有需求模型、直接写用例 → test-case-writing(其阶段一内联轻量研读,够用即不必先建模)
  • "这个功能应该怎么测" → test-strategy
  • 完全无文档且系统陌生 → 先走 exploratory-testing 探索,再回来建模

需求模型 Schema(产出结构)

yaml
requirement_model:
  goal:                     # 需求目标(一句话 + 成功标准)
  scope:                    # 功能范围(含明确的非目标)
  roles: []                 # 角色 → 能做什么 / 不能做什么
  inputs: []                # 输入(来源、格式、约束)
  outputs: []               # 输出(去向、格式、消费方)
  states: []                # 状态与流转(状态A --事件--> 状态B,逐条)
  rules: []                 # 业务规则,每条带 evidence(文档章节或 文件:行)
  exceptions: []            # 异常情况(错误场景的预期行为)
  dependencies: []          # 依赖关系(上下游系统、共享数据、时序依赖)
  open_questions: []        # 不明确事项 → 澄清记录(含用户裁决)

证据标注(此时加载 ../core/evidence.md):rules / states / exceptions 每条标注 evidence(level E0–E4 + source);用户在澄清环节的裁决记入 open_questions 的裁决字段,后续 skill 不得用代码推翻。

工作流

1. 输入收集与盘点

  • 清点可用输入源:PRD / 设计文档 / API 文档 / Bug 单 / FAQ / 会议纪要 / 代码仓库
  • 有代码仓库 → 主动索取(路径 + 分支 + 改动范围 + 对比基线 base——阶段 7 回归范围凭它划界),代码是静态事实的最高来源;分支名 + commit(或拉取时间)+ 对比基线记入需求模型文件头部,流水线续跑或进入执行阶段前先核对分支未变——对旧分支建模的结论不可复用,变了则标注受影响字段并复核
  • 有探索笔记(探索笔记_{主题}.md)→ 消费其"系统理解"与"风险清单"作为建模输入
  • 输入缺失项列入 open_questions(如"无性能指标文档")

2. 初读与要素提取

逐文档通读,按 Schema 的十个字段收集要素:

  • goal / scope:目标与成功标准;显式的"非目标"声明单独收录(后续要转化为验证边界)
  • roles:角色 × 能做 / 不能做(权限矩阵的雏形)
  • inputs / outputs:数据从哪来、到哪去、谁消费(无下游消费的输出是证伪线索)
  • states:状态与流转边;有代码时从代码状态字段提取实际状态机,与文档对照,差异记入澄清
  • rules:业务规则逐条编号,标注 evidence
  • exceptions / dependencies:错误场景行为、上下游依赖

3. 一致性检查(冲突发现)

  • 文档内部矛盾:同一文档不同位置对同一功能的描述不一致
  • 跨文档矛盾:PRD 与技术设计的规则 / 流程 / 字段不一致
  • 文档 vs 代码(有代码时):按 ../core/evidence.md 静态裁决规则——默认以代码为准,偏离记录并提交澄清

4. 澄清(⏸ 检查点,不硬猜)

触发与扫描的单一权威源在 ../core/clarify-pattern.md(此时加载):基础触发按其「何时必须问」6 条,深度扫描按其「需求歧义九类漏网模式」A–I 逐类过筛材料(本节不再维护独立清单,防止跨 skill 口径分裂),命中的必须进澄清清单——其中 I 类(NFR 指标空缺)单独提醒:性能/兼容性描述常见"快、稳定、支持多端"而无数值,问到指标或显式排除二选一,不允许跳过。

提问格式与裁决落盘同样统一按 ../core/clarify-pattern.md(逐条独立成卡,单条简单问题用其紧凑单行模板),等待用户答复,不自行假设。

用户裁决记入 open_questions(问题 / 裁决 / 依据),具有最终裁决力。

5. 落盘与交付

  • 按 Schema 写 {项目}/需求模型.md;澄清后仍模糊的项保留在 open_questions 并标注"未裁决",不硬猜填入规则
  • 交付时给下游(test-strategy / test-case-writing)一句话索引:模型路径 + 未裁决项数量

Common Mistakes

错误后果正确做法
硬猜模糊项填入 rules模型基于错误假设,下游全部污染模糊项进 open_questions,等用户裁决
只读 PRD 不读代码(有代码时)规则与实现脱节代码优先,文档降为对照(../core/evidence.md)
把测试想法混进需求模型职责越界(那是策略/用例的事)模型只描述"系统是什么/要什么",不描述"怎么测"
用户裁决不落盘后续 skill 重新发起同样的问题或推翻裁决裁决记入 open_questions,文件即流水线状态
非目标声明被忽略测试范围误扩、漏掉"限制的验证"非目标单独收录进 scope
性能/兼容性只有定性描述就放行无指标的 NFR 不可测,执行阶段临时编阈值按九类模式 I 类过筛:问到数值或显式裁定"本版不验证"
出现新事实仍抱着旧裁决走模型基于已失效的假设继续下游触发裁决重开:呈现新旧证据重新澄清,重开新起一条不覆写
空字段和漏提取分不清下游无法判断"没有"还是"没查"落盘前自检:空字段标注"已核对,无此类要素"

Frequently asked questions

What does the Requirement Analysis AI skill do?

Model a requirement/system: extract goals, scope, roles, rules, exceptions, dependencies from PRD, docs, bugs, code; outputs a structured model with clarifications. Not for: writing cases, strategy decisions, the pipeline. 建模需求/系统:从 PRD、文档、Bug、代码提炼目标/范围/角色/规则/异常/依赖。不用于:直接写用例、策略、流水线。

Why use Requirement Analysis on TypingMind?

Because you install it once and use it with any model. Requirement Analysis is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Requirement Analysis in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/fishzjp/qa-skills/tree/main/skills/requirement-analysis. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Requirement Analysis?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Requirement Analysis?

As many as you like. As long as a model supports skills, you can use Requirement Analysis with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Requirement Analysis AI skill free?

Yes. It is published on GitHub by fishzjp under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇