Introducing BitBundles

Human-curated narrative groupings of SME knowledge.
The story layer on top of atomic expert insights.

SMEs don’t think in atoms.
They think in stories.

An SMEbit says: “Material 638876A has the wrong description.”
Another says: “Orphan materials hide financial exposure.”
A third says: “The OR tracks implants on paper.”

Individually useful. But together they tell a bigger story:
the material data foundation is fragile, and each gap amplifies the next.

A BitBundle is a narrative container

Narrative
A written story explaining why these SMEbits belong together and what they collectively reveal.
Curated
Someone maintains it — chooses what belongs, writes the story, keeps it current. Named and credited.
Opinionated
Two curators may bundle the same SMEbits differently. That’s not a conflict — it’s a feature.
Metadata-Only
No SQL, no verdicts, no computation. BitBundles organize knowledge, not evaluate it.

What a BitBundle is not

Concept What it does Executable?
SMEbit Atomic expert observation or check Optional (Level 1)
BitBundle Narrative grouping of SMEbits No — pure metadata
Hypothesis Testable business question with evidence scoring Yes — SQL verdicts
Assessment Algorithmic health score from probe findings Yes — SQL aggregation
Tag Flat label for filtering No

Tags are anonymous and flat. Bundles have a curator, a narrative, ordered membership, and a lifecycle.

The m:n Relationship

One SMEbit, many bundles. One bundle, many SMEbits.
SMEbits are independent. BitBundles depend on SMEbits — never the reverse.

SMEbits live independently — bundles are an optional layer

◆ Material Data Quality

  • Wrong description (638876A)
  • Orphan material investigation
  • OR paper tracking

◆ OR Workflow Gaps

  • OR paper tracking
  • CC format change
  • Midnight case split

“OR paper tracking” belongs in both bundles. Forcing it into one loses context.
Most SMEbits will never belong to any bundle — and that’s fine.

Same pattern as every compiler

bb_*.yaml
curated bundles
bitbundlecheck.py
validate + cross-ref
bitbundlecompile.py
generate SQL
dbt build
tag:smebit
2
Generated tables
registry + memberships
15
Registry columns
tri-lingual metadata
6
Membership columns
notes + sort order

A BitBundle in 30 lines

bitbundle_id: bb_zeta_material_data_quality version: "1.0.0" curator: name: "Marie-Claire Dubois" role: "Leiterin Materialwirtschaft, SZO" date: 2026-03-02 scope: tenant_id: hospital_zeta title: en: "Material Master Data Quality at SZO" de: "Materialstammdaten-Qualitaet am SZO" narrative: en: | The material master data at SZO has several known quality issues that compound each other... smebits: - smebit_id: smebit_zeta_material_638876a_wrong_description note: "Wrong descriptions lead to price validation failures" - smebit_id: smebit_orphan_material_investigation - smebit_id: smebit_zeta_or_paper_tracking status: active

Three New Views

List page • Detail page • Cross-references on SMEbit detail

Navigable from both directions

◆ BitBundle → SMEbits

  • Full narrative text
  • Curator card (name, role, date)
  • Ordered member list
  • Per-member curator notes
  • Category + verdict badges
  • Click through to SMEbit detail

❖ SMEbit → BitBundles

  • “Part of” section on detail page
  • Linked bundle titles
  • Click through to bundle detail
  • Tri-lingual display
  • Sidebar nav with ◆ icon
  • No bundle? No section shown

Why this shape, not another

Decision Choice Rationale
Not executable Metadata-only That’s what hypotheses are for
Flat, not nested No hierarchy Nesting creates taxonomies — premature
m:n, not 1:n One SMEbit, many bundles Knowledge belongs to multiple stories
Cross-tenant scope.tenant_id: null System knowledge spans hospitals
dbt tag smebit (existing) Builds automatically, no rebuild.sh changes
Note field String or dict Pragmatic: English-only or full tri-lingual

Where BitBundles sit

BitBundles
narrative groupings
SMEbits
atomic knowledge
Probes
findings
Hypotheses
verdicts
Diagnoses
root causes

SMEbits anchor to the analytical pyramid (probes, hypotheses) through optional links.
BitBundles sit alongside, providing narrative — not computation.

An SMEbit is knowledge.
A BitBundle is narrative.

The difference between a list of facts and a story
is someone who decided what belongs together and why.