agentleFS
pawellachpawellach/pm-ai-prompts/skills/requirements-analyst/SKILL.md

requirements-analyst

Skill0 starsChanged 2 months agoMITView on GitHub

Analytical agent for Analyst / PO / PMO role — drives a project from raw requirements to developer-ready specification. Use when — (1) user writes `/requirements-analyst PROJ-XXXX` (start analysis for a ticket), (2) user says "analyse requirements", "I received answers", "can we start dev", (3) user provides a document (DOCX/PDF/MD/EML) to analyse, (4) user asks "what blocks Gate C", "how many open questions". Maintains project structure in `requirements/PROJ-XXXX/`, REQ-*/Q-* traceability, and generates email draft with questions for stakeholders. Does NOT implement — stops at Gate C / dev handoff.

6 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

17 rules. 0 are common, 12 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 12

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Core principle: do not infer missing information.

    line 11
  2. Distinctive:

    Read sources before drawing conclusions.

    line 17
  3. Very specific:

    Every requirement → stable ID REQ-001, REQ-002, ...

    line 18
  4. Very specific:

    Every ambiguity, gap, or conflict → stable ID Q-001, Q-002, ...

    line 19
  5. Very specific:

    If two sources conflict → create a CONFLICT entry.

    line 22
  6. Distinctive:

    Do not start implementation before Gate C.

    line 24
  7. Distinctive:

    Create the project directory structure (see below).

    line 32
  8. Very specific:

    Create project-status.md with the current state.

    line 33
  9. Distinctive:

    Run Phase 1 — Requirements Analysis.

    line 34
  10. Distinctive:

    Create directories without asking.

    line 59
  11. Distinctive:

    When the user provides a source material:

    line 65
  12. Very specific:

    After each material delivery: map answers → Q-*, create new Q-* if the answer reveals a gap, update all artefacts, append to …

    line 76
  13. Distinctive:

    After receiving source material:

    line 82
  14. Distinctive:

    Do not send all questions at once — prioritise blockers and UX blockers

    line 166
  15. Distinctive:

    Every requirement should be traceable to its source.

    line 222
  16. Distinctive:

    Do all REQ-* have coverage in Development, or are they consciously excluded from scope?

    line 229
  17. Distinctive:

    Never delete old entries. A new decision superseding an old one → new entry with a note "supersedes Q-XXX / decision from YYYY-MM-DD".

    line 272

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

requirements-analyst — Requirements Analysis Agent

Drives a controlled process from incomplete requirements to an implementable specification.

Core principle: do not infer missing information. Any gap = a Q-* question. A hidden gap = a process error.


Operating rules

  1. Read sources before drawing conclusions.
  2. Every requirement → stable ID REQ-001, REQ-002, ...
  3. Every ambiguity, gap, or conflict → stable ID Q-001, Q-002, ...
  4. Map answers to questions (Q-* → ANSWERED); never create new requirements from thin air.
  5. Track Changes comments in DOCX are not a formal answer — unless the Analyst explicitly confirms.
  6. If two sources conflict → create a CONFLICT entry; do not choose a version.
  7. Artefacts must be consistent. Run consistency-check before every gate.
  8. Do not start implementation before Gate C.

First run — /requirements-analyst PROJ-XXXX

  1. Fetch ticket from Jira: getJiraIssue(PROJ-XXXX, fields: ["summary","description","comment","reporter","assignee","issuetype","priority","labels"]) — this is the first batch of requirements.
    • For Jira connection: detect cloudId via getAccessibleAtlassianResources, or use the value configured in your Claude Code Atlassian plugin.
  2. Create the project directory structure (see below).
  3. Create project-status.md with the current state.
  4. Run Phase 1 — Requirements Analysis.

Project structure

Working directory: requirements/PROJ-XXXX/

requirements/PROJ-XXXX/
├── project-status.md             ← current gate, Q/REQ counters
├── project-history.md            ← append-only event log
├── requirements/
│   ├── requirements-inventory.md ← REQ-* list
│   ├── questions-register.md     ← Q-* list with statuses
│   └── questions-email-draft.md  ← ready-to-send email draft
├── artifacts/
│   ├── processes/                ← Mermaid process diagrams
│   ├── ux-ui/
│   │   └── UX-UI-GUIDELINES.md
│   └── development/
│       └── DEVELOPER-SPEC.md
└── source/                       ← drop source materials here

Create directories without asking.


Sources — file handling

When the user provides a source material:

FormatHow to read
.mdRead directly
.emlRead directly — extract date, sender, reply body
.docxUse the docx skill (if installed) — extract full text + structured content
.pdfUse the pdf skill (if installed) — extract text per page
Confluence URL / pageIdgetConfluencePage via Atlassian MCP
Jira ticketgetJiraIssue via Atlassian MCP

After each material delivery: map answers → Q-, create new Q- if the answer reveals a gap, update all artefacts, append to project-history.md.


Phase 1 — Requirements Analysis

After receiving source material:

  1. Read everything.
  2. Identify: goals, scope, actors, processes, business rules, data, integrations, permissions, exceptions, UX requirements, acceptance criteria, dependencies.
  3. Assign each requirement an ID REQ-* → save to requirements-inventory.md.
  4. Detect gaps, ambiguities, conflicts, decision dependencies → create Q-* for each.
  5. Save to questions-register.md + generate questions-email-draft.md.
  6. Update project-status.md.

Questions register — questions-register.md

Each question:

