Bow Tie Kreative Writing System

Rules / punctuation

PUN-004 Context default layer: sentence

Comma after introductory material

IF introductory material is long, clausal, or potentially misread, THEN add a comma before the main clause ELSE use the lightest mark that preserves clarity.

Why the rule exists

A visible boundary prevents the introduction from being parsed as part of the main clause.

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.introduction.exists eq true
    • ANY
      • sentence.introduction.type eq "clause"
      • sentence.introduction.word_count gte 5
      • sentence.introduction.misread_risk eq true

Facts this rule reads

Fact paths read by PUN-004 and whether the analyser derives them
PathSource
sentence.introduction.exists Derived from text
sentence.introduction.type Derived from text
sentence.introduction.word_count Derived from text
sentence.introduction.misread_risk You supply it

Then

  1. insert — target sentence.introduction.boundary, value ","

Else

  1. retain — target current_text, No triggering condition is present.

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.
  • Grammar, Punctuation, and Sentence Structure — Purdue Online Writing Lab link
    Practical mechanics, clause, sentence, punctuation, and style guidance.
The raw rule record

Verbatim from 08-punctuation-rules.json. Also available at /v1/rules/PUN-004.

{
  "id": "PUN-004",
  "name": "Comma after introductory material",
  "domain": "punctuation",
  "layer": "sentence",
  "strength": "context_default",
  "human_logic": "IF introductory material is long, clausal, or potentially misread, THEN add a comma before the main clause ELSE use the lightest mark that preserves clarity.",
  "when": {
    "all": [
      {
        "path": "sentence.introduction.exists",
        "operator": "eq",
        "value": true
      },
      {
        "any": [
          {
            "path": "sentence.introduction.type",
            "operator": "eq",
            "value": "clause"
          },
          {
            "path": "sentence.introduction.word_count",
            "operator": "gte",
            "value": 5
          },
          {
            "path": "sentence.introduction.misread_risk",
            "operator": "eq",
            "value": true
          }
        ]
      }
    ]
  },
  "then": [
    {
      "action": "insert",
      "target": "sentence.introduction.boundary",
      "value": ","
    }
  ],
  "else": [
    {
      "action": "retain",
      "target": "current_text",
      "reason": "No triggering condition is present."
    }
  ],
  "unless": [],
  "because": "A visible boundary prevents the introduction from being parsed as part of the main clause.",
  "diagnostics": [],
  "examples": {},
  "source_ids": [
    "BK-002",
    "BK-007",
    "WEB-011"
  ],
  "laka": {
    "smallest_sufficient_intervention": true,
    "primary_axes": [
      "scope",
      "depth",
      "magnitude",
      "reversibility"
    ]
  }
}

Other punctuation rules

  1. PUN-001 Terminate complete sentences IF a prose sentence is complete, THEN end it with a mark matching statement, direct question, or strong exclamation ELSE keep it joined to its governing structure. Hard constraint
  2. PUN-002 No comma splice IF two independent clauses are joined only by a comma, THEN add a coordinator, use a semicolon, or make two sentences ELSE retain. Hard constraint
  3. PUN-003 Comma before coordinating conjunction IF a coordinating conjunction joins two independent clauses, THEN place a comma before it unless the clauses are very short and unambiguous ELSE retain. Context default
  4. PUN-005 Set off nonrestrictive material IF a modifier adds nonessential information rather than identifying the referent, THEN set it off with paired punctuation ELSE do not set it off. Hard constraint
  5. PUN-006 Do not isolate restrictive material IF a modifier identifies which person or thing is meant, THEN remove punctuation that falsely marks it as optional ELSE evaluate as nonrestrictive. Hard constraint
  6. PUN-007 Serial comma follows declared style IF a series contains three or more coordinated items, THEN apply the selected serial-comma policy consistently AND add a comma when omission causes ambiguity ELSE retain. Context default
  7. PUN-008 Semicolon joins related independent clauses IF two independent clauses are closely related AND no coordinator is used, THEN a semicolon is available ELSE choose another boundary. Context default
  8. PUN-009 Semicolons clarify complex series IF list items contain internal commas, THEN separate top-level items with semicolons ELSE use commas. Context default