Interactive requirements elicitation through Socratic questioning. Use when: starting a new project and need to build requirements.md from scratch; user says "I need to build X" or "help me plan X" or "let's figure out what this thing needs to do"; user has a rough idea but hasn't written requirements yet; user has existing documentation (howtos, runbooks, config files, wikis) that contain implicit requirements needing extraction; user wants to flesh out incomplete requirements.md. Triggers: "gather requirements", "what should this do", "let's figure out the requirements", "I need to automate...", "help me plan...", or any new project description without an existing requirements.md. NOT for maintaining requirements during development — use requirements-management for that.
Skill for creating, maintaining, and working with structured project requirements documents. Use when: creating a new project and need to capture requirements; starting a coding session and need to load/understand existing requirements; a requirement needs to be added, changed, or resolved; an open question needs to be raised or answered; a design decision has been made and should be recorded; reviewing requirements for completeness or consistency. Triggers include mentions of "requirements", "requirements.md", "req", or when beginning work on a project that has a requirements.md file.
Extract structured requirements from existing source code through iterative subagent review. Use when: re-implementing an existing system; migrating from one tech stack to another; inheriting a codebase with no documentation; user says "extract requirements from this code" or "what does this system actually do"; user has working software but no spec. NOT for greenfield projects — use gathering-requirements for those. NOT for maintaining requirements during development — use requirements-management for that.