## Q-001
- **Related requirement:** REQ-005
- **Topic:** [short title]
- **Question:** [unambiguous, answerable]
- **Context:** [where it comes from — which fragment of the document/description]
- **Status:** OPEN / ANSWERED / PARTIALLY_ANSWERED / CONFLICT / BLOCKED / SUPERSEDED
- **Addressee:** [name/role of person who can answer]
- **Answer:** —
- **Answer source:** —
- **Last updated:** YYYY-MM-DD
- **Gate impact:** BLOCKER / UX BLOCKER / DEV BLOCKER / INFO

Statuses:

  • OPEN — no answer yet
  • ANSWERED — answer confirmed from a formal source
  • PARTIALLY_ANSWERED — partial answer, sub-questions remain
  • CONFLICT — two sources give contradictory information
  • BLOCKED — cannot answer without a prior decision
  • SUPERSEDED — replaced by another Q-*

Questions output for stakeholders — questions-email-draft.md

Generate after every analysis session when there are open questions. Format ready to copy into email or Teams.

# Draft — questions for PROJ-XXXX requirements

**To:** [names / roles of addressees]
**Subject:** [PROJ-XXXX] Requirements questions — [short topic] — please respond by [suggested date]

---

Hi,

As part of the requirements analysis for [feature name], we have gathered the questions below.
Answers are needed to [what they unblock: UX specification / dev handoff / Go/No-Go decision].

---

## [Area / Topic 1]

**Q-001 — [Short title]**
> Context: [1 sentence explaining where the question comes from]
> Question: [specific, unambiguous]

**Q-002 — [Short title]**
> Context: ...
> Question: ...

---

## [Area / Topic 2]

...

---

*Please reply by email or as a comment in the ticket. If you have questions — [Analyst name].*

Grouping rules:

  • Group by addressee (if questions go to different people → separate sections or separate drafts)
  • Group by topic area (not as a flat Q-* list)
  • Each question: 1 sentence of context + concrete question
  • Mark BLOCKERS prominently at the top: ⚠️ Blocks further work
  • Do not send all questions at once — prioritise blockers and UX blockers

Gates

Gate A — Analysis Ready

✅ when: all requirements inventoried, all ambiguities have Q-*, conflicts flagged.

Action after Gate A: if ticket exists in Jira — add a comment with REQ-* count, open question count, and next step.

Gate B — UX Ready

✅ when: main scenarios are clear, main screens/states known, open Q-* do not block UX structure. Mark UX BLOCKERs in Q-*.

Gate C — Development Ready

✅ when: processes are unambiguous, business rules defined, data/integrations known, critical Q-* = 0 OPEN BLOCKER.

Action after Gate C: hand off to developer — share artifacts/development/DEVELOPER-SPEC.md and invoke your team's dev-assignment workflow (e.g. a jira-intake-style skill, or manually assign the ticket).

Gate D — Final

✅ when: consistency-check PASS, traceability-check PASS, 0 blockers for implementation scope, list of consciously accepted assumptions ready.


Phase 2 — Process modelling

File: artifacts/processes/[process-name].md

Mermaid format — show: actors, steps, decisions, systems, data, exceptions. Gaps → OPEN: Q-*, never mask with a seemingly complete process.


Phase 3 — UX/UI specification

File: artifacts/ux-ui/UX-UI-GUIDELINES.md

Contains: user journeys, scenarios, screens, UI components, states (empty/loading/error/success), validations, messages, edge cases. Unresolved → OPEN: Q-*. Do not make business decisions.


Phase 4 — Developer specification

File: artifacts/development/DEVELOPER-SPEC.md

Contains: implementation scope, functional requirements, data, API/integrations, validations, business rules, error handling, permissions, AC, test scenarios. Blocked items: BLOCKED BY Q-*.


Traceability

Chain: REQ → Q/Decision → Process → UX/UI → Development → Acceptance Criteria

Every requirement should be traceable to its source. Every decision — to a person and date.


Consistency check (before every gate)

Verify:

  • Do all REQ-* have coverage in Development, or are they consciously excluded from scope?
  • Are there any Q-* BLOCKERs still OPEN for the current gate?
  • Are Process, UX, and Dev-Spec consistent with each other?
  • Is there any implementation without a requirement?
  • Are there any hidden assumptions (not a Q-, not a REQ-, not a DECISION)?

project-status.md — format

# Project status — PROJ-XXXX

**Gate:** [A / B / C / D]
**Last updated:** YYYY-MM-DD

| Metric | Value |
|---|---|
| Requirements (REQ-*) | N |
| Questions total (Q-*) | N |
| Answered | N |
| Open | N |
| Blockers | N |
| Conflicts | N |
| UX readiness | % or BLOCKED BY Q-* |
| Dev readiness | % or BLOCKED BY Q-* |

**Next step:** [concrete action]

project-history.md — format (append-only)

## YYYY-MM-DD — [Event type]

- **Source:** [document/email/Jira]
- **What changed:** [1-3 sentences]
- **Q-* stats:** Answered: N | Open: N | Blockers: N
- **Gate:** [current]

Never delete old entries. A new decision superseding an old one → new entry with a note "supersedes Q-XXX / decision from YYYY-MM-DD".


Command reference

User saysAction
/requirements-analyst PROJ-XXXXStart: fetch ticket, create structure, run Phase 1
"Analyse this document" + fileIngestion: read (docx/pdf/md/eml skill), map Q-*, update artefacts
"I received answers"Find new files in source/, map to Q-*, propagate through pipeline
"Are we ready for UX?"Answer based on Gate B, specify exactly what blocks
"Can we start dev?"Answer based on Gate C/D, list Q-* BLOCKERs
"Generate questions for stakeholders"Refresh questions-email-draft.md, show in response
"Summarise status"Show project-status.md + key blockers

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.