CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

requirements-engineer

tessl i github:martinellich/aiup-marketplace --skill requirements-engineer

Gathers, organizes, and documents software requirements into structured catalogs with functional requirements (user stories), non-functional requirements (measurable quality attributes), and constraints. Use when the user asks to "write requirements", "create a PRD", "gather requirements", "document feature specs", "write user stories", "define NFRs", "list constraints", or mentions requirements catalog, requirements analysis, product requirements document, or feature specification.

88%

Overall

SKILL.md
Review
Evals

Requirements Engineer

Instructions

Create a requirements catalog document containing functional requirements, non-functional requirements, and constraints organized as Markdown tables.

DO NOT

  • Mix requirement types in a single table
  • Skip the user story format for functional requirements
  • Use duplicate IDs across requirement types
  • Leave the Status column empty

Requirement Types

Functional Requirements (FR)

Define what the system should do. Always use the user story format:

Format: As a [role], I want [goal] so that [benefit].

IDTitleUser StoryPriorityStatus
FR-001Create TaskAs a project manager, I want to create tasks so that I can track work items.HighOpen
FR-002Assign TaskAs a project manager, I want to assign tasks to team members so that work is distributed.HighOpen
FR-003Filter TasksAs a team member, I want to filter tasks by status so that I can focus on relevant items.MediumOpen

Non-Functional Requirements (NFR)

Define quality attributes. Must be measurable.

IDTitleRequirementCategoryPriorityStatus
NFR-001Response TimeAll page loads must complete within 2 seconds.PerformanceHighOpen
NFR-002AvailabilitySystem must maintain 99.9% uptime during business hours.AvailabilityHighOpen
NFR-003Concurrent UsersSystem must support 100 concurrent users without degradation.ScalabilityMediumOpen
NFR-004Data EncryptionAll data in transit must use TLS 1.3 encryption.SecurityHighOpen

Constraints (C)

Define limitations and boundaries imposed on the solution.

IDTitleConstraintCategoryPriorityStatus
C-001Runtime PlatformBackend must run on Java 21 LTS.TechnicalHighOpen
C-002Database PlatformSystem must use PostgreSQL 16.TechnicalHighOpen
C-003Browser SupportUI must support Chrome, Firefox, and Safari (latest 2 versions).TechnicalHighOpen
C-004Budget LimitTotal development cost must not exceed $50,000.BusinessHighOpen
C-005DeadlineSystem must be production-ready by Q2 2025.ScheduleHighOpen

ID Prefixes Reference

PrefixTypeExample
FRFunctional RequirementFR-001
NFRNon-Functional RequirementNFR-001
CConstraintC-001

Priority Reference

PriorityDescription
HighMust have. Core functionality or critical quality.
MediumShould have. Important but system works without it.
LowNice to have. Can be deferred to future releases.

Status Reference

StatusDescription
OpenRequirement defined but not yet implemented.
In ProgressCurrently being implemented.
ImplementedImplementation complete, pending verification.
VerifiedTested and confirmed working.
DeferredPostponed to a future release.
RejectedRemoved from scope.

NFR Categories Reference

CategoryDescription
PerformanceSpeed, throughput, response time
ScalabilityAbility to handle growth
AvailabilityUptime, fault tolerance
SecurityAuthentication, authorization, encryption
UsabilityUser experience, accessibility
MaintainabilityCode quality, documentation, modularity
PortabilityPlatform independence, deployment flexibility

Constraint Categories Reference

CategoryDescription
TechnicalTechnology stack, platforms, integrations
BusinessBudget, resources, organizational policies
ScheduleDeadlines, milestones, time constraints
RegulatoryLegal, compliance, industry standards
OperationalDeployment, maintenance, support requirements

Requirement Quality Checks

Every requirement must pass these checks before finalizing:

CheckRuleBad ExampleGood Example
MeasurableNFRs must have a number or threshold"System should be fast""Pages load within 2 seconds"
SingularOne requirement per row"System must log in and export data"Split into FR-001 and FR-002
UnambiguousNo subjective terms"User-friendly interface""WCAG 2.1 AA compliant"
TestableCan write a pass/fail test"System is reliable""99.9% uptime over 30 days"
Unique IDsNo duplicate IDs across all tablesTwo FR-001 entriesEach ID used exactly once

Error Recovery

  • Incomplete source document: List what is missing (roles, NFR categories, constraints) and ask the user to clarify before proceeding
  • Ambiguous requirement from user: Rewrite it as a measurable requirement and ask the user to confirm the threshold
  • Conflicting requirements: Flag the conflict explicitly (e.g., "FR-003 requires real-time sync but C-002 limits to batch processing") and ask the user to resolve
  • Missing stakeholder roles: Default to generic roles (User, Admin, System) and note them for user review

Workflow

  1. Read the vision document or project brief
  2. Use TodoWrite to create tasks for each requirement type
  3. Write the document header
  4. For functional requirements:
    • Identify user roles
    • Define user stories with clear goals and benefits
    • Assign priorities based on business value
  5. For non-functional requirements:
    • Define measurable quality attributes
    • Categorize by NFR type
    • Ensure requirements are testable
  6. For constraints:
    • Document technical and business limitations
    • Categorize by constraint type
  7. Validate: run every requirement against the quality checks table above
    • No duplicate IDs across all tables
    • All Status columns filled
    • All user stories follow "As a [role], I want [goal] so that [benefit]"
    • All NFRs contain a measurable threshold
  8. Mark todos complete
Repository
github.com/martinellich/aiup-marketplace
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.