{
  "code": "S32",
  "name": "Stories with a rail",
  "shape": "story-pair",
  "family": "Lists and comparisons",
  "fits": "Two story angles for one audience in two equal cards (one light, one plum), with the audience, a section title and an illustration on a left rail.",
  "use_when": "Two parallel story pitches for the same reader, each naming a headline, a premise and where it runs, when the audience itself needs to be named and pictured.",
  "slots": [
    {
      "name": "segment",
      "holds": "the audience, uppercase mono, top of the rail",
      "budget": "1 word"
    },
    {
      "name": "title",
      "holds": "section title, large, under the segment",
      "budget": "under 4 words"
    },
    {
      "name": "illustration",
      "holds": "illustration anchored to the foot of the rail",
      "budget": "4:3"
    },
    {
      "name": "stories",
      "holds": "2 x (\"Story\" pill, headline, premise, one angle line, \"runs in\" at the foot); first card light, second plum",
      "budget": "headline under 12 words, premise under 55 words"
    }
  ],
  "columns": 3,
  "density": "dense",
  "surface": "mint",
  "works_on": [
    "deck"
  ],
  "library": "Hoffman",
  "dir": "S32-story-engagement",
  "semantic": {
    "audience_question": "How do these two story angles serve this particular audience?",
    "intent": "Evaluate a pair of story propositions against one explicit audience context.",
    "reasoning_relation": "audience-framed story comparison",
    "message_pattern": "[Angle]: [premise], [audience relevance], [evidence] and [route to publication].",
    "required_content": [
      "One defined audience and its information need.",
      "Two distinct story angles with support or a reporting plan.",
      "Appropriate proposed destinations."
    ],
    "narrative_positions": [
      "context",
      "explanation",
      "evidence: choose only when the page supports the surrounding argument"
    ],
    "requires_before": [
      "Establish the audience’s needs and the common strategic choice."
    ],
    "enables_after": [
      "Translate selected angles into a schedule, reporting brief or sample story."
    ],
    "slot_roles": {
      "segment": "The single audience these stories serve.",
      "title": "The programme or type of engagement.",
      "illustration": "Illustrate the audience situation without pretending it is source evidence.",
      "stories": "Two pitches: headline, premise, angle and proposed destination. Different card colours distinguish entries; they do not establish a recommendation."
    },
    "avoid_when": [
      "Stories for unrelated audiences",
      "A headline inventory without premises"
    ],
    "layout_specific_contract": "Two story angles for one audience in two equal cards (one light, one plum), with the audience, a section title and an illustration on a left rail.",
    "provenance": {
      "basis": "interpretation of the existing layout and slot contracts",
      "review": "Tessel model-authored guidance; implementation approved by Nic, 2026-10-10",
      "corpus_evidence_status": "not yet established",
      "guide": "../SEMANTICS.md"
    },
    "reader_outcome": "Evaluate a pair of story propositions against one explicit audience context.",
    "matching": {
      "audience_question": "How do these two story angles serve this particular audience?",
      "reader_outcome": "Evaluate a pair of story propositions against one explicit audience context.",
      "reasoning_relation": "audience-framed story comparison",
      "content_shape": {
        "composition": "Two story angles for one audience in two equal cards (one light, one plum), with the audience, a section title and an illustration on a left rail.",
        "selected_state": "Two story angles for one audience in two equal cards (one light, one plum), with the audience, a section title and an illustration on a left rail.",
        "density": "dense",
        "columns": 3,
        "column_note": "Base metadata only; selected option can replace the base geometry."
      },
      "required_slots": [
        {
          "name": "segment",
          "reader_question": "What kind of content or argument section am I reading?",
          "semantic_role": "The single audience these stories serve.",
          "content_unit_count": {
            "min": 1,
            "max": 1,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · segment · the audience, uppercase mono, top of the rail]",
          "layout_budget": {
            "authored": "1 word",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "segment",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              1
            ]
          }
        },
        {
          "name": "title",
          "reader_question": "How do these two story angles serve this particular audience?",
          "semantic_role": "The programme or type of engagement.",
          "content_unit_count": {
            "min": 1,
            "max": 1,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · title · section title, large, under the segment]",
          "layout_budget": {
            "authored": "under 4 words",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "title",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              2
            ]
          }
        },
        {
          "name": "illustration",
          "reader_question": "What subject, example or view must I inspect, and is it evidence or illustration?",
          "semantic_role": "Illustrate the audience situation without pretending it is source evidence.",
          "content_unit_count": {
            "min": 1,
            "max": 1,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[CLEARED IMAGE OR LABELLED ILLUSTRATION · illustration · illustration anchored to the foot of the rail]",
          "layout_budget": {
            "authored": "4:3",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "illustration",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              0
            ]
          },
          "integrity": "Clear rights and provenance, retain meaningful alt text; generated scenes illustrate and cannot prove a historical event."
        },
        {
          "name": "stories",
          "reader_question": "What does the stories contribute to this page’s reader outcome?",
          "semantic_role": "Two pitches: headline, premise, angle and proposed destination. Different card colours distinguish entries; they do not establish a recommendation.",
          "content_unit_count": {
            "min": 2,
            "max": 2,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · stories · 2 x (\"Story\" pill, headline, premise, one angle line, \"runs in\" at the foot); first card light, second plum]",
          "layout_budget": {
            "authored": "headline under 12 words, premise under 55 words",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "stories",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              110
            ]
          }
        }
      ],
      "rejection_constraints": [
        "Different audiences mixed into the two cards, or asymmetric fields that prevent comparison.",
        "A topic list with no story, invented news hooks or two versions of the same angle."
      ],
      "option_guidance": {
        "option": "default",
        "composition_delta": "Two story angles for one audience in two equal cards (one light, one plum), with the audience, a section title and an illustration on a left rail.",
        "semantic_change": "retains base content relationship; changes presentation or disclosure",
        "matching_instruction": "Select S32 default when the supplied material answers “How do these two story angles serve this particular audience?” through audience-framed story comparison. Respect this state: Two story angles for one audience in two equal cards (one light, one plum), with the audience, a section title and an illustration on a left rail."
      },
      "provenance": {
        "status": "inferred composition evidence",
        "author_intent": "not independently confirmed",
        "basis": [
          "retained source composition where available",
          "authored layout and slot contracts",
          "static implementation inspection"
        ],
        "source_visual_count": 1,
        "source_visual_sha256": [
          "38d048b6e91337d64214c372e38d98a2d7b688c249e705848d5af0ab6504c80e"
        ],
        "source_export": "private source images remain outside this draft site",
        "markup_sha256": "f7e2454ab99aa2187a70255abb8dee13dc80253b31f45669b00e66a8bdc682ec",
        "limits": [
          "Static parsing inventories authored nodes; it does not certify rendered visibility, responsive fit or interactive state.",
          "Budgets are authored layout guidance, not a content-writing limit or proof of fit.",
          "Matching guidance is a draft inference; it does not establish facts, endorsement, causation or source author intent."
        ]
      },
      "adaptation_rules": [
        "Choose by audience question, reasoning relation and required content before aesthetic preference.",
        "Supply every required semantic role; retain visible unknowns as labelled real-content placeholders.",
        "A number needs source, scope and units; a quotation needs faithful wording and attribution.",
        "Do not infer importance from area, colour, depth or movement unless the content explicitly defines that encoding.",
        "Keep colour token roles, structural objects, licences and source records; changing content does not authorize changing them."
      ]
    },
    "rejection_constraints": [
      "Different audiences mixed into the two cards, or asymmetric fields that prevent comparison.",
      "A topic list with no story, invented news hooks or two versions of the same angle."
    ],
    "markup_inventory": {
      "file": "spread.html",
      "sha256": "f7e2454ab99aa2187a70255abb8dee13dc80253b31f45669b00e66a8bdc682ec",
      "method": "static lxml markup plus authored option description; no rendered-visibility claim",
      "all_markup_slot_counts": {
        "segment": 1,
        "title": 1,
        "illustration": 1,
        "stories": 1
      },
      "slot_evidence": {
        "segment": [
          {
            "tag": "span",
            "classes": "seg",
            "sample_word_count": 1,
            "repeated_children": 0
          }
        ],
        "title": [
          {
            "tag": "h2",
            "classes": "head",
            "sample_word_count": 2,
            "repeated_children": 0
          }
        ],
        "illustration": [
          {
            "tag": "figure",
            "classes": "ph r-4x3",
            "sample_word_count": 0,
            "repeated_children": 1
          }
        ],
        "stories": [
          {
            "tag": "div",
            "classes": "pair",
            "sample_word_count": 110,
            "repeated_children": 2
          }
        ]
      },
      "option_selectors": [],
      "linked_implementation": [
        {
          "file": "../spreads.css",
          "sha256": "32da94472b0c9131e4d5dae7d5bf0498b09202a9e66294b4e4f23e6ddfbf37ba"
        },
        {
          "file": "../spread.js",
          "sha256": "3d99948b83f750bd4ae95dac08e3e50a395de7c149c90a6f1a1c0ea36a2634a4"
        }
      ]
    },
    "variations": {},
    "narrative_profile": {
      "central_point": "One audience can be served by two distinct continuing stories.",
      "communication_job": "Make the connection between an audience’s needs and the stories proposed for it.",
      "audience_value": "Perspective and explanation: shows why these angles belong in this audience’s plan, rather than simply being interesting ideas.",
      "reading_path": [
        "Read the audience rail first.",
        "Read each story’s premise and angle through that audience’s decision needs.",
        "Check the destination at each card’s foot against the audience named on the rail."
      ],
      "adaptation": {
        "required_inputs": [
          "One defined audience and its information need.",
          "Two distinct story angles with support or a reporting plan.",
          "Appropriate proposed destinations."
        ],
        "slot_guidance": {
          "segment": "The single audience these stories serve.",
          "title": "The programme or type of engagement.",
          "illustration": "Illustrate the audience situation without pretending it is source evidence.",
          "stories": "Two pitches: headline, premise, angle and proposed destination. Different card colours distinguish entries; they do not establish a recommendation."
        },
        "can_change": [
          "Audience and supporting scene.",
          "Story angles that preserve the shared audience focus."
        ],
        "must_survive": [
          "One audience anchors both stories.",
          "Angles and destinations respond to its needs.",
          "Proposed targets remain proposals."
        ]
      },
      "worked_example": {
        "fictional": true,
        "scenario": "Fictional repair cooperative proposal; all events, people and evidence are invented teaching material.",
        "slot_fills": {
          "segment": "Landlords",
          "title": "Ongoing stories",
          "illustration": "Labelled fictional illustration of a landlord and tenant arranging maintenance access.",
          "stories": [
            "A slot the tenant can trust | Premise: Repeated visits disrupt access arrangements. | Angle: Explain the checks that should precede a confirmed visit. | Runs in: proposed landlord bulletin.",
            "Repair decisions worth documenting | Premise: A decision to replace needs an understandable reason. | Angle: Show a clear record of fault, options and safety limits. | Runs in: proposed maintenance guide."
          ]
        },
        "reasoning": "Both stories address the same audience but different uncertainties: appointment reliability and defensible replacement decisions.",
        "qualification": "Fictional teaching example only. Proposed benefits and results are not verified; replace with authorised material for a real use."
      },
      "narrative_fit": {
        "before": "Establish the audience’s needs and the common strategic choice.",
        "after": "Translate selected angles into a schedule, reporting brief or sample story.",
        "good_uses": [
          "An audience-specific content programme",
          "Two continuing engagement ideas"
        ],
        "poor_fits": [
          "Stories for unrelated audiences",
          "A headline inventory without premises"
        ]
      },
      "evidence": {
        "observations": [
          "Viewed source: a named audience and supporting image occupy a rail beside two full-height story cards with target lines.",
          "Current HTML and active slot contract were inspected."
        ],
        "interpretations": [
          "The guidance interprets the layout’s communication affordances; it does not assert source-author intent."
        ],
        "not_verified": [
          "Original author intent, surrounding source sequence, sample factual claims and persuasion effects are not independently verified."
        ],
        "references": [
          "02_product/spreads/S32-story-engagement/source.webp",
          "dist/S32-story-engagement/spread.html",
          "dist/S32-story-engagement/spread.json",
          "https://github.com/neekchan/hoffman-agency-design-system/blob/main/templates/deck/Deck.dc.html"
        ]
      },
      "review": {
        "status": "reviewed",
        "basis": "Viewed retained source capture and inspected current markup/slot contract; reviewed reasoning and example mapping. This is layout-contract review, not source-intent confirmation."
      },
      "variation_relationship": "base"
    }
  },
  "options": [],
  "also_seen_in": [],
  "source": {
    "ref": "Hoffman L39 Story engagement",
    "url": "https://github.com/neekchan/hoffman-agency-design-system/blob/main/templates/deck/Deck.dc.html"
  }
}
