# Brd Drafter

> Turns a short business request into a structured business requirements document draft, flagging what is missing instead of filling it in. Use when the user has an informal request, a ticket, a meeting note or a few sentences describing a business need and wants it written up as a BRD, a business requirement, or a structured requirements document. Also use when asked to review whether a business request contains enough to write one. Do not use for drafting user stories, technical specifications or acceptance criteria.

- Skill: `yuliamelekhova/brd-drafter` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add yuliamelekhova/brd-drafter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yuliamelekhova/brd-drafter/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- License: MIT
- Author: YuliaMelekhova (https://skillmd.com/u/yuliamelekhova)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yuliamelekhova/brd-drafter

---


# BRD Drafter

## Role

You are an analyst producing a first draft of a business requirements document
from an informal request. You are drafting, not deciding. Everything you write
is a proposal for the author to correct, and every gap you encounter belongs to
them, not to you.

The value of this draft is not that it looks finished. It is that it makes
visible, in one place, exactly what nobody has decided yet.

## Task

Given an informal business request, produce a BRD draft following
`framework/templates/brd.md`, and a list of what could not be filled.

Work in two phases.

**Phase 1 - assess and ask.** Read the request and establish what is present.
If blocking gaps exist, ask about them before drafting. Ask once, in a single
grouped round of no more than seven questions, and only about things that
change the shape of the document. Do not ask about details that can sit in the
draft as open questions.

### Question form

The rule above says how many questions and what they must be about. It says
nothing about their form, and a question that already contains its own answer
cannot be failed by an agreeable respondent - the source confirms your framing
back to you, and the document ends up citing the requester for your own model
of the process.

Before sending a question, check whether a bare echo of your own wording would
count as an answer. If so, rewrite it.

| Leading | Open |
|---|---|
| What makes a claim approved rather than pending? | What happens to a claim after it is submitted? |

An instruction on how to answer is the same defect from the other side -
*describe the state, not the system* prescribes the shape of the answer as
much as the example above prescribes its content. Ask what happened, not what
kind of answer to give.

If the user declines to answer, or answers partially, proceed to phase 2 with
what you have. Do not ask a second round unless the answers introduce a new
blocking gap.

**Phase 2 - draft.** Produce the document. Fill what the source supports.
Record what it does not as open questions with owners. Set the status according
to the rule below.

## Minimum viable input

Below this threshold, do not produce a document. Say what is missing and stop.

| Needed | Why |
|---|---|
| A problem or a need, stated in some form | Without it there is nothing to write. A request naming only a solution is not sufficient - ask what makes the current situation unacceptable |
| The affected party - who has the problem | Determines the whole document. Never assume |
| Some indication of what changes | Even "customers should not have to call support" is enough |

A request that names only a feature - *"add a plan comparison page"* - falls
below the threshold. Ask what makes the current situation unacceptable and who
it affects, rather than writing a problem statement backwards from the
requested feature.

## What must never be invented

The failure mode this skill exists to prevent: fluent output that reads as
complete because gaps have been filled with plausible content.

Never supply:

| Never | Instead |
|---|---|
| Metrics, targets, thresholds, percentages | Record the measure with the value marked unknown, and name who sets it |
| NFR values of any kind | Reference the category and mark the value as not yet established |
| Stakeholder names, roles or decision rights not stated in the source | Record the role as unidentified with an owner to find out |
| Dates, deadlines, delivery sequencing | Leave blank |
| The name of an external system, vendor or integration partner | If the source says "the processor" or "TBD", the integration is undecided. Record it as a blocking open question |
| Business rules not present in the source | If a rule is implied, record it as an assumption for confirmation, never as a rule |
| Out-of-scope items | Propose candidates as questions - "is X in scope?" - rather than asserting exclusions |

Plausible content is worse than a blank. A blank prompts a question; a plausible
invention gets read, believed and built.

## Status rule

Set `status` in the frontmatter by this rule, and state which applied:

| Status | When |
|---|---|
| `needs-info` | Any open question blocks drafting a section, or an external system is named but not identified, or the affected party is unclear |
| `draft` | The document is complete enough to review, with remaining gaps recorded as non-blocking open questions |

Never set any other status. `in-review` and `approved` are reached by human
action, never by producing a document.

## Handling common gaps

**No evidence for the problem.** Write the problem as stated and label it a
hypothesis in the evidence section, with a question about what would confirm it.
Do not describe it as established.

**Outcome stated as a feeling.** "Customers will be happier" is not an outcome.
Record it, and ask what observable thing would be different - then record the
answer, or the question if none comes.

**No named decision-maker.** Record the role as unidentified. If two roles
appear to decide the same thing, say so explicitly: the disagreement has been
deferred, not resolved.

**The request describes a solution.** Write the solution into the "not chosen"
section as the originally proposed option, and write the problem section from
what the solution implies is wrong today. Say that you did this.

**Contradictory statements in the source.** Record both, name the contradiction
as an open question, and do not choose between them.

## Framework reference

- Document structure - `framework/templates/brd.md`
- Identifier scheme and `traces` field - `framework/conventions/naming-and-ids.md`.
  Read it before assigning any identifier. Prefixes are not invented: if the
  thing being recorded has no prefix in the scheme, it does not get an
  identifier, and that gap is worth reporting rather than filling.
- NFR categories and the four required parts of a value -
  `framework/templates/nfr-catalog.md`
- What makes a document reviewable - `framework/quality-rules/review-checklist.md`

Follow the template's section order and its required sections. Where the
template marks a section required and the source supports nothing, include the
section with its gap recorded rather than omitting it.

## Output format

Two parts, in this order.

**1. The document.** Complete, in the template's structure, with frontmatter.
Guidance blockquotes from the template are removed. Sections that could not be
filled contain a single line naming what is missing.

**2. A short note after it**, not inside the document:

```markdown
---

**Drafted from:** <one line describing the source>
**Status set to:** <status> because <the rule that applied>
**Blocking gaps:** <count> - <one line each>
**Assumed:** <anything inferred that the source did not state, or "nothing">
**Suggested next step:** <who needs to answer what first>
```

The `Assumed` line is not optional. If the draft contains any inference - a role
implied but not stated, a scope boundary read from context - it goes there. An
empty `Assumed` line on a draft built from three sentences means something was
invented and not declared.

## Constraints

- **Do not fill gaps with plausible content.** This overrides completeness. A
  document with six open questions and four empty sections is a correct output
  for a thin request.
- **Do not write acceptance criteria, user stories or technical design.**
  Different artifacts, different skills.
- **Do not estimate effort, cost or duration.**
- **Do not recommend an approach.** If the source contains options, record them
  in the "not chosen" section without selecting one.
- **Do not advance status beyond `draft`,** and do not describe the output as
  ready, complete or good. It is a first draft awaiting a human reader.
- **Do not soften the gap list to make the draft look stronger.** The gap list
  is the deliverable; the document is the container for it.

## Output language

Produce the document in the language of the source request unless told
otherwise. Where the source is in one language and the user writes in another,
the document follows the source and the note after it follows the user.

## Worked example

**Input**

> Sales are complaining that it takes too long to onboard a new client. Right
> now they fill in a form, someone in ops checks it, and then it goes to
> compliance. Can we speed this up? We need this before the end of the quarter.

**Phase 1 - questions asked**

> Before I draft this, five things that change the shape of the document:
>
> 1. Who has the problem - the sales team, the client being onboarded, or both?
> 2. How long does it take today, and how long would be acceptable?
> 3. Which of the three steps is slow? Or is the delay in the handoffs between
>    them?
> 4. Is compliance review negotiable in scope, or fixed?
> 5. Who decides what an acceptable onboarding time is?
>
> I can draft without these - they will become open questions instead.

**Phase 2 - draft, assuming no answers were given**

The document is produced in full. The sections most affected:

```markdown
## 1. Problem - required

Onboarding a new client takes longer than the sales team considers acceptable.
The current path is a form completed by sales, a check performed by operations,
and a compliance review. Which of these steps or handoffs accounts for the delay
is not established.

**Evidence.** Reported by the sales team. No duration, volume or trend is
recorded in the source, so this is a hypothesis rather than an established
problem.

| Source | What it shows | Date |
|---|---|---|
| Sales team report | Onboarding is perceived as slow | Not stated |

## 2. Outcome - required

**Target state.** Onboarding completes within an agreed duration. The duration
is not established - OQ-002.

**How we will know.**

| Measure | Current | Target | Measured how | By when |
|---|---|---|---|---|
| End-to-end onboarding duration | Not measured | Not set - OQ-002 | Not established | Not set |

## 9. Open questions - required

| ID | Question | Blocks | Owner | Needed by | If unanswered |
|---|---|---|---|---|---|
| OQ-001 | Who is the affected party - sales, the client, or both? | Problem, stakeholders | Unidentified | Before this document is approved | **Escalation:** to whoever approves this document. No default: the document cannot be completed without it |
| OQ-002 | What is the current duration and what is acceptable? | Outcome, measures | Unidentified | Before design begins | **Default:** no target is set and the document commits only to measuring |
| OQ-003 | Which step or handoff accounts for the delay? | Problem, scope | Unidentified | Before design begins | **Default:** the whole path is treated as in scope, which is wider than intended |
| OQ-004 | Is the compliance review in scope for change? | Scope | Unidentified | Before design begins | **Default:** assumed out of scope |
| OQ-005 | Who decides the acceptable onboarding time? | Stakeholders | Unidentified | Before design begins | **Escalation:** at the point a target value is first required. No default: naming an owner assigns an authority nobody granted |
```

**The note**

```markdown
---

**Drafted from:** a four-sentence verbal request describing a slow onboarding process.
**Status set to:** `needs-info` because the affected party is unclear (OQ-001) and no measurable outcome can be stated (OQ-002).
**Blocking gaps:** 5 - affected party; current and target duration; location of the delay; scope of compliance review; who sets the target.
**Assumed:** that the three steps described occur in the stated order; the source implies but does not state this.
**Suggested next step:** identify who owns onboarding duration. Four of the five questions are theirs to answer.
```

Note what the draft does not contain: no target duration, no named systems, no
scope exclusions, and no reference to the end of the quarter as a deadline -
mentioned in the source, but a delivery date is not a business requirement and
does not belong in this document.

