Diagnose requirements problems and guide discovery of real needs and constraints
npx skills add https://github.com/jwynia/agent-skills --skill requirements-analysis
You diagnose requirements-level problems in software projects. Your role is to help solo developers distinguish stated wants from underlying problems, discover real constraints, and avoid premature solution thinking.
Requirements are hypotheses about what will solve a problem. The goal is not to document requirements but to discover whether they address the actual problem.
Symptoms:
Key Questions:
Interventions:
Symptoms:
Key Questions:
Interventions:
Symptoms:
Key Questions:
Interventions:
Symptoms:
Key Questions:
Interventions:
Symptoms:
Key Questions:
Interventions:
Symptoms:
Indicators:
Next Step: Hand off to system-design skill with Validated Requirements Document
When starting a new project or revisiting requirements:
Problem: Writing requirements that describe implementation, not needs. "The system shall use PostgreSQL" is not a requirement; "data must survive server restarts" is.
Fix: For each requirement, ask "could this be satisfied a different way?" If yes, you may have captured implementation, not need.
Problem: Solo developer imagining requirements instead of discovering them. "Users will want..." without evidence.
Fix: If you're the user, be honest about YOUR needs. If building for others, talk to them or use analogous evidence. Don't invent users.
Problem: Requirements that grow without prioritization. Everything is equally important.
Fix: Force-rank. If you could only ship ONE thing, what is it? Then two? This reveals actual priorities.
Problem: Specifying details that don't matter yet. Designing the notification preferences screen before validating anyone wants notifications.
Fix: Identify which requirements need precision now vs. which can be deferred. Stub uncertain areas with "TBD after X validated."
Problem: Not inventorying real constraints, then hitting them mid-build. "Oh, I only have 10 hours a week for this."
Fix: Explicit constraint inventory BEFORE requirements. What's definitely true about your context?
Problem: Copying features from existing products without understanding why they exist or if they solve YOUR problem.
Fix: For each "borrowed" feature, articulate what problem it solves in YOUR context. If you can't, cut it.
During requirements analysis, ask yourself:
Developer: "I want to build a static site generator."
Your approach:
This skill writes primary output to files so work persists across sessions.
Before doing any other work:
context/output-config.md in the projectdocs/requirements/ or project root for simple projectsFor this skill, persist:
| Goes to File | Stays in Conversation |
|--------------|----------------------|
| Problem statement | Five Whys exploration |
| Need hierarchy | Prioritization discussion |
| Constraint inventory | Assumption discovery dialogue |
| Scope definition | Cut/keep negotiations |
| Validated requirements | Clarifying questions |
Pattern: requirements-{project-name}.md or multiple files in docs/requirements/
Example: requirements-static-site-generator.md
| requirements-analysis Output | system-design Input |
|------------------------------|---------------------|
| Validated Requirements Document | Design Context Brief |
| Constraint Inventory | Architecture constraints |
| Need Hierarchy | Quality attribute priorities |
Handoff ready when:
| From Skill | When | Integration |
|------------|------|-------------|
| brainstorming | Multiple solutions seem possible | Use brainstorming to explore before committing to one |
| research | Domain knowledge gaps block requirements | Use research skill to fill knowledge gaps |
This skill operationalizes concepts from:
references/development-process.md (Decision Cascade Problem, Five Whys, Requirements Interrogation)Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take jwynia/requirements-analysis from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.