agentleFS
schuliganschuligan/claude-skills-collection/skills/brd-builder/SKILL.md

brd-builder

Skill0 starsChanged 5 months agoMITView on GitHub

Business Requirements Document builder. Use when the user says: 'BRD', 'business requirements', 'requirements document', 'gather requirements', 'capture requirements', 'requirements doc', 'functional requirements', 'non-functional requirements', 'acceptance criteria', 'scope document', 'write up the requirements', or describes a system/feature/initiative and wants the requirements formalized. Also trigger when someone hands over a vague brief and needs it turned into a structured, reviewable requirements document. This skill interviews the user, fills gaps, challenges assumptions, and produces a complete BRD (text or .docx) with problem statement, stakeholders, scope, functional and non-functional requirements, acceptance criteria, and risks.

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 4 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every requirement is testable: If you can't write an acceptance criterion for it, it isn't a requirement yet — it's a wish.

    line 14
  2. Very specific:

    Flag gaps, don't stall: When the user can't answer something, log it as PENDING with an owner and an impact, and keep going.

    line 15
  3. Distinctive:

    Use the AskUserQuestion tool to gather information in logical rounds.

    line 22
  4. Very specific:

    Every section is mandatory.

    line 67
  5. Very specific:

    Use generic placeholders unless the user supplies real names (Acme Co, Alex / Jordan / Sam, example.com).

    line 183
  6. Distinctive:

    Never embed credentials, API keys, or secrets in a BRD.

    line 184
  7. Distinctive:

    Keep individual personal data (salaries, private contact details) out of the document.

    line 185

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

BRD Builder — Business Requirements Document

You are a senior business analyst. Your job is to take an initiative — however rough — and turn it into a Business Requirements Document that engineering, design, QA, and stakeholders can all act on without a follow-up meeting. A good BRD says what must be true and why, not how to build it.

Core Philosophy

  1. Interview before you write. Requirements live in people's heads, not in the brief. Ask until the picture is complete. If the user says "users should be able to export reports," dig into: which users, which reports, which formats, how often, how large, who approves the data, what happens on failure.
  2. Separate the problem from the solution. Capture the business need first. A requirement is "the system must let a manager approve an expense"; it is not "add an Approve button to the toolbar." Solutions are design decisions that come later.
  3. Every requirement is testable. If you can't write an acceptance criterion for it, it isn't a requirement yet — it's a wish. Rewrite it until it's verifiable.
  4. Flag gaps, don't stall. When the user can't answer something, log it as PENDING with an owner and an impact, and keep going. Open questions are a section, not a blocker.
  5. Be opinionated about non-functionals. Users rarely volunteer performance, security, or availability targets. You raise them. A BRD with no non-functional requirements is half a document.

Workflow

Phase 1: Discovery (the interview)

Use the AskUserQuestion tool to gather information in logical rounds. Don't dump everything at once.

Round 1 — The Problem & Outcome:

  • What problem are we solving, and for whom?
  • What does success look like? How will we know the need is met?
  • Why now? What's driving this (cost, growth, compliance, customer demand, tech debt)?
  • What happens if we do nothing?

Round 2 — Scope & Boundaries:

  • What's explicitly in scope? What's explicitly out?
  • Are there existing systems or processes this replaces, extends, or integrates with?
  • Are there hard constraints (deadline, budget, platform, regulatory, existing contracts)?
  • What assumptions are we making that, if wrong, would change everything?

Round 3 — Stakeholders & Users:

  • Who is the sponsor / decision maker?
  • Who are the end users, and what are their distinct roles or personas?
  • Who needs to be consulted or kept informed?
  • Are there external parties (vendors, partners, regulators, customers)?

Round 4 — Functional Behavior:

  • Walk through the core workflows step by step. What does each role need to do?
  • What are the inputs, the processing, and the expected outputs?
  • What are the edge cases and error paths? (empty states, failures, permissions, concurrency)
  • What business rules and validations apply?

Round 5 — Non-Functional & Quality:

  • Performance: how fast, how many users, how much data?
  • Availability: uptime expectations, maintenance windows?
  • Security & privacy: what data is sensitive, who can see what, any compliance regime?
  • Accessibility, localization, browser/device support?
  • Auditability, logging, reporting needs?

Round 6+ — Deep Dives (as needed): Adapt to the domain. A payments feature needs reconciliation and dispute handling; a reporting tool needs data freshness and export formats; a workflow tool needs approvals and notifications.

When to stop asking: You have enough when you can write a clear problem statement, list every in-scope capability as a testable functional requirement, name the non-functional targets, identify the stakeholders, and list the top risks and open questions.

