Prompt Engineering Context Requirements

Package Product Requirements — Shall Means Shall

Requirements language is normative: shall binds, should suggests, may permits. Package the spec so the distinction survives the AI's reading.

Overview

Requirements documents fail in AI hands when normative language flattens: "shall" and "should" blur into "the system does", and a binding requirement becomes a suggestion in the summary. The requirements type adds the rules that keep the hierarchy: shall/must statements are binding, should/may are weaker and stay distinguishable, and requirement identifiers (R1, R2…) become the citation unit. Paired with documentation mode's exact-quoting discipline, the package turns a spec into something the model reads like an engineer. This setup loads an export-feature spec with acceptance criteria.

How to use this resource

  1. Keep the language normative

    Shall binds, should suggests — the type rules state it so the reading preserves it.

  2. Cite by identifier

    R1, R2 become the unit of reference; "the spec says" becomes "R3 requires".

  3. Check designs against it

    The task frames the package: evaluate what I describe against these requirements.

Why This Works

  • Preserved normativity keeps binding requirements binding
  • Identifier citations make compliance claims checkable
  • Exact-quote discipline stops paraphrase from weakening requirements

Best for

  • PRDs and formal requirement documents
  • Design reviews against written requirements
  • Compliance-adjacent specification work

Not for

  • Writing the requirements document itself — that's the Markdown Output Builder's PRD mode
  • Extracting requirements into structured fields — the Extraction Prompt Generator

Use cases

  • Checking designs against a requirements spec
  • Keeping binding and optional requirements distinct
  • Citing requirements by their R-numbers

FAQ

How does this packaging keep the AI from treating a shall requirement as optional?

An explicit ANALYSIS RULE: "Treat 'shall' and 'must' statements as binding requirements; 'should' and 'may' are weaker — keep the distinction." So R2's rejected-partial-exports stays binding while R4's email notification ("should") stays weaker. Long Input Formatter writes that rule into the package; the assistant you run it in does the reading, so this preserves the hierarchy, it does not enforce it.

Why are the requirements packaged with R-numbers and delimiters instead of pasted plain?

So claims stay checkable. Requirement identifiers R1 to R5 are declared the citation unit, and the source travels verbatim between <<<SOURCE START>>> and <<<SOURCE END>>> with [§N — title] section markers. The GROUNDING rule ties every behavioral claim to the section that states it, turning "the spec says" into "R3 requires" so you can audit each answer against the source.

Is this for writing a requirements spec or reading one I already have?

Reading an existing one; the TASK is "Check the design I will describe against these requirements," so the package frames the model as a compliance reader over your R1 to R5 spec. Writing the requirements document itself points to Markdown Output Builder's PRD mode, and pulling requirements into structured fields is the Extraction Prompt Generator's job.

More resources from Long Input Formatter

Resources that pair well

Related tools

Tip: Save time by exploring related resources and tools that integrate with this resource.