requirements-engineering

v2026.09.24

Use when "requirements document", "acceptance criteria", "user stories", "EARS format", "specification", "feature spec", "product requirements"

GitHub
安装命令
npx skhub add eyadsibai/requirements-engineering
Markdown
SKILL.md

Requirements Engineering

Structured approaches for capturing what to build before how to build it.


Core Principle

Specify WHAT, not HOW. Requirements describe outcomes and behaviors, not implementation details.


EARS Format

Easy Approach to Requirements Syntax - structured acceptance criteria.

PatternTemplateUse Case
Event-drivenWHEN [event] THEN [system] SHALL [response]User actions, triggers
ConditionalIF [condition] THEN [system] SHALL [response]Business rules
State-drivenWHILE [state] [system] SHALL [response]Ongoing behaviors
UbiquitousWHERE [feature] [system] SHALL [response]Always-true rules
Unconditional[system] SHALL [response]Basic capabilities

Examples

TypeExample
EventWHEN user clicks "Submit" THEN system SHALL validate all required fields
ConditionalIF user is not authenticated THEN system SHALL redirect to login
StateWHILE file is uploading system SHALL display progress indicator
UbiquitousWHERE data is displayed system SHALL use consistent date format

User Story Format

As a [role]
I want [capability]
So that [benefit]

Good vs Bad

BadGood
As a user I want to loginAs a returning customer I want to login with my email so that I can access my order history
As a user I want a buttonAs a content creator I want a publish button so that I can share my work publicly

Key concept: The "so that" clause reveals the actual need - often the stated "want" isn't what's really needed.


Requirements Document Structure

SectionContent
Problem StatementWhat problem are we solving?
User StoriesWho wants what and why?
Acceptance CriteriaHow do we know it's done? (EARS)
Non-FunctionalPerformance, security, accessibility
Out of ScopeWhat we're NOT building
Success MetricsHow do we measure success?

Constitution (Governing Principles)

For complex projects, establish guiding principles before features:

ElementPurpose
Core ValuesWhat matters most (simplicity > cleverness)
Technical PrinciplesArchitecture standards
Decision FrameworkHow to make trade-offs
Quality StandardsTesting, review requirements

Key concept: Constitution prevents scope creep and ensures consistency across features.


Clarification Techniques

Before implementation, resolve ambiguities:

TechniqueWhen to Use
Ask "what if"Edge cases, error scenarios
Present optionsMultiple valid approaches
Challenge assumptions"Is this actually required?"
Define boundariesWhat's in/out of scope

Questions to Ask

  • What happens when [edge case]?
  • What does success look like?
  • What's the minimum viable version?
  • What can we defer to later?

Non-Functional Requirements

CategoryQuestions to Answer
PerformanceResponse time? Throughput? Concurrent users?
SecurityAuthentication? Authorization? Data protection?
AccessibilityWCAG level? Screen reader support?
ScalabilityExpected growth? Peak load?
ReliabilityUptime requirements? Recovery time?

Anti-Patterns

Don'tWhy
Specify implementation"Use React" locks in decisions
Assume requirementsValidate with stakeholders
Skip edge casesThey become bugs later
Mix requirements with designConflates what with how
Write vague criteria"System should be fast" is untestable

Testable vs Untestable

UntestableTestable
"Fast response""Response under 200ms"
"User-friendly""Task completable in <3 clicks"
"Secure""Passwords hashed with bcrypt"
"Scalable""Handles 10K concurrent users"

Key concept: If you can't write a test for it, it's not a requirement - it's a wish.

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

Sep 24, 2026

分类

未分类

许可证

未指定

源路径

plugins/ltk-engineering/skills/requirements-engineering

默认分支

master

最新提交

f8e8569

Tree SHA

8bcd589