STR-002
Heuristic
layer: paragraph
Expose the paragraph point
IF the paragraph’s controlling point is absent or recoverable only after rereading, THEN state or move it to a strategic position ELSE retain an intentional delayed reveal.
Why the rule exists
Readers need a frame for interpreting details.
Condition
The rule fires when this evaluates true. Paths marked below must be present in the fact base; the engine reports the rest rather than guessing them.
- ALL
- ANY
- paragraph.controlling_point missing true
- paragraph.point_requires_reread eq true
- paragraph.delayed_reveal_intended eq false
- ANY
Facts this rule reads
| Path | Source |
|---|---|
paragraph.controlling_point |
You supply it |
paragraph.point_requires_reread |
You supply it |
paragraph.delayed_reveal_intended |
You supply it |
Then
- insert — target
paragraph.controlling_sentence - move — target
paragraph.existing_point
Else
- retain — target
current_text, No triggering condition is present.
LAKA
- Smallest sufficient intervention
- Yes
- Primary axes
Sources
-
The Sense of Style — Steven Pinker
Reader-centered clarity informed by linguistics and cognition. -
On Writing Well — William Zinsser
Clarity, simplicity, voice, and nonfiction craft. -
Principles of plain language — Digital.gov / U.S. General Services Administration
link
Design content so the intended audience can find, understand, and use it.
The raw rule record
Verbatim from 10-paragraph-document-rules.json. Also available at /v1/rules/STR-002.
{
"id": "STR-002",
"name": "Expose the paragraph point",
"domain": "structure",
"layer": "paragraph",
"strength": "heuristic",
"human_logic": "IF the paragraph’s controlling point is absent or recoverable only after rereading, THEN state or move it to a strategic position ELSE retain an intentional delayed reveal.",
"when": {
"all": [
{
"any": [
{
"path": "paragraph.controlling_point",
"operator": "missing",
"value": true
},
{
"path": "paragraph.point_requires_reread",
"operator": "eq",
"value": true
}
]
},
{
"path": "paragraph.delayed_reveal_intended",
"operator": "eq",
"value": false
}
]
},
"then": [
{
"action": "insert",
"target": "paragraph.controlling_sentence",
"position": "first_or_contextually_emphatic"
},
{
"action": "move",
"target": "paragraph.existing_point",
"when": "present_but_buried",
"destination": "strategic_position"
}
],
"else": [
{
"action": "retain",
"target": "current_text",
"reason": "No triggering condition is present."
}
],
"unless": [],
"because": "Readers need a frame for interpreting details.",
"diagnostics": [],
"examples": {},
"source_ids": [
"BK-008",
"BK-013",
"WEB-002"
],
"laka": {
"smallest_sufficient_intervention": true,
"primary_axes": [
"scope",
"depth",
"magnitude",
"reversibility"
]
}
}
Other structure rules
- STR-001 One controlling move per paragraph IF a paragraph performs more than one unrelated rhetorical move, THEN split it at the move boundary ELSE retain. Context default
- STR-003 Support consequential claims IF a paragraph makes a consequential factual claim, THEN provide evidence, cite it, qualify it, or remove the claim ELSE retain. Hard constraint
- STR-004 Keep evidence beside the claim IF evidence is separated from the claim it supports by unrelated material, THEN move it closer or label the relation ELSE retain. Context default
- STR-005 Use transitions that name the relation IF adjacent paragraphs have a meaningful but unstated relation, THEN add a transition that expresses that relation ELSE retain. Context default
- STR-006 Delete orphan paragraphs IF a paragraph neither advances the purpose nor supports another necessary move, THEN delete or relocate it ELSE retain. Heuristic
- STR-007 Section answers one reader question IF a section answers multiple unrelated reader questions, THEN split and label them ELSE retain. Context default
- STR-008 Heading predicts content IF a heading does not accurately predict its section, THEN rename the heading or repair the section ELSE retain. Hard constraint
- STR-009 Maintain heading hierarchy IF heading levels skip or reflect visual size rather than logical nesting, THEN repair the hierarchy ELSE retain. Hard constraint