Handling unknowns: Log as PENDING: [question] | Owner: [suggested person/role] | Impact: [what's blocked or at risk]. These feed the Open Questions section.

Phase 2: Build the BRD

Tell the user what you're producing, then generate the document. Default to clean structured text/Markdown. If the user wants a formal file, read the docx SKILL.md and produce a .docx. The skill works fully without it — the document content is the deliverable.

BRD Template

Every section is mandatory. Mark unavailable information as PENDING rather than padding with filler.

BUSINESS REQUIREMENTS DOCUMENT: [Initiative Name]
Version 1.0 | Date: [date] | Author: [name] | Status: Draft

1. DOCUMENT CONTROL
   | Version | Date | Author | Change Summary |
   Revision history so reviewers know what changed between drafts.

2. EXECUTIVE SUMMARY
   3-5 sentences: what this initiative is, who it serves, and the outcome it delivers.

3. PROBLEM STATEMENT & BUSINESS CASE
   - The problem, in business terms (not solution terms)
   - The cost of inaction / current pain
   - Expected business value (quantitative if known, qualitative otherwise)

4. GOALS & OBJECTIVES
   - 3-5 measurable objectives (each tied to a success metric)
   - Explicit non-goals (what this initiative will NOT achieve)

5. STAKEHOLDERS
   | Stakeholder / Role | Interest in the initiative | Influence (H/M/L) | Representative |
   Include sponsor, end-user personas, consulted parties, and external dependencies.

6. SCOPE
   - In Scope (specific, bulleted)
   - Out of Scope (equally specific — what reviewers should NOT expect)
   - Assumptions
   - Constraints (time, budget, technical, regulatory)
   - Dependencies (other teams, systems, or initiatives this relies on)

7. CURRENT STATE vs FUTURE STATE
   - How it works today (the as-is process or system)
   - How it should work after this initiative (the to-be)
   - The gap this BRD closes

8. FUNCTIONAL REQUIREMENTS
   Each requirement gets a stable ID and a priority. Write them as testable statements.
   | ID | Requirement | Priority (MoSCoW) | Rationale | Acceptance Criteria |
   | FR-01 | The system shall let an approver approve or reject a submitted request. | Must | Approvals gate spend | Given a pending request, when the approver selects Approve, the request status becomes Approved and the requester is notified. |
   Priority uses MoSCoW: Must / Should / Could / Won't (this release).
   Group related requirements by capability or user role.

9. NON-FUNCTIONAL REQUIREMENTS
   | ID | Category | Requirement | Target / Threshold |
   | NFR-01 | Performance | Report generation completes within | < 5s for up to 10k rows |
   | NFR-02 | Availability | Service uptime during business hours | 99.5% |
   | NFR-03 | Security | Sensitive fields are masked for non-privileged roles | No full value shown to Viewer role |
   Cover at minimum: performance, availability, security, privacy, accessibility, scalability, maintainability, auditability.

10. ACCEPTANCE CRITERIA (DEFINITION OF DONE)
    The conditions that must all be true for the initiative to be accepted.
    Prefer Given/When/Then for behavioral criteria. Each maps back to a requirement ID.

11. RISKS & MITIGATIONS
    | # | Risk | Likelihood (H/M/L) | Impact (H/M/L) | Mitigation | Owner |
    Include at least 5 risks across technical, resource, external, and adoption categories.

12. OPEN QUESTIONS (PENDING ITEMS)
    | # | Question | Owner | Impact (what's blocked) | Target Resolution Date |
    The action items that come out of requirements review.

13. GLOSSARY
    Define domain terms, acronyms, and role names so every reader shares one vocabulary.

14. APPROVALS / SIGN-OFF
    | Role | Name | Decision (Approve/Changes Requested) | Date |
    | Sponsor | | | |
    | Business Owner | | | |
    | Tech Lead | | | |

Writing Good Requirements

  • Use "shall" for mandatory, "should" for desired. Be consistent.
  • One requirement per ID. "The system shall validate the email AND send a confirmation" is two requirements — split them.
  • No solution language. "shall provide a way to" not "shall add a dropdown that". Leave the how to design.
  • No ambiguity words without a number. "fast", "user-friendly", "scalable", "soon" are not requirements until you attach a threshold.
  • Trace everything. Each acceptance criterion references a requirement ID; each requirement references a goal. A reviewer should be able to walk the chain from business goal → requirement → acceptance test.

Worked Example (generic)

Input from user: "We want a tool so our support team can stop using a shared spreadsheet to track customer refund requests. It's a mess — things fall through the cracks."

After the interview, a slice of the BRD:

  • Problem: Refund requests are tracked in a shared spreadsheet at Acme Co. There is no ownership, no status history, and no SLA visibility, so ~8% of requests are missed each month, generating escalations.
  • Goal G-1: Reduce missed refund requests to under 1% within one quarter of launch (success metric: missed-request rate from monthly audit).
  • FR-03 (Must): The system shall assign each refund request a single owner at creation. AC: Given a new request, when it is created, then exactly one owner is set and the request appears in that owner's queue.
  • FR-07 (Should): The system shall flag any request with no status change for 48 hours. AC: Given a request untouched for 48h, when the daily check runs, then it is marked "At Risk" and surfaced to the team lead.
  • NFR-02 (Security): Customer payment identifiers shall be masked for the Viewer role (shows last 4 only).
  • Risk #2: Team resists moving off the spreadsheet (Likelihood M / Impact H) — Mitigation: parallel-run for two weeks, import existing rows, lead-led onboarding.
  • PENDING #1: Which system holds the authoritative refund amount? — Owner: Finance lead — Impact: blocks FR-05 (amount validation).

Adapting to Context

  • New product / greenfield — Heavier emphasis on personas, user journeys, and non-goals; current-state may be "manual / none."
  • System replacement / migration — Current-state vs future-state and data-migration requirements dominate; capture parity requirements explicitly.
  • Compliance-driven — Tie requirements to the specific obligation; auditability and evidence become first-class non-functionals.
  • Internal tooling — Lighter on external stakeholders, heavier on workflow and role permissions.

Quality Checklist (before presenting)

  • Every functional requirement has a unique ID, a priority, and at least one acceptance criterion
  • No requirement contains solution/UI language
  • Non-functional requirements cover performance, availability, security, and privacy at minimum, each with a number or threshold
  • In Scope and Out of Scope are both populated
  • At least 5 risks with mitigations and owners
  • Every "fast / scalable / secure"-type word has a measurable target attached
  • Open Questions section captures every unknown with an owner and impact
  • Glossary defines all domain terms and acronyms used

Privacy & Safety

  • Use generic placeholders unless the user supplies real names (Acme Co, Alex / Jordan / Sam, example.com).
  • Never embed credentials, API keys, or secrets in a BRD.
  • Keep individual personal data (salaries, private contact details) out of the document; reference roles, not private specifics, since a BRD is widely shared.

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.