CLR-017
Hard constraint
layer: word
Make dates and units unambiguous
IF a date, time, quantity, currency, or unit could be interpreted differently by locale, THEN use an unambiguous format and label ELSE retain.
Why the rule exists
Ambiguous measurements create operational and financial errors.
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
- value.type in [date, time, quantity, currency, unit]
- value.locale_ambiguity eq true
Facts this rule reads
| Path | Source |
|---|---|
value.type |
You supply it |
value.locale_ambiguity |
You supply it |
Then
- normalize — target
value - label — target
value.unit_or_zone
Else
- retain — target
current_text, No triggering condition is present.
LAKA
- Smallest sufficient intervention
- Yes
- Primary axes
Sources
-
Google Developer Documentation Style Guide — Google
link
Clear, consistent, audience-directed technical documentation. -
Microsoft Writing Style Guide — Microsoft
link
Warm, clear, concise, helpful technical communication. -
Handbook of Technical Writing — Gerald J. Alred; Charles T. Brusaw; Walter E. Oliu
Grammar, mechanics, formats, and workplace documents.
The raw rule record
Verbatim from 11-clarity-style-rules.json. Also available at /v1/rules/CLR-017.
{
"id": "CLR-017",
"name": "Make dates and units unambiguous",
"domain": "clarity",
"layer": "word",
"strength": "hard_constraint",
"human_logic": "IF a date, time, quantity, currency, or unit could be interpreted differently by locale, THEN use an unambiguous format and label ELSE retain.",
"when": {
"all": [
{
"path": "value.type",
"operator": "in",
"value": [
"date",
"time",
"quantity",
"currency",
"unit"
]
},
{
"path": "value.locale_ambiguity",
"operator": "eq",
"value": true
}
]
},
"then": [
{
"action": "normalize",
"target": "value",
"standard": "declared_locale_or_ISO_compatible"
},
{
"action": "label",
"target": "value.unit_or_zone"
}
],
"else": [
{
"action": "retain",
"target": "current_text",
"reason": "No triggering condition is present."
}
],
"unless": [],
"because": "Ambiguous measurements create operational and financial errors.",
"diagnostics": [],
"examples": {},
"source_ids": [
"WEB-003",
"WEB-004",
"BK-025"
],
"laka": {
"smallest_sufficient_intervention": true,
"primary_axes": [
"scope",
"depth",
"magnitude",
"reversibility"
]
}
}
Other clarity rules
- CLR-001 Prefer the precise familiar word IF two words are equally accurate AND one is more familiar to the audience, THEN use the familiar word ELSE keep the precision-bearing term. Context default
- CLR-002 Define necessary jargon IF a domain term is necessary AND the intended reader may not know it, THEN define it at first use and use it consistently ELSE replace it with plain language. Context default
- CLR-003 Expand unfamiliar abbreviations IF an abbreviation is not universally familiar to the audience, THEN spell it out at first use and pair it with the abbreviation ELSE retain. Context default
- CLR-004 One term per concept IF multiple terms refer to the same technical concept without rhetorical need, THEN select one preferred term and replace the variants ELSE retain. Context default
- CLR-005 One concept per term IF the same term denotes multiple concepts in one context, THEN rename or qualify the concepts ELSE retain. Hard constraint
- CLR-006 Replace vague reference words IF THIS, THAT, IT, THEY, FORMER, or LATTER has an uncertain referent, THEN repeat or summarize the referent ELSE retain. Hard constraint
- CLR-007 Quantify actionable vagueness IF vague quantity, frequency, time, or probability affects a decision, THEN provide a range, threshold, date, or defined category ELSE retain approximate language. Context default
- CLR-008 Use concrete examples after abstractions IF a central abstraction lacks a concrete instance AND the audience knowledge gap is moderate or large, THEN add one representative example ELSE retain. Heuristic