GRM-007
Context default
layer: paragraph
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.
Why the rule exists
Tense shifts should encode time or viewpoint, not accident.
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
- paragraph.tense_shift eq true
- paragraph.event_time_shift eq false
- paragraph.viewpoint_time_shift eq false
Facts this rule reads
| Path | Source |
|---|---|
paragraph.tense_shift |
You supply it |
paragraph.event_time_shift |
You supply it |
paragraph.viewpoint_time_shift |
You supply it |
Then
- align — target
paragraph.tense, value fromparagraph.established_tense
Else
- retain — target
current_text, No triggering condition is present.
LAKA
- Smallest sufficient intervention
- Yes
- Primary axes
Sources
-
English Grammar in Use — Raymond Murphy
Self-study explanations and practice for core English grammar. -
The Copyeditor's Handbook — Amy Einsohn; Marilyn Schwartz
Professional copyediting practice, grammar, and editorial process. -
Practical English Usage — Michael Swan
Advanced grammar and usage reference for learners and teachers.
The raw rule record
Verbatim from 07-core-grammar-rules.json. Also available at /v1/rules/GRM-007.
{
"id": "GRM-007",
"name": "Tense consistency within a time frame",
"domain": "grammar",
"layer": "paragraph",
"strength": "context_default",
"human_logic": "IF tense changes but event time and narrative viewpoint do not, THEN restore the established tense ELSE keep the meaningful time shift.",
"when": {
"all": [
{
"path": "paragraph.tense_shift",
"operator": "eq",
"value": true
},
{
"path": "paragraph.event_time_shift",
"operator": "eq",
"value": false
},
{
"path": "paragraph.viewpoint_time_shift",
"operator": "eq",
"value": false
}
]
},
"then": [
{
"action": "align",
"target": "paragraph.tense",
"value_from": "paragraph.established_tense"
}
],
"else": [
{
"action": "retain",
"target": "current_text",
"reason": "No triggering condition is present."
}
],
"unless": [],
"because": "Tense shifts should encode time or viewpoint, not accident.",
"diagnostics": [],
"examples": {},
"source_ids": [
"BK-004",
"BK-007",
"BK-010"
],
"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-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
- GRM-009 Complete comparative relation IF a comparison can attach to more than one comparison set, THEN state the full set or rewrite ELSE retain. Hard constraint