GRM-018
Hard constraint
layer: sentence
Repair dangling introductory modifier
IF an introductory modifier’s implied actor is not the following subject, THEN make the actor the subject OR expand the modifier into a clause ELSE retain.
Why the rule exists
The understood subject of a reduced modifier should be recoverable without absurdity.
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
- sentence.intro_modifier.exists eq true
- sentence.intro_modifier.actor_matches_subject eq false
Facts this rule reads
| Path | Source |
|---|---|
sentence.intro_modifier.exists |
Derived from text |
sentence.intro_modifier.actor_matches_subject |
You supply it |
Then
- restructure — target
sentence
Else
- retain — target
current_text, No triggering condition is present.
Test cases
TST-003 · [object Object]
- Before
After reviewing the proposal, the price seemed high.- After
After reviewing the proposal, we thought the price seemed high.- Reason
- The reviewer becomes the subject.
LAKA
- Smallest sufficient intervention
- Yes
- Primary axes
Sources
-
The Blue Book of Grammar and Punctuation — Jane Straus; Lester Kaufman
Accessible grammar, punctuation, examples, and exercises. -
The Copyeditor's Handbook — Amy Einsohn; Marilyn Schwartz
Professional copyediting practice, grammar, and editorial process. -
Microsoft Writing Style Guide — Microsoft
link
Warm, clear, concise, helpful technical communication.
The raw rule record
Verbatim from 07-core-grammar-rules.json. Also available at /v1/rules/GRM-018.
{
"id": "GRM-018",
"name": "Repair dangling introductory modifier",
"domain": "grammar",
"layer": "sentence",
"strength": "hard_constraint",
"human_logic": "IF an introductory modifier’s implied actor is not the following subject, THEN make the actor the subject OR expand the modifier into a clause ELSE retain.",
"when": {
"all": [
{
"path": "sentence.intro_modifier.exists",
"operator": "eq",
"value": true
},
{
"path": "sentence.intro_modifier.actor_matches_subject",
"operator": "eq",
"value": false
}
]
},
"then": [
{
"action": "restructure",
"target": "sentence",
"options": [
"make_actor_subject",
"expand_modifier_to_clause"
]
}
],
"else": [
{
"action": "retain",
"target": "current_text",
"reason": "No triggering condition is present."
}
],
"unless": [],
"because": "The understood subject of a reduced modifier should be recoverable without absurdity.",
"diagnostics": [],
"examples": {},
"source_ids": [
"BK-002",
"BK-007",
"WEB-004"
],
"laka": {
"smallest_sufficient_intervention": true,
"primary_axes": [
"scope",
"depth",
"magnitude",
"reversibility"
]
}
}
Other grammar rules
- GRM-001 Subject–verb number agreement IF a finite clause has an expressed subject AND neither quoted dialect nor an agreement exception applies, THEN align the finite verb with the subject in number ELSE retain. Hard constraint
- GRM-002 Compound subject agreement IF two or more singular subject heads are coordinated by AND, THEN use plural agreement ELSE evaluate the coordinator. Hard constraint
- GRM-003 Or/nor proximity agreement IF subject alternatives are joined by OR or NOR, THEN agree with the closest subject OR rewrite when the result sounds unstable ELSE retain. Context default
- GRM-004 Pronoun–antecedent agreement IF a pronoun refers to an antecedent AND the antecedent is known, THEN align person and number while respecting singular THEY ELSE request the missing referent. Hard constraint
- GRM-005 Unambiguous pronoun reference IF a pronoun has two or more plausible antecedents OR none, THEN replace it with the intended noun phrase ELSE retain. Hard constraint
- GRM-006 Stable grammatical person IF a passage shifts person without changing speaker, audience, or viewpoint, THEN restore the established person ELSE preserve the motivated shift. Context default
- GRM-007 Tense consistency within a time frame IF tense changes but event time and narrative viewpoint do not, THEN restore the established tense ELSE keep the meaningful time shift. Context default
- GRM-008 Sequence of tenses IF a dependent clause is temporally related to a governing clause, THEN select tense and aspect that express the intended ordering ELSE do not normalize automatically. Hard constraint