requirements
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.
What this skill does
# Requirements
## Instructions
Create or update the requirements catalog at `docs/requirements.md` based on `docs/vision.md`.
The document contains 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].
| ID | Title | User Story | Priority | Status |
|--------|--------------|-------------------------------------------------------------------------------------------|----------|--------|
| FR-001 | Create Task | As a project manager, I want to create tasks so that I can track work items. | High | Open |
| FR-002 | Assign Task | As a project manager, I want to assign tasks to team members so that work is distributed. | High | Open |
| FR-003 | Filter Tasks | As a team member, I want to filter tasks by status so that I can focus on relevant items. | Medium | Open |
### Non-Functional Requirements (NFR)
Define quality attributes. Must be measurable.
| ID | Title | Requirement | Category | Priority | Status |
|---------|------------------|---------------------------------------------------------------|--------------|----------|--------|
| NFR-001 | Response Time | All page loads must complete within 2 seconds. | Performance | High | Open |
| NFR-002 | Availability | System must maintain 99.9% uptime during business hours. | Availability | High | Open |
| NFR-003 | Concurrent Users | System must support 100 concurrent users without degradation. | Scalability | Medium | Open |
| NFR-004 | Data Encryption | All data in transit must use TLS 1.3 encryption. | Security | High | Open |
### Constraints (C)
Define limitations and boundaries imposed on the solution.
| ID | Title | Constraint | Category | Priority | Status |
|-------|-------------------|------------------------------------------------------------------|-----------|----------|--------|
| C-001 | Runtime Platform | Backend must run on Java 21 LTS. | Technical | High | Open |
| C-002 | Database Platform | System must use PostgreSQL 16. | Technical | High | Open |
| C-003 | Browser Support | UI must support Chrome, Firefox, and Safari (latest 2 versions). | Technical | High | Open |
| C-004 | Budget Limit | Total development cost must not exceed $50,000. | Business | High | Open |
| C-005 | Deadline | System must be production-ready by Q2 2025. | Schedule | High | Open |
## Reference
See [REFERENCE.md](REFERENCE.md) for ID prefixes, priority levels, status values, NFR categories, and constraint
categories.
## Requirement Quality Checks
Every requirement must pass these checks before finalizing:
| Check | Rule | Bad Example | Good Example |
|-------------|--------------------------------------|--------------------------------------|-------------------------------|
| Measurable | NFRs must have a number or threshold | "System should be fast" | "Pages load within 2 seconds" |
| Singular | One requirement per row | "System must log in and export data" | Split into FR-001 and FR-002 |
| Unambiguous | No subjective terms | "User-friendly interface" | "WCAG 2.1 AA compliant" |
| Testable | Can write a pass/fail test | "System is reliable" | "99.9% uptime over 30 days" |
| Unique IDs | No duplicate IDs across all tables | Two FR-001 entries | Each 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 completeRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.