| description | Production system for WG21 committee papers - a seven-step writing pipeline, a reusable Review Process (mechanical scans, citation integrity, fact check, adversarial evaluation, resolution), and a reusable Abstract Generator that derives an abstract from a finished paper and reviews it against that paper in a fresh subagent |
|---|
A production system for WG21 committee papers. It writes papers through the seven-step pipeline and reviews papers through the Review Process. The binding policy: write for a delegate who reads in passes and stops when a pass fails - show, then assert, and state the finding on the surface and each section's own conclusion in its place.
The rules in this document are staged audit criteria, not simultaneous constraints. Each pipeline step names the rules that bind while writing it; every other rule applies at review time, one rule at a time. This is why the document's size does not collide with the constraint budget it observes.
- To produce a whole paper, or to rewrite one, run Steps 0-6 in order.
- To rewrite: treat the existing draft as input, not as text to preserve. No sentence survives by default; every section re-earns its place under these rules.
- To review a paper without writing one, run the Review Process alone.
- To generate only an abstract for a finished paper, run the Abstract Generator alone.
- For a targeted edit, apply the write-time rules of the step that owns the edited part, then run Review Process step 1 (R1 and R2) on the changed text and fix what it flags.
- Settle front-matter
intentbefore writing anything:ask(the paper requests something of the committee) orinfo(the paper places findings in the record and requests nothing). The author picks. If the author is unavailable, default toinfoand flag the choice as provisional. - Follow the repository's style rules on formatting, front matter, and citation format; they override this document.
- Route working files by intent word: collected source material is research, pipeline intermediates are scratch, findings reports are output.
- Never increment the paper's revision number without asking the author. Default to no. When the front-matter date is more than 2 months old, ask the author whether to increment.
Three rules bind at all times. Every other rule in this document is a plain imperative.
- NEVER quote, cite, or traceably paraphrase private committee records: reflector posts, committee wiki pages, private meeting minutes. ISO rules prohibit it. When restricted material informs the work, apply the translation map (Step 0, block 6) or drop the material with no residue: no hints, no attributable paraphrase.
- NEVER fabricate or embellish evidence. Use a quotation only after verifying it against its source. When evidence cannot be verified, mark the item UNVERIFIABLE and state the gap in the paper in 1 sentence. When a rule cannot be satisfied truthfully - no implementation exists, no poll history is on record - state the gap in 1 sentence and continue.
- ALWAYS state the conclusion. State the finding in full in the abstract (W2) and the conclusion (W5), and compress it into the headings (W4); these are the surface a one-pass delegate reads. Each body section states its own local conclusion immediately after its evidence (W10), not the finding (W48). Reason: a one-pass delegate reaches an ending only on the surface, so the finding lives there; the reading passes are cumulative, so a delegate reading the body already holds the finding and a restatement reads as padding.
The delegate has two hundred papers in the mailing and reads yours in up to three passes, stopping the moment a pass fails.
- Surface pass, 5 minutes: title, abstract, headings, conclusion. Most delegates stop here, so the surface decides whether anything else is read.
- Argument pass, up to 1 hour: sections, figures, tables, code, topic sentences.
- Audit pass, hostile: the delegate challenges every assumption and hunts for what the paper omits.
A sideways reader also exists: they arrive from a keyword search or a citation trail and decide from the related-work material whether to read the paper. Serve them with searchable keywords in the title (W1) and inline reference summaries (W29).
Terms used throughout: the "contribution" is what the paper provides, not what it discusses. The "finding" is the paper's single global thesis, stated in full only in the abstract and the conclusion and compressed into the headings. A "section conclusion" is the specific local claim one section establishes, not a restatement of the finding. The "ask" is the specific request an ask-paper makes. The "surface" is title, abstract, headings, and conclusion together. The "spine" is the per-section outline written at Step 0. "Write-time" marks a rule that binds while drafting a step; every W-rule, write-time or not, is audited by the Review Process.
Goal: a plan document that settles every decision writing would otherwise improvise.
Write the plan as scratch, with these 10 blocks:
- Intent:
askorinfo. The author picks. - Thesis: the paper's finding or request in 1 sentence. If the sentence needs "and", split the work into two papers.
- Audience: the front-matter
audiencevalue. It drives W19. - Document number: the assigned number, or a placeholder flagged for the author.
- Structure pattern: one of evidence chain, comparison, chronology, findings report, problem/evidence/remedy - or a named sequence of two of these.
- Sourcing constraints: list the admissible sources. When restricted material informs the work, write a translation map assigning each restricted claim exactly one treatment: (a) cite the subject's own published text, (b) make a public-record absence claim with a re-runnable method, (c) restate the mechanism in general terms as the paper's own analysis. A claim that fits none of the three is dropped with no residue (Invariant 1).
- Conclusion targets: the conclusion paragraph drafted verbatim, plus 1 local conclusion sentence per planned section, each stating that section's own takeaway rather than the paper's finding (W48). Step 4 refines these against the finished body; they exist now so every section is written toward a stated destination.
- Spine: the per-section outline, each section with the sources it draws on. Default last sections: disclosure (W35), acknowledgments (W36), and references.
- Sources to verify: every paper number, title, quotation, tally, and deployment claim the spine relies on.
- Override registry: every rule of this document the author overrides, with the rule, the reason, and the author's name. The Review Process treats registered overrides as resolved findings.
Stop when every block is filled and the author has approved intent and thesis, or the flags for unavailable decisions are recorded.
Goal: verified evidence for every claim in the spine, persisted as research.
- Launch one subagent per research question; 3-6 questions is the normal budget. Write each task self-contained: objective, exact items sought, output format, sources to use, and the required behavior when an item cannot be found - report the absence explicitly, because absences are findings.
- Extract quotations verbatim with section and page locations.
- Record absence findings in the form "the word X does not occur in Y".
- Verify every source: exact paper number, revision, registered title, full author names, year, canonical URL, public availability. When a paper's own front matter and an index disagree, trust the front matter.
- Verify deployment and implementation claims against primary documentation only: vendor documentation, release notes, official repositories.
- Give every absence claim a disclosed method: indexes enumerated, search terms, fetch date, scope caveats, known recall gaps. Write the method so a delegate can re-run it.
- Persist findings as research files with frontmatter: produced date, keyword-rich title, source.
- Organize evidence by claim. A claim with no verified source does not enter the paper (Invariant 2).
Stop when every spine section's sources are verified or marked UNVERIFIABLE with a reason.
Goal: the paper file exists with its structure fixed.
Create the paper file with: front matter (title placeholder until Step 4, document number from Step 0, date, intent, audience, reply-to), an abstract placeholder, a revision-history section, and one placeholder section per spine entry.
Stop when every spine section has a placeholder and the file conforms to the repository's front-matter format.
Goal: every body section written, each carrying its evidence and its stated conclusion.
Write sections in spine order, from the Step 1 research files only. Six write-time rules bind while drafting; hold every other rule for the Review Process.
- W7 - open every section with 1-3 sentences stating what it covers and why.
- W8 - begin every paragraph with a topic sentence that advances the argument.
- W9 - place evidence before every value word it supports.
- W10 - end every section with its own local conclusion, not the paper's finding, stated immediately after the evidence, unbolded.
- W11 - quote verbatim, with location, from verified research only.
- W12 - caption every table and figure so it stands alone; add a code-block provenance note only where it is not already clear.
Stop when every spine section is written and ends with its stated conclusion.
Goal: a surface that carries the whole paper for the delegate who reads nothing else.
Write the surface last, against the finished body (W6), in this order:
- Write the Conclusion (W5). Restate the contribution as the body's evidence refined it, in words that do not repeat the abstract. Ask-papers: state what C++ gains if the ask is granted and what it keeps paying if not, and restate the ask so a conclusion-only delegate can vote. Info papers: state the finding and what the record shows; there is no ask to restate. Both: name who builds on the work next, and widen with named consequences, never slogans.
- Write the Introduction (W3). Name the related work. Enumerate the contributions as a numbered list. State the paper's assumptions here, where the surface pass can see them.
- Headings (W4). Rewrite each heading to state its section's point. Read the heading sequence alone; it carries the argument or it gets rewritten again.
- Title (W1). List the finding-words. Generate 3-5 candidates across two families: rhythmic (cadence, parallel structure) and informative (8-12 words that tell an index-scanner what the paper contains). Require established searchable keywords in the title or subtitle. Test every candidate five ways: a colleague would repeat it at lunch; every word parses without decoding; it has cadence read aloud; it touches a concern the committee already holds; an index-scanner knows what the paper contains. Present the candidates; the author picks. If the author is unavailable, use the informative candidate and flag it provisional.
- Abstract, generate (W2). Generate it with the Abstract Generator; do not write it by hand. Launch one subagent and give it two paths: the paper's file path and the path to this tool file (papersmith.md). Instruct it to grep this tool file for the
<abstract-process>tag, read the enclosed block, read the paper at its path, and follow the block. It returns only the generated abstract; hold it for item 6 and do not write it into the placeholder yet. Reason: the generator derives the abstract from the finished paper, so it runs after every other surface element exists. - Abstract, review (W2), last. Launch a second, separate subagent and give it three things: the paper's file path, the path to this tool file (papersmith.md), and the generated abstract text from item 5. Instruct it to grep this tool file for the
<abstract-review>tag, read the enclosed block, and follow it. Fresh context is the point: the generator never reviews its own output, because it shares the output's blind spots (R4). It returns only the edited abstract; write that into the abstract placeholder.
Stop when the surface is written, the title is chosen or flagged provisional, and the abstract review subagent has returned.
Goal: prose that reads as human-written, with the generation signatures removed.
Run the prose passes over the finished surface and body. <prose-rules> holds P1-P5 as sequential passes; run them one at a time, in order, sweeping the whole paper once per pass, because structural edits must land before wording edits. After every edit, re-read the edited paragraph and one paragraph on each side, then repair the joint before the next edit. Treat quoted text and citations as untouchable (Invariant 2): change no character inside quotation marks or block quotes, and preserve every citation, link, and reference marker; when a rule collides with a quote, rewrite around it.
- P1 - split any paragraph over 300 words and any low-quote sentence over 70.
- P2 - cut the sentences that narrate structure instead of doing the work.
- P3 - thin each machine idiom to its per-document rate.
- P4 - flatten every metaphor family but the domain's own.
- P5 - rewrite non-text abstractions that act with volition.
Run P6 to verify the passes and fix what it flags. Stop when the P7 checklist passes.
Run the Review Process below. The main agent drives every step; no subagent launches another subagent.
Run this process on any paper: as pipeline Step 6, or alone on request. The process plus the four containers below - <review-rules>, <writing-rules>, <prose-rules>, <loaded-words> - is the complete review kit; a review needs nothing else from this document. The main agent launches each subagent at depth 1 and reads its findings; no subagent launches another subagent. Cross-reference its internal steps as "Review Process step N".
- Launch one subagent for R1 and R2. Give it the paper and the four review containers. It runs every mechanical scan in R1 and every citation check in R2, records each hit as a finding, and returns the findings. Wait for it.
- Launch one subagent for R3 and R4. Give it the paper, the citation list, and the four review containers. It runs the R3 fact-check protocol and the R4 adversarial-evaluation protocol, and returns the findings. Fresh context is the point: the writer never reviews its own draft, because the writer shares the draft's blind spots. Wait for it.
- Consolidate. Read the findings from both subagents. Assemble one report in the R7 format, verdict first.
- Resolution. Give each finding an R8 disposition. After the final edit batch, re-run step 1 once, then stop.
R0. Audit the paper against every rule in <writing-rules> and <prose-rules>, one rule at a time, honoring each rule's ask/info tag and the override registry. Pass every candidate finding through the R5 filters before it enters the report.
R1. Mechanical scans. Each scan enforces the rule it names; a hit is a finding.
- ASCII source only. Represent every non-ASCII character (accented letters, diacritics, and other non-ASCII symbols) with an HTML character reference - a named entity such as
ńor a numeric entity such asń- and never with a literal non-ASCII character. HTML entities are the required and preferred form: a literal non-ASCII character is a finding, and flagging or "correcting" an HTML entity to a UTF-8 literal is not a valid finding. - Single dashes only; no em dashes, no double dashes in prose.
- No contractions outside verbatim quotations.
- Scan every entry in
<loaded-words>; replace hits with the neutral column, including inside headings and captions. - No "should", "must", or "ought" whose subject is the committee, a subgroup, a chair, or an officer (W31).
- Info papers: no urgency aimed at the reader; a date is a fact, a deadline pressed on the reader is a finding (W45).
- No defensive negations and no self-credibility assertions (W32).
- No vague quantifiers: "some", "many", "various", "several", "often", "widely" (W16).
- In body sections (outside disclosure, abstract, conclusion), scan for "the paper", "this paper", "the argument" as grammatical subjects; each hit is a candidate finding (P2).
- No freestanding bolded epigrams (W17).
- No phrase of 4 or more words repeated verbatim without added meaning (W18).
- Confirm the paper carries each required section under its canonical heading: Abstract, Revision History, Introduction (W3), Conclusion (W5), and Disclosure (W35). A section that does the work under a different name ("Background", "Context", "Background and Scope") is misnamed; flag it. Require Acknowledgments (W36) when the paper names contributors, and References when the paper carries citations. Each missing or misnamed required section is a finding.
- Confirm the required sections appear in canonical order: Abstract, Revision History, Introduction, body sections, Conclusion, Disclosure (W35), Acknowledgments (W36), References. A required section out of its canonical position is a finding; the R8 mechanical-fix disposition moves it to that position.
R2. Citation integrity.
- Attach a superscript citation to every paper reference in the body. Confirm every superscript has a reference entry and every entry is cited at least once.
- Add revision suffixes to paper numbers, except when naming a series generically.
- Use canonical URLs: open-std.org for WG21 papers, the vendor's own documentation for vendor claims.
- Format every reference entry to the repository's format; absent one, use: [N] linked ID - "Title" (Full Author Names, Year).
- Verify every link resolves.
- When the repository provides citation tooling, run it, then verify every auto-correction by hand; the known failure mode is adding a revision suffix to a generic series mention. When no tooling exists, perform the same checks manually.
R3. Fact-check protocol. One subagent, one batch. The task ships the paper text and the citation list; the subagent needs nothing else. Directives for the task:
- Fetch every cited source.
- Verify every quotation character-for-character against its source; record the location.
- Verify every paper number, revision, registered title, author list, and year against the source's own front matter.
- Verify every tally, date, and version claim against the cited source.
- Re-run every absence claim by its disclosed method.
- Report every item as VERIFIED, CORRECTED (with the correction), or UNVERIFIABLE (with the reason: paywalled, binary-only, offline, not found).
R4. Adversarial-evaluation protocol. One fresh subagent. The task ships the paper plus <writing-rules>, <review-rules>, <prose-rules>, and <loaded-words>; the subagent needs nothing else. Directives for the task:
- Apply R0.
- Surface check: from title, abstract, headings, and conclusion alone, name the paper's category, context, assumptions, contribution, ask, and stated conclusion. Each missing answer is a finding.
- Thrust check: harvest the first sentence of every paragraph; confirm the sequence reproduces the argument with its evidence; confirm every table and figure stands alone. Each gap is a finding.
- Restatement check: confirm the finding is stated in full only in the abstract and the conclusion (W48). Flag each body-section conclusion, section opener, mid-section recap, assumption, or disclosure line that restates the paper's finding rather than its own local point.
- Hostile check: list the paper's weaknesses as an opponent would state them; every weakness the text does not already acknowledge is a finding. Then probe five fixed questions: (1) Is the evaluative standard grounded in its cited sources, or stretched past them? (2) Does any claim exceed what a delegate can verify from the cited sources? (3) Is opposing evidence undercounted, or discounted by a rule not applied to the author's own side? (4) Is every analogy structurally precise? (5) Does any quotation do work its context does not support?
R5. Challenge filters. Apply to every candidate finding, in order:
- C1, already handled: the paper concedes or answers the point. Kill the finding.
- C2, audience mismatch: the finding assumes an audience the front matter does not name. Kill the finding.
- C3, too trivial: the fix would not change the paper's effect on its audience. Relegate the finding to the report's notes.
R6. Severity. Assign each finding a severity: high when it misleads the delegate or breaks an argument; medium when it weakens an argument or costs credibility; low when it costs only polish.
R7. Report format. Verdict first. Return the findings in this schema; write nothing to a file. Schema:
# Review - [document ID]
## Verdict
[Clear | With findings: N, the most important in 1 sentence | Suspended: reason]
## Strengths
- [rule ID]: [what works]
## Findings (high first)
### [n]. [title]
Rule: [ID]. Severity: [high|medium|low].
> [exact quote from the paper]
[What is wrong. Why it matters to the delegate. What the fix looks like.]
## Fact check
[CORRECTED and UNVERIFIABLE items only, with corrections]
## Notes
[C3 relegations, 1 line each]
## Methodology
[Rules applied, filters run, finding counts by disposition]
Filled miniature example:
# Review - P9999R0
## Verdict
With findings: 2, the most important: the Section 3 tally is uncorroborated.
## Strengths
- W8: topic sentences reproduce the argument end to end.
## Findings (high first)
### 1. Uncorroborated tally
Rule: R3. Severity: high.
> the poll passed 41-2
The cited source records 41-3. Correct the tally and re-check claims built on it.
### 2. Vague quantifier
Rule: W16. Severity: low.
> many implementations ship this
Name the implementations or delete the claim.
## Fact check
CORRECTED: Section 3 tally 41-2 -> 41-3 (source: N5001, p. 4).
## Notes
- W18: "in other words" appears 3 times; reword two.
## Methodology
R0-R8 applied; 11 candidate findings; 6 killed by C1, 3 relegated by C3, 2 reported.
R8. Resolution dispositions, applied by the main agent after reading findings from both subagents. Give every finding exactly one:
- Mechanical fix: wording, citation, or format repair. Apply it immediately.
- Structural fix, unambiguous: the finding exposes an analytical flaw with one clear edit. Apply it immediately. Never wordsmith over a broken argument; prose cannot repair a wrong ledger.
- Structural fix, section rebuild: the fix rebuilds a section from the evidence, or the correct edit is not obvious. Surface it to the author with the quote, severity, and options; do not guess.
- Recorded override: the author overrides the rule. Record the rule, the reason, and the author in the override registry.
Surface every finding whose fix is not clearly mechanical or unambiguous rather than guess at it. After the final edit batch, re-run Review Process step 1 once, then stop. The consolidated findings plus the dispositions are the review record.
Every W-rule is an audit criterion for the Review Process. A parenthetical step marks where the rule also binds at write time. An ask or info tag scopes the rule to that paper intent; untagged rules apply to every paper.
The surface:
- W1 (Step 4). Name the contribution in the title, not the topic area; a delegate classifies the paper from the title alone. Put established searchable keywords in the title or subtitle; a private coinage as the only name makes the paper unfindable.
- W2 (Step 4). Abstract.
- Open with the finding line: 1 sentence, its own line, no citations, no hedging, stating the finding.
- Follow it with a blank line, then one funnel paragraph, each sentence narrowing the last: shared context, narrowed problem, contribution, ask (ask-papers).
- Keep the one central finding and at most three load-bearing conclusions in the funnel (a load-bearing conclusion is one the finding depends on: remove it and the finding goes false or unsupported); move the rest to the introduction's contributions list (W3).
- Generate the abstract from the finished paper with the Abstract Generator, then audit its output against this format.
- Reason: the first pass never reaches an ending stated anywhere else.
- W3 (Step 4). Write the Introduction. State the proposed change before any justification or history, so a surface-pass delegate can name what the paper proposes. Name the related work, enumerate the contributions as a numbered list, and state the paper's assumptions. The contributions enumerate what the paper provides and the assumptions state its premises; neither restates the finding as a fresh claim (W48). An assumption the delegate cannot find reads the same as one that is invalid.
- W4 (Step 4). Write headings that state each section's point and, read alone in sequence, carry the argument.
- W5 (Step 4). Conclusion.
- Restate the contribution as the evidence refined it, without repeating the abstract (the abstract and this conclusion are the finding's only two full statements; W48).
- State gains and costs, and restate the ask votably (ask-papers) or state the finding and the record (info papers).
- Name who builds next.
- Widen with named consequences, never slogans.
- W6 (Step 4). Write the surface after the body is complete, and derive it from what the body shows. The surface sells the paper that exists, not the paper that was planned.
The body, write-time:
- W7 (Step 3). Section preparation.
- Open every section and subsection with 1-3 sentences stating what it covers and why the delegate needs it.
- A section opener names the specific aspect the section addresses, not a compressed restatement of the paper's finding (W48).
- When a section has 2 or more subsections, add a map of what they cover and how they relate.
- W8 (Step 3). Begin every paragraph with a topic sentence that advances the argument; the topic sentences in sequence reproduce the paper's argument.
- W9 (Step 3). Place evidence before every value word (a value word evaluates rather than states: "simpler", "significant", "minimal") it supports, in the same or the preceding paragraph. A value word with no prior evidence is deleted or its evidence is moved ahead of it. Reason: a value word read before its evidence frames how the delegate reads that evidence, and a value word with none is a bare assertion a hostile delegate discounts.
- W10 (Step 3). End every section with its own conclusion, the specific local claim that section establishes, stated in plain declarative sentences immediately after the evidence, unbolded (Invariant 3, W48). Do not restate the paper's finding here.
- W11 (Step 3). Quote verbatim, with section or page location, from verified research only. Attribute with neutral verbs: "writes", "observed", "characterized" - never "admitted", "conceded", "confessed", "revealed".
- W12 (Step 3). Caption and code context.
- Caption every table and figure with what it shows and why it matters, readable without the surrounding prose.
- Label axes with units.
- Precede a code block with a short provenance or status note (where it comes from; proposed, existing, or hypothetical) only when that is not already clear from the surrounding prose, and never narrate what the code shows.
- Show competing designs side by side, full text, and let the delegate count.
The body, audit:
- W13. Before analyzing a design, name 3 or more specific technical properties it provides, in attestation verbs ("provides", "enables"). Reason: earned recognition buys trust for the analysis of costs; perfunctory praise spends it.
- W14. Self-containment and naming.
- Give every domain term 1 sentence of context before it carries weight.
- Give every leaned-on reference a 1-sentence inline takeaway (see W29).
- Add a glossary at 5 or more new terms.
- Call each concept by exactly one name; when two similar terms differ, state the distinction where the second first appears.
- Describe a competing design or prior work in the terms its authors use, not in the paper's analytical frame; the described author should recognize it. Reason: analytical vocabulary argues before the delegate knows the paper is arguing.
- W15. Follow every claim of minimality, completeness, necessity, or exclusivity with what breaks when the thing is removed or why no alternative achieves the property. Delete the claim when the justification does not exist.
- W16. Replace every vague quantifier with the actual items or the actual count. Delete the claim when the items cannot be named.
- W17. Write every sentence as an assertion of fact, evidence, or argument. Convert rhetorical questions into the statements they imply. Replace slogans with the enumeration they compress. No freestanding bolded epigrams; write each section's closing conclusion as a plain sentence in the closing paragraph. Reason: slogan register hands a hostile delegate proof the paper is a campaign document.
- W18. Flow.
- Connect consecutive ideas with transitions.
- Give no paragraph a sentence fragment as its opener.
- Expand any passage a first-time delegate would re-read.
- Repeat a phrase of 4 or more words only when the repetition adds meaning.
- After changing subject, name the subject rather than open with "this", "it", or "the design"; after a topic shift an ambiguous pronoun binds to the wrong antecedent.
- W19. When
audiencenames EWG, LEWG, or WG21, write the problem statement, contribution, and conclusion for a competent C++ programmer with no domain expertise. When the audience is a single study group, assume its domain expertise; W14 still applies. - W20. Number the links of every causal chain and cite each link. State each link as a fact; the chain is the conclusion's evidence, and the stated conclusion follows it (W10).
- W21. Order a sequence of evidence from simplest to most complex, each step adding exactly 1 new dimension. A delegate who accepts step N cannot escape step N+1.
- W22. Include every item a survey found, especially the items that cut against the paper's position. Date every timeline entry. Reason: one curated omission, discovered, discredits every honest row.
- W23. Attach every cost to a design or a mechanism, never to a person. Pair every cost with what it provides. Test: the designer reads the section and feels described, not accused.
- W24. Apply every evaluative standard identically to both sides. Discount evidence that favors the paper's position by the same rule that discounts the opponent's; when the paper discounts the opponent's direction polls, it discounts its own side's direction polls in the same sentence class. Reason: an asymmetry a hostile delegate catches discredits every comparison the paper draws.
- W25. When the authors of an evaluative standard are a party to the dispute it judges, disclose that where the standard is introduced, and state what the conclusion rests on if the standard is rejected. Reason: an undisclosed stake in the standard voids the conclusion built on it once a delegate finds it; disclosure and a stated fallback survive the discovery.
- W26. Give expected objections their own section. State each objection in its strongest form as a quoted heading; answer only from evidence already presented in the paper.
- W27. State every assumption and limitation before a delegate can discover it independently. Concede real limitations plainly, with no "however" softening the concession. A disclosed limitation is a scoping decision; a discovered one is a credibility failure that spreads.
- W28. Provide the detail a delegate needs to check the work.
- Implementation experience with links.
- Measurements with their setup.
- Alternatives with the reason each was rejected.
- Search claims with their method.
- W29. Attach a citation to every claim resting on prior work. Never delete a citation to save the delegate effort; add the 1-sentence inline summary beside it.
- W30. Expand every abbreviation at first use. Give every meeting name a year. Cite sources a reader without institutional access can retrieve. Reason: the paper's most important reader opens it in 2032 and was not in the room.
Voice, audit:
- W31. Address no "should", "must", or "ought" to the committee, a subgroup, a chair, or an officer. Restate the sentence as evidence or observation: "the committee should revisit X" becomes "the conditions that produced X have changed". Reason: an imperative aimed at the body that decides reads as lecturing it, where an observation lets the delegate reach the conclusion itself.
- W32. Delete defensive negations ("this is not an attack") and self-credibility assertions ("the evidence is public", "the reader decides"). Reason: a negation plants the accusation it denies, and the citation apparatus already proves what the assertion claims.
- W33. Replace every hit from
<loaded-words>with its neutral column. For words not in the table, test by mechanism: side-label, intent-load, motive attribution, diminish, dramatize, conspiratorial frame, patronize, innuendo, delegitimize. - W34. Delete every sentence that adds no fact, no evidence, no citation, and no tradeoff.
Standing sections:
- W35. Place the disclosure section after the conclusion section and before acknowledgments (W36) and references, in this slot order (omit absent slots, keep wording identical across papers): posture line "The author provides information and serves at the pleasure of the committee"; affiliation and maintained work; the paper's intent; competing work and stakes; 1 genuine limitation of the author's approach or method; series membership and companions; methodology; machine-assistance statement when true; and, info papers only, the closing line "This paper asks for nothing" on its own line.
- W36. Name every contributor in the acknowledgments with their specific contribution. "X identified the frame allocator gap" is provenance; "X provided helpful feedback" is a form letter.
Ask-papers:
- W37 (ask). Before drafting, inventory the published positions of the delegates likely to attend: papers, national-body comments, prior polls. Reuse their exact phrases in the framing; a delegate cannot oppose their own stated concern.
- W38 (ask). Open the case with the outcome: 1 sentence naming what the committee achieves by adopting. Anchor with the largest defensible number or starkest defensible contrast, then present the smallest mechanism that provides it.
- W39 (ask). Show who already believes: implementations, deployments, delegations. Three implementations are a standard; one is a prototype. After every favorable poll, publish a revision addressing every concern before the next mailing deadline.
- W40 (ask). Decompose the ask into a sequence of polls, each independently agreeable to a delegate who opposes the final conclusion. When a prior poll omitted a live option, name the omission and propose an inclusive follow-up poll.
- W41 (ask). Frame benefits as losses: name the specific design freedoms that vanish after the ship date, and which choice is irreversible. State the irreversibility as fact; the committee's risk aversion does the rest.
- W42 (ask). Remove every step between a delegate's agreement and their vote: provide the exact wording change, the draft poll language, and a 1-paragraph summary a champion can forward. Cite the prior committee decisions the ask fulfills.
- W43 (ask). Lead with the destination and identity, then supply the technical scaffolding that justifies the vote. Reversed order produces "needs more time", the committee's polite no.
Info-papers:
- W44 (info). Make no request of any kind: no floor time, no scheduling, no "we hope the committee will". If the paper is useful, the committee finds it without being asked.
- W45 (info). Attach no urgency to the reader: no deadlines, no closing windows, no "this cycle". State dates as facts about the world.
- W46 (info). Delete anxiety, credit-seeking, and pleading: "we hope this is useful", "this is the first paper to", "deserves careful consideration". The paper is at peace with silence.
- W47. When the paper has no finding on a choice, present each option's provides and costs without a ranking. When the paper has a finding, state it (Invariant 3).
Conclusion placement:
- W48. State the finding in full only in the abstract (W2) and the conclusion (W5); compress it into the headings (W4). A body section ends with its own local conclusion (W10), never a restatement of the finding. Do not additionally plant the finding as an assumption (W3) or a disclosure line (W35); the contributions list (W3) names it once at most. Reason: the reading passes are cumulative, so a delegate reading the body already holds the finding, and a restatement reads as padding.
Description and exposition:
- W49 (Step 3). Write description and argument in separate sentences. Split any sentence that both names a feature of a competing design and argues it is wrong; describe first in the subject's terms (W14), then state the position. Reason: a fused sentence encodes the paper's position into text a delegate reads as neutral description, and forces the delegate to separate fact from claim.
- W50 (Step 3). Specify a mechanism before justifying it; a rationale follows the spec it defends and never precedes it. Reason: justification before specification reads as salesmanship, and a delegate cannot judge a rationale for a mechanism not yet specified.
Every P-rule revises the paper's prose so it reads as human-written, not machine-generated. Step 5 runs P1-P5 as sequential passes, one at a time over the whole paper; P6 verifies them and P7 is the exit checklist. The Review Process re-audits every P-rule one at a time, the same way it audits the W-rules. Enforce the per-document rates, not total abstinence: each construction below is defensible alone and only fingerprints the text at density.
- P1. Split any paragraph over 300 words at a numbered move, a pivot between opposing sides, a change of speaker, or a change of evidence source. Split any sentence over 70 words whose quoted content is under 35 percent of its words, breaking at semicolons, dashes, or "and" joints between independent claims; leave quote-dense sentences intact, because splitting reported speech distorts attribution. Allow a one-sentence paragraph as a pivot between two long blocks, at most 2 per 10,000 words. Reason: uniform long blocks are a generation signature and hide the seams a reader needs to navigate the argument.
- P2. Delete meta-announcements, sentences that state what the text is about to do instead of doing it: "the third axis deserves its own sentence" becomes the sentence that makes the point. Delete announce-then-do joints, where a sentence ends by promising content and the delivery reintroduces itself; cut the promise and keep the delivery. Delete one-line escorts before a table or figure that already carries a caption (W12); the caption does that job. Keep at most one instance of a given hedge per paragraph, the first, and delete the rest. When two adjacent sentences state one fact twice, keep the more concrete and delete the other. Escape hatch: keep a restatement when the two occurrences do different argumentative work, stated as evidence in one place and weighed as a concession in another. Outside the disclosure, abstract, and conclusion, do not make the paper a character in its own argument; when the paper concedes, credits, examines, or takes a position, rewrite so the evidence, the finding, or the subject matter is the grammatical subject. Section-orientation openers ("This section reports...") are permitted; persuasion narration ("it is the paper's first piece of evidence," "the paper reads the same hazard") is not. Reason: generated prose narrates its own structure, and the edit keeps the content and cuts the narration.
- P3. Thin each machine idiom to its rate below. Rewrite abstraction promotions that elevate a fact into a named abstraction instead of stating the point: "the confinement is the finding" becomes "the confinement is what matters". Ban verdict coinages, a metaphorical word private to this paper used as a conclusion ("unfenced", "armored"); replace with the literal predicate, or define the coinage at first use and reuse it consistently. Apply the currency test: keep a coined word only when it carries its meaning in professional English outside this paper, so a fluent reader decodes it cold, because recurrence inside the paper is not currency. Rates, counted at P6: "exactly" and "precisely" at a combined 1 per 2,500 words, kept only where the precision is the claim; nonce compounds in "-shaped", "-flavored", "-style" at 1 per document, elsewhere name the property; "in full" at 1 per 4,000 words, kept only where completeness is asserted; the antithesis closer "X, not Y" at 1 per 2,000 words, kept for rule statements and stripped to the positive claim otherwise; colon-codas, a colon followed by a punchy closing fragment, at 1 per 5,000 words. When two instances tie under a rate, keep the one carrying a rule or definition and cut the one carrying emphasis.
- P4. Limit the paper to one metaphor family, the domain's own vocabulary; flatten every other family into plain verbs. Replace economic metaphors with plain English: "priced as" becomes "counts as", "buys" becomes "provides", "at the price of" becomes "at the cost of", "carrying cost" becomes "overhead", "exercise the option" becomes "use the capability"; plain "cost" is ordinary English and stays. Replace physical-verb animations of abstractions: "costs run" becomes "costs are incurred", "lives inside" becomes "sits inside", "earns credit" becomes "receives credit". Keep a metaphor word only when it is a quoted opponent's own term: answer in their vocabulary in the sentence that engages them, then return to plain verbs. Reason: dead-metaphor stacking forces the reader to unpack finance, volition, and abstraction in one clause, and plain verbs cost nothing.
- P5. Classify every abstract subject paired with an action verb into three tiers, and let the tier decide the fix. Tier 1, texts speak (a paper states, a poll reads, a standard requires): allowed, standard scholarly English. Tier 2, arguments act in argument space (an objection concedes, a premise implies): allowed sparingly, but prefer Tier 1 when a specific text can be named. Tier 3, non-text abstractions act with volition (the record declines, the ledger measures, the configuration refuses): banned; rewrite by naming the real actor ("what production deployments avoid") or by going stative ("the ledger is organized by configuration form"). Allow stative-causal evidence verbs ("the record settles", "the data show", "the evidence supports"). Decision test: ask who performs the verb; when the honest answer is "nobody, a pile of documents is choosing", the pair is Tier 3, so rewrite it.
- P6. Verify the passes before Step 5 ends. Count each capped construction from P3 (intensifiers, nonce compounds, "in full", antithesis closers, colon-codas) and revise every overage. List every metaphorical word that fails the P3 currency test and confirm each is defined at first use or replaced. Search the banned families by pattern: economic verbs from P4, and Tier 3 subject-verb pairs from P5 (a subject in {record, ledger, demand, premise, configuration} followed within two words by a volitional verb); both counts must be zero. Recompute paragraph and sentence length against the P1 thresholds. Diff every quoted span against the pre-pass text; the spans must be byte-identical (Invariant 2). Confirm every citation marker still resolves to a reference entry in both directions. Read every edited section start to finish once, confirming each paragraph's opening connects to the previous paragraph's close.
- P7. Run the exit checklist; each item answers yes or no, and each no returns to its rule. No paragraph exceeds 300 words and no low-quote sentence exceeds 70 (P1). No sentence announces what the text is about to do (P2). The paper is not a character in its own argument outside the disclosure, abstract, and conclusion (P2). No hedge appears twice in one paragraph (P2). Every capped idiom is at or under its rate and each survivor is load-bearing (P3). Every word failing the currency test is defined at first use or replaced (P3). One metaphor family remains and it is the domain's own (P4). No Tier 3 subject performs a volitional verb (P5). Quotes and citations are unchanged, verified mechanically (P6). Every edited section has been re-read continuously (P6).
| Loaded | Neutral | Mechanism |
|---|---|---|
| faction | coalition, camp, position | Conspiratorial frame: treats aligned positions as organized adversarial action |
| skeptic / skeptics | name the papers, or "the objecting position" | Side-label: positions one side as doubters of a settled matter |
| proponent / proponents | name the papers, or "the response papers" | Side-label: positions one side as advocates rather than respondents |
| opponent / opponents | objectors, or name the papers | Side-label: casts disagreement as personal opposition |
| allies / enemies | supporters, co-authors, or name the papers | Conspiratorial frame: imports military alignment into technical work |
| regime | framework, model, system | Conspiratorial frame: implies authoritarian imposition |
| admitted / conceded / confessed | writes, observed, noted | Intent-load: converts a neutral statement into a reluctant confession |
| refused | declined, did not pursue | Intent-load: implies defiance rather than a considered decision |
| ignored | did not address, left unaddressed | Motive attribution: implies deliberate avoidance rather than priority or oversight |
| complained | raised concerns, objected | Diminish: reduces a substantive objection to personal displeasure |
| demanded | requested, sought | Intent-load: implies coercion rather than advocacy |
| forced | required, necessitated | Intent-load: the constraint, not a person, did the requiring |
| blocked | did not advance, did not achieve consensus | Motive attribution: implies obstruction rather than disagreement |
| rammed through / pushed through | advanced, moved forward | Motive attribution: implies force bypassing legitimate objection |
| derailed | redirected, raised procedural concerns about | Motive attribution: implies sabotage rather than legitimate process concern |
| seized | adopted, took up | Intent-load: implies aggressive acquisition rather than a procedural step |
| weaponized | used strategically, applied | Conspiratorial frame: imports military metaphor, implies bad faith |
| attacked | critiqued, objected to, challenged | Dramatize: converts analysis into aggression |
| caved / capitulated | accepted, adopted the change | Diminish: frames agreement as surrender rather than considered acceptance |
| interesting (as innuendo) | substantive, significant, notable | Innuendo qualifier: suggests something negative without stating it |
| controversial | contested, debated | Dramatize: imports political charge into a technical disagreement |
| so-called | use the term or do not | Delegitimize: questions legitimacy without stating a reason |
| mere / merely | delete, or "only" when factually accurate | Diminish: minimizes without argument |
| of course | delete | Patronize: assumes the reader already knew; punishes the one who did not |
| obviously / clearly | delete | Patronize: if it were obvious the sentence would not exist |
Generate an abstract from a finished paper, then review it against that paper in a second, fresh subagent (Step 4, items 5-6; run alone on request against any finished paper). The two blocks below are the source of truth: <abstract-process> generates, <abstract-review> edits. Each block is self-contained: a subagent given this tool file's path and the block's tag name greps for the tag, reads the enclosed block, and needs nothing else from this document.
Read the whole paper, then run steps 1-3 in order. Return only the final abstract, not the conclusion list or any intermediate stage.
-
Enumerate. List every conclusion in the paper except the Abstract: each finding, judgment, scope statement, or concession the paper asserts on its own authority, not the evidence or quotations under it, and not the analytical apparatus it applies - frameworks, counts, and method are machinery, not conclusions. A conclusion drawn by applying a framework is enumerated; the framework and its count are not. Sweep the whole text, not one conclusion per section, since they cluster where the argument turns - one section may hold a dozen, another one. Number the list.
-
Reduce to the Rule of One.
- Reduce the list to one central message plus at most three supporting points. A multi-message abstract is less memorable and less convincing about each point; drop the surplus load-bearing conclusions from the abstract, since they belong in the introduction's contributions list, written separately.
- Merge related conclusions; when a merged conclusion turns into a list of instances, keep the category and cut the instances, unless the items are themselves the finding.
- Cut a qualifier - anything that bounds, scopes, or excepts a finding, or names an alternative it preserves - only with the finding it qualifies.
Conserve the five C's through the reduction and the rewrite:
- Category: keep the paper the same kind - proposal, analysis, position, or info.
- Context: keep the shared background that locates the problem through every cut.
- Correctness: keep every surviving claim true and not overclaimed; cut or keep each claim together with the scope, condition, or mechanism that makes it true.
- Contributions: keep everything the paper provides; in the abstract that is the finding plus its at-most-three points, with the rest carried by the contributions list.
- Clarity: keep the result readable prose, not shorthand.
- Rewrite. Cast what remains in the present tense of an abstract. First compress the whole set into one sentence - a main clause carrying the paper's dominant thesis, supporting conclusions hung on as subordinate clauses. Lift that main clause out as the finding line, blunt, on its own line. After a blank line, unfold the subordinate clauses into one funnel paragraph, each sentence narrower than the last: open on the context the audience already shares, move through the narrowed problem, close on the finding. Because finding line and funnel are split from the same sentence, the funnel narrows toward the finding by construction. If the one-sentence compression has no single main clause - only two co-equal claims joined by "and" - the paper has two theses; lead with one and fold the other into the funnel.
Pick the form from front matter. From intent: a proposal, ask, or info-advocacy paper opens the finding line with the proposed change ("This paper proposes X", problem plus approach); a findings paper opens with the result. From audience: a specialist venue (EWG, LEWG, an SG, WG21) leads with the finding and uses no context ramp; a broad venue gets one or two context sentences first.
Cut from the abstract: citations, jargon and nonstandard abbreviations, methods detail, hedges, filler and metadiscourse, speculation, references to figures or sections, and any restatement of the document type. Do not open with a manufactured hook, a rhetorical question, or a coined slogan; a concrete finding in plain words earns the next sentence.
The real limit is claim count, not word count (a soft 150-250 word ceiling). Leave the finding line untouched. Keep the result one blunt finding line, a blank line, and one paragraph.
Before returning, confirm every qualifier that survived step 2 appears in the funnel, then compress the finished abstract back to one sentence as a check - if its main clause does not match the finding line, the funnel is aimed wrong; re-aim it. Return only that abstract.
Inputs: the source paper's full text and the generated abstract. The abstract under review has this shape - a finding line (one blunt sentence on its own line, no citations, no hedging), a blank line, then a funnel paragraph whose sentences narrow from shared context to the finding. Read both inputs, then run rules 1-5 in order, editing the abstract in place. This pass edits presentation; it does not regenerate: assume the generator's selection of conclusions is correct, and fix only how they are aimed, voiced, scoped, and ordered. Its jobs are to remove machine-writing tics and to catch overclaim against the paper; it does not grade quality. Whether the abstract is good, and its final aim, are the human editor's, exercised in the normal review of the whole paper. Return only the edited abstract - not the rule-by-rule findings, not a list of changes.
-
Aim check. Compress the abstract to one sentence. If its main clause does not match the finding line, the funnel is aimed at the wrong thesis; re-aim it. If the finding line itself is wrong - it does not match the paper's stated purpose, read from the title, the final section, and any proposed actions or polls - fix the finding line first, because every later rule tests against it.
-
Voice match. Read the paper's own abstract if one exists, its introduction, and its final section. Match the generated abstract's register to the paper's register for its central claim: prescriptive ("should"), descriptive ("shows"), or requestive ("asks"). Replace verbs that escalate or soften: if the paper asks, the abstract asks, not demands and not merely notes.
-
Omission scan. Read the paper's final section and list every concrete deliverable it names: polls, patches, scope statements, recommendations. If the abstract names none of them, add the most important one. If it names some, confirm none are fabricated. The abstract need not list them all, but it must not read vaguer than the paper about what the paper proposes. If the paper makes no concrete proposal - an info paper may record a finding rather than make an ask - skip this rule.
-
Overclaim scan. For every factual assertion in the abstract, find its source sentence in the paper. When the paper qualifies the claim - scopes it, hedges it, names an exception - carry the qualifier or cut the claim. For every judgment word the abstract uses, confirm the paper uses the same word or an equivalent; when the abstract's word is stronger than the paper's, use the paper's word.
-
Funnel audit. Run this last, on the sentences left after rules 3 and 4. Number the funnel's sentences. For each adjacent pair, confirm the second is narrower than the first, closer to the finding line's specific claim. Two sentences at the same level of generality are parallel supports, not a funnel; subordinate one to the other or merge them. When a mechanism or concept appears in two sentences, fuse those two sentences into one. This is the generator's most common structural defect.
After the five rules, read the result once as a committee delegate would, and split any sentence that needs re-reading to parse. Keep the result one blunt finding line, a blank line, and one paragraph. Return only the edited abstract.
Write for a delegate who reads in passes and stops when a pass fails: show, then assert, and state the finding on the surface and each section's own conclusion in its place.
All content in this file is dedicated to the public domain under CC0 1.0 Universal.
