{
  "code": "S110",
  "name": "Workflow board",
  "shape": "workflow-board",
  "family": "Inputs and interaction",
  "fits": "Three named workflow lanes with compact category/title cards and visible lane counts.",
  "use_when": "Where is each work item in the process?",
  "slots": [
    {
      "name": "lanes",
      "holds": "An actual finite workflow with unambiguous state labels",
      "budget": "3 lanes"
    },
    {
      "name": "cards",
      "holds": "Real work items and current states, or labelled examples",
      "budget": "6 example cards"
    },
    {
      "name": "title",
      "holds": "Purpose and storage/handling limits",
      "budget": "under 12 words"
    }
  ],
  "columns": 3,
  "density": "standard",
  "surface": "paper",
  "works_on": [
    "page",
    "deck"
  ],
  "library": "Cult UI",
  "dir": "S110-workflow-board",
  "semantic": {
    "audience_question": "Which lane currently contains each work item?",
    "intent": "Inspect a finite workflow and understand the current local card state.",
    "reasoning_relation": "work item and workflow state",
    "message_pattern": "Three named workflow lanes with compact category/title cards and visible lane counts.",
    "required_content": [
      "A finite workflow with three unambiguous states and a rule for entering each.",
      "Six bounded work items with current state; categories may describe work type.",
      "A title naming the workflow and a truthful storage/reset disclosure."
    ],
    "narrative_positions": [
      "utility interaction",
      "reference"
    ],
    "requires_before": [
      "Define the workshop and who decides that a task is reviewed."
    ],
    "enables_after": [
      "Discuss the blocked tasks, next owners or a real tool for persistent coordination."
    ],
    "slot_roles": {
      "title": "Names whose work is being tracked and the handling limit of this example.",
      "lanes": "Three mutually exclusive states of one workflow, ordered by progress. Each lane label must match every move-menu option.",
      "cards": "Six actual tasks or clearly labelled fictional examples. Each must be in the lane that describes its current state; a category is not a status."
    },
    "avoid_when": [
      "A dated roadmap or dependency diagram.",
      "A production task tracker requiring durable history, permissions or shared updates."
    ],
    "layout_specific_contract": "Three named workflow lanes with compact category/title cards and visible lane counts.",
    "variation_rule": "Read the selected markup and option source before adapting; maintain honest state and keyboard equivalents.",
    "provenance": {
      "basis": "Captured source arrangement and independent native adaptation",
      "review": "Facet model-authored guidance for Nic-authorized catalogue intake, 2026-10-10",
      "corpus_evidence_status": "not established",
      "guide": "../SEMANTICS.md"
    },
    "reader_outcome": "Inspect a finite workflow and understand the current local card state.",
    "matching": {
      "audience_question": "Which lane currently contains each work item?",
      "reader_outcome": "Inspect a finite workflow and understand the current local card state.",
      "reasoning_relation": "work item and workflow state",
      "content_shape": {
        "composition": "Three named workflow lanes with compact category/title cards and visible lane counts.",
        "selected_state": "Three named workflow lanes with compact category/title cards and visible lane counts.",
        "density": "standard",
        "columns": 3,
        "column_note": "Base metadata only; selected option can replace the base geometry."
      },
      "required_slots": [
        {
          "name": "lanes",
          "reader_question": "What does this distinct step, state, scenario or observation contribute?",
          "semantic_role": "Three mutually exclusive states of one workflow, ordered by progress. Each lane label must match every move-menu option.",
          "content_unit_count": {
            "min": 3,
            "max": 3,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · lanes · An actual finite workflow with unambiguous state labels]",
          "layout_budget": {
            "authored": "3 lanes",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "lanes",
            "occurrences": 1,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              86
            ]
          }
        },
        {
          "name": "cards",
          "reader_question": "What specific quantity or comparable member supports the governing point?",
          "semantic_role": "Six actual tasks or clearly labelled fictional examples. Each must be in the lane that describes its current state; a category is not a status.",
          "content_unit_count": {
            "min": 6,
            "max": 6,
            "basis": "authored composition members where a repeated group is specified; otherwise one named slot; not a required amount of evidence"
          },
          "placeholder": "[REAL CONTENT · cards · Real work items and current states, or labelled examples]",
          "layout_budget": {
            "authored": "6 example cards",
            "policy": "Working composition guidance: preserve scope and qualification; change layout rather than truncate the argument."
          },
          "markup": {
            "slot": "cards",
            "occurrences": 6,
            "annotation_status": "present",
            "visibility_status": "not asserted from static parsing",
            "sample_word_counts": [
              14,
              13,
              13,
              13,
              13,
              13
            ]
          }
        },
        {
          "name": "title",
          "reader_question": "Which lane currently contains each work item?",
          "semantic_role": "Names whose work is being tracked and the handling limit of this example.",
          "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 · Purpose and storage/handling limits]",
          "layout_budget": {
            "authored": "under 12 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": [
              5
            ]
          }
        }
      ],
      "rejection_constraints": [
        "Example cards presented as the live board, or local moves implying saved shared state.",
        "Representing example cards as actual project commitments or implying persistence."
      ],
      "option_guidance": {
        "option": "default",
        "composition_delta": "Three named workflow lanes with compact category/title cards and visible lane counts.",
        "semantic_change": "retains base content relationship; changes presentation or disclosure",
        "matching_instruction": "Select S110 default when the supplied material answers “Which lane currently contains each work item?” through work item and workflow state. Respect this state: Three named workflow lanes with compact category/title cards and visible lane counts."
      },
      "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": [
          "c7cde0210b65bf7b9ae71f72e32b2f0f43dadf1d6ef03cc128a6ea9f740b3732"
        ],
        "source_export": "private source images remain outside this draft site",
        "markup_sha256": "09926b01fecbd79bc48a5f014d895e80abfab35c93ed7767e9b49e519d436690",
        "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": [
      "Example cards presented as the live board, or local moves implying saved shared state.",
      "Representing example cards as actual project commitments or implying persistence."
    ],
    "markup_inventory": {
      "file": "spread.html",
      "sha256": "09926b01fecbd79bc48a5f014d895e80abfab35c93ed7767e9b49e519d436690",
      "method": "static lxml markup plus authored option description; no rendered-visibility claim",
      "all_markup_slot_counts": {
        "title": 1,
        "lanes": 1,
        "cards": 6
      },
      "slot_evidence": {
        "title": [
          {
            "tag": "h1",
            "classes": "cult-heading",
            "sample_word_count": 5,
            "repeated_children": 0
          }
        ],
        "lanes": [
          {
            "tag": "div",
            "classes": "workflow-board",
            "sample_word_count": 86,
            "repeated_children": 3
          }
        ],
        "cards": [
          {
            "tag": "article",
            "classes": "workflow-card",
            "sample_word_count": 14,
            "repeated_children": 3
          },
          {
            "tag": "article",
            "classes": "workflow-card",
            "sample_word_count": 13,
            "repeated_children": 3
          },
          {
            "tag": "article",
            "classes": "workflow-card",
            "sample_word_count": 13,
            "repeated_children": 3
          },
          {
            "tag": "article",
            "classes": "workflow-card",
            "sample_word_count": 13,
            "repeated_children": 3
          },
          {
            "tag": "article",
            "classes": "workflow-card",
            "sample_word_count": 13,
            "repeated_children": 3
          },
          {
            "tag": "article",
            "classes": "workflow-card",
            "sample_word_count": 13,
            "repeated_children": 3
          }
        ]
      },
      "option_selectors": [],
      "linked_implementation": [
        {
          "file": "../spreads.css",
          "sha256": "32da94472b0c9131e4d5dae7d5bf0498b09202a9e66294b4e4f23e6ddfbf37ba"
        },
        {
          "file": "../cult-compositions.css",
          "sha256": "60b8f53285fa1744a3d11eed0ebdeeaea517f5da2b8789cc799a943f21cb3012"
        },
        {
          "file": "../spread.js",
          "sha256": "3d99948b83f750bd4ae95dac08e3e50a395de7c149c90a6f1a1c0ea36a2634a4"
        },
        {
          "file": "../cult-compositions.js",
          "sha256": "45b2e1a623a2e1eb56f5aa8cd1b295c9765a0965117852e5dd3cb585f3437d4c"
        }
      ]
    },
    "variations": {},
    "narrative_profile": {
      "central_point": "Each work item belongs to one clearly defined state, so the audience can see what is pending, underway and reviewed.",
      "communication_job": "Make the current state of a small workflow inspectable and let a reader rehearse moving an item between states.",
      "audience_value": "Provides orientation and operational reassurance about where work stands. It answers “What still needs attention?” without claiming that a card movement proves work was done or saved.",
      "reading_path": [
        "Read the title and handling note to learn whether this is a live system or a temporary example.",
        "Read the lane names left to right as state definitions, not a calendar or priority ranking.",
        "Inspect the six cards within their current lanes; labels identify the work, while lane membership identifies status.",
        "Move a card only when its state changes; counts summarize membership and do not measure effort or completion quality."
      ],
      "adaptation": {
        "required_inputs": [
          "A finite workflow with three unambiguous states and a rule for entering each.",
          "Six bounded work items with current state; categories may describe work type.",
          "A title naming the workflow and a truthful storage/reset disclosure."
        ],
        "slot_guidance": {
          "title": "Names whose work is being tracked and the handling limit of this example.",
          "lanes": "Three mutually exclusive states of one workflow, ordered by progress. Each lane label must match every move-menu option.",
          "cards": "Six actual tasks or clearly labelled fictional examples. Each must be in the lane that describes its current state; a category is not a status."
        },
        "can_change": [
          "Task wording, category labels and state names when the workflow remains finite and consistent.",
          "The initial distribution of cards, with matching counts and move-menu selections."
        ],
        "must_survive": [
          "One card belongs to exactly one lane; counts reflect actual membership.",
          "The move menu remains usable alongside dragging.",
          "This implementation stores changes only in the page and resets on reload; never imply a shared or persistent task service.",
          "State transitions need human or system criteria; moving a card is not completion evidence."
        ]
      },
      "worked_example": {
        "fictional": true,
        "scenario": "Fictional Cedar is preparing a repair workshop. This is a disposable planning demonstration, not the cooperative’s real task system.",
        "slot_fills": {
          "title": "Cedar workshop preparation — temporary example",
          "lanes": [
            "Backlog",
            "In progress",
            "Reviewed"
          ],
          "cards": [
            "Venue · example: Confirm the library room — Backlog",
            "Materials · example: Count spare plugs — Backlog",
            "Access · example: Check step-free entry — Backlog",
            "Guide · example: Draft the safety checklist — In progress",
            "Training · example: Review volunteer briefing — In progress",
            "Record · example: Save the agreed workshop date — Reviewed"
          ]
        },
        "reasoning": "Room confirmation, stock count and access inspection are discrete tasks; their lane tells the reader whether work has started or passed review. None becomes a chronological milestone merely because it sits farther right.",
        "qualification": "Cards and status are fictional. This browser example resets on reload and has no team synchronisation, durable history or backend completion checks."
      },
      "narrative_fit": {
        "before": "Define the workshop and who decides that a task is reviewed.",
        "after": "Discuss the blocked tasks, next owners or a real tool for persistent coordination.",
        "good_uses": [
          "A small workflow demonstration.",
          "A workshop conversation about current state and handoffs."
        ],
        "poor_fits": [
          "A dated roadmap or dependency diagram.",
          "A production task tracker requiring durable history, permissions or shared updates."
        ]
      },
      "evidence": {
        "observations": [
          "Viewed source.webp: three status lanes hold six cards in a 3/2/1 distribution, with category and task labels.",
          "Current HTML has three lanes, six cards, a move selector per card, lane counts and an explicit reload-reset message."
        ],
        "interpretations": [
          "Lane membership represents current state; it does not by itself express task priority, duration or causal dependency."
        ],
        "not_verified": [
          "The source author’s intent, effectiveness with an audience and historical claims have not been independently verified.",
          "No proposal archive or corpus validation was performed."
        ],
        "references": [
          "02_product/spreads/S110-workflow-board/source.webp",
          "02_product/spreads-semantics-2026-10-13/dist/S110-workflow-board/spread.html",
          "02_product/spreads-semantics-2026-10-13/dist/S110-workflow-board/spread.json",
          "https://www.cult-ui.com/docs/components/kanban-board"
        ]
      },
      "review": {
        "status": "reviewed",
        "basis": "Inspected retained source capture, current HTML and selected matching contract; reviewed semantic roles and fictional adaptation, not persuasion or source facts."
      },
      "variation_relationship": "base"
    }
  },
  "behaviour": {
    "script": "../cult-compositions.js",
    "record": "motion-native.json",
    "reduced_motion": "Complete readable content, local controls retained; optional terminal typing skipped.",
    "no_script": "Complete authored content; native radio/input/select controls remain. No local confirmation, movement, tabs or playback without script.",
    "network": "Local preview only. No submission, command execution or file transmission.",
    "limits": "Volatile browser state; reload restores authored examples."
  },
  "options": [],
  "also_seen_in": [],
  "source": {
    "ref": "Cult UI Kanban Board",
    "url": "https://www.cult-ui.com/docs/components/kanban-board"
  }
}
