✍️ Writing

RFC 2119 Requirements Rewrite from a Pasted Spec (No Invented MUST Lines)

Rewrite a pasted specification using RFC 2119 keywords only where the source already states obligation. No invented MUST, SHOULD, or MAY lines.

0.0
0Reviews
P
August 29, 2026

Prompt

Act as an RFC 2119 requirements editor who only uses a pasted specification excerpt. You rewrite normative sentences with MUST, MUST NOT, SHOULD, SHOULD NOT, MAY, and OPTIONAL only when the source already states that strength. You do not invent new obligations, new actors, or new error codes. This is not a Keep-a-Changelog, not an ADR, and not an IETF errata report.
You work only from Inputs. Do not invent stats, citations, quotes, URLs, names, IDs, or records that are not in Inputs.

Inputs:
- Pasted spec excerpt (quote-only source): [Spec]
- RFC 2119 keyword set I lock: [Keywords or MUST MUST NOT SHOULD SHOULD NOT MAY OPTIONAL]
- Section or clause IDs I allow (or UNKNOWN): [Clauses]
- Words I must not use: [Banned]
- What I must never invent (new MUST lines, error codes, actors): [Never]
- Output format: [Format]
- Language: [Lang]
- Max rewritten sentences: [Max]
- Audience I may name: [Audience]

Generate:
1. Honesty ledger: Spec nouns, Keywords, Clauses, Lang, Max, Audience. Forbidden: invented MUST, invented error codes, invented actors.
2. Source map: each source sentence to KEEP, WEAKEN-TO-SOURCE, or OTHER. OTHER stays leftover.
3. Rewrite body: numbered sentences using only Keywords that the source already supports. If the source is silent on strength, write STRENGTH UNKNOWN and do not add MUST.
4. Provenance: each rewrite line maps to a Spec sentence number or quote fragment.
5. Refuse list: new MUST lines, new status codes, new actors, changelog headings, ADR decision blocks.
6. Clause handling: if Clauses is UNKNOWN, write CLAUSE UNKNOWN. Do not invent section 4.2.
7. Never: do not promote a MAY source sentence to MUST. Do not demote a MUST source sentence to MAY unless Spec already does.
8. Compliance pass: quote Banned and Never hits. Cut them. Count sentences vs Max. Format as Format.

Constraints:
- RFC 2119 rewrite from Spec only. Not a changelog and not an ADR.
- Never invent MUST, SHOULD, or MAY lines the source does not support.
- Stay at or under Max sentences.
- No emojis.

Instructions

Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.

Examples

Example Input

Spec: 1) The token endpoint returns 200 when the access token is issued. 2) Clients send client_id in the body. 3) Refresh is described as optional for public clients. 4) The excerpt does not name a 401 body. 5) Rate limits are not mentioned.
Keywords: MUST MUST NOT SHOULD SHOULD NOT MAY OPTIONAL
Clauses: UNKNOWN (do not invent section 4.2)
Banned: shall, best practice, industry standard, always
Never: invent MUST lines, invent error codes, invent actors, invent a rate limit
Format: ledger + map + rewrite + provenance + refuse + clause-note + gaps
Lang: English
Max: 5
Audience: API implementers reviewing a pasted excerpt

Example Output

1. Ledger. Spec nouns: token endpoint, 200, access token, clients, client_id, refresh, public clients. No 401 body. No rate limit. Keywords MUST MUST NOT SHOULD SHOULD NOT MAY OPTIONAL. Clauses UNKNOWN. Lang English. Max 5. Audience: API implementers reviewing a pasted excerpt. Forbidden: invented MUST, invented error codes, invented actors, shall, best practice, industry standard, always, rate limit.

2. Map. 1 KEEP (200 on issue). 2 KEEP (client_id in body). 3 KEEP (refresh optional for public clients). 4 OTHER leftover (401 body absent). 5 OTHER leftover (rate limits absent).

3. Rewrite (4 sentences, Max 5).
R1. The token endpoint MUST return 200 when the access token is issued. (source 1 states the 200 outcome as the issued case.)
R2. Clients MUST send client_id in the body. (source 2 states this as the send rule.)
R3. Refresh MAY be omitted for public clients. (source 3 calls refresh optional.)
R4. A 401 error body is STRENGTH UNKNOWN. NOT IN INPUTS. No MUST NOT invented for 401.

4. Provenance. R1 <- Spec 1. R2 <- Spec 2. R3 <- Spec 3. R4 <- Spec 4 (gap, not a new rule).

5. Refuse. MUST return 429: refused (rate limits not mentioned). MUST include WWW-Authenticate: refused (not in Spec). Actor resource-server: refused (not named). Changelog Added/Fixed: refused (wrong job). ADR Decision: refused (wrong job).

6. Clause. CLAUSE UNKNOWN. Section 4.2 not invented.

7. Never. Source 3 stays MAY/OPTIONAL. Not promoted to MUST. No demotion of R1 or R2.

8. Compliance. Banned hits none. Sentences 4 vs Max 5. Format ledger+map+rewrite+provenance+refuse+clause-note+gaps. Gaps: clause IDs, 401 body, rate-limit text, token type name, grant type name.

Missing-data policy: if a field was blank, write NOT IN INPUTS rather than guessing. Lock any tool version named in Inputs; if unnamed, write unknown. No invented testimonials, star ratings, or press logos. If legal, clinical, insurance, HR, education-plan, or veterinary content appears, add a one-line not-advice and de-identify banner. Quote banned-word hits and cut them. End with a gaps list of five bullets the user still owes you. Character and byte caps in the job are hard; print counts when relevant. Refuse to backfill DOIs, exam dumps, PHI, PII, or compensation promises not in Inputs.

Reviews (0)

Please login to leave a review.
Loading reviews...