معماری چندکسب‌وکاری، تجاری و تجارت الکترونیک · فصل ۵ — Editorial Cell، SEO، QA، Approval و Onboarding · 256

Single-source Content Model

Design a single-source content model that separates canonical reusable entities from channel presentations, gives reusable fragments stable identity and version, models references explicitly, validates context compatibility and records downstream impact before a canonical change is promoted. می‌تواند «Single-source Content Model» را برای یک workflow محدود با state/contract/approval و verification مناسب طراحی کند.

Single-source Content Model — fa-IR

Lesson summary

Design a single-source content model that separates canonical reusable entities from channel presentations, gives reusable fragments stable identity and version, models references explicitly, validates context compatibility and records downstream impact before a canonical change is promoted.

می‌تواند «Single-source Content Model» را برای یک workflow محدود با state/contract/approval و verification مناسب طراحی کند.

This lesson produces

می‌تواند «Single-source Content Model» را برای یک workflow محدود با state/contract/approval و verification مناسب طراحی کند.

Who it is for

Foundation

Use a field map, one worked scenario and explicit state vocabulary before independent construction.

Repair

Identify the failed evidence dimension, use the smallest mutated fixture and rerun only the affected gate.

Experienced

Compress definitions; require trade-off defense, counterexample analysis and changed-context transfer.

Prerequisites

1) Why is copying one claim into many channels not single-source?

Imagine a warranty sentence copied into a product page, sales PDF, app, email and social template. When the policy changes, some copies are edited and others are not. The problem is not only incomplete updates: the team can no longer prove which text is canonical, where each variant came from, or which consumers must be revalidated when the central fact changes.

In this lesson we build Single-source Content Graph Contract v1: a model that separates canonical facts from channel presentation, reuses content through references, validates consumer context and records downstream impact before a canonical change is promoted.

Central rule: single-source means one authoritative source for the fact, not identical wording in every channel.

2) Scope: what COM-015 owns and what it does not

COM-015 owns canonical entities, fragments, references, consumer context, render rules, override policy and impact sets. COM-014 owns Performance Feedback Loop and COM-016 owns Asset Provenance; those outcomes stay outside this lesson.

No live migration, production publish, billing change or tenant mutation occurs. The lab is synthetic and offline and produces a reproducible bounded decision.

3) Mental model: Canonical Entity → Fragment → Reference → Context → Render → Consumer

Each reusable fact has a canonical_entity_id and canonical_version. A reusable piece is identified by content_fragment_id. A consumer uses reference_id instead of copying the content. consumer_context and constraints are then validated, and render_rule produces only the permitted presentation transform.

casecanonical entity/versionfragment + referenceconsumer/contextrender ruleoverride policyimpact setvalidationbounded state
baselinewarranty-policy / v5frag-warranty / ref-web-01web-product / PRODUCT_DETAILFULL_TEXTDENY_LOCAL_FORKweb,pdf,emailVALIDREFERENCE_SAFE
copy instead of referencewarranty-policy / v5local copy / —landing-12 / CAMPAIGNLOCAL_TEXTUNDECLAREDunknownUNKNOWNBLOCKED_DUPLICATED_SOURCE
override without policyproduct-fact / v9frag-fact / ref-app-03mobile-app / CARDSHORTEN_80UNDECLAREDappVALIDBLOCKED_OVERRIDE_POLICY
canonical changelegal-notice / v3→v4frag-legal / ref-*12 consumers / MIXEDLOCKED_TEXTNO_OVERRIDEpartialPARTIALBLOCKED_IMPACT_GAP
transfershipping-rule / v7frag-shipping / ref-new-channew-channel / COMPACT_CARDSHORTEN_PRESERVE_THRESHOLDNO_OVERRIDEnew-channel addedVALIDREFERENCE_SAFE

If the reference, context, override policy or impact evidence is invalid, successful promotion is not allowed.

4) What Contentful content models and references establish

Contentful describes a content model as content types and fields, with content types linkable through reference fields. Its References guidance explicitly positions references as reuse instead of copy/paste and explains that edits to a referenced entry can propagate to entries where it is reused.

That is a FACT about one CMS implementation. It does not authorize MAKNOW to copy Contentful's exact API, permissions or lifecycle.

5) What DITA conref teaches about context

OASIS DITA provides conref mechanisms for content reuse and, during processing, compares context restrictions so resolved reused content remains valid in its target context. The important lesson is that “a reference exists” is not equivalent to “the reference is valid here.”

MAKNOW generalizes that idea: a reusable fragment must be validated for its consumer context. DITA does not prescribe our commercial architecture.

6) Canonical identity and version: the source of truth needs an exact address

canonical_entity_id is the logical identity and canonical_version identifies the exact version of the fact. A filename, slug or channel location cannot substitute for canonical identity. If a warranty fact changes from v4 to v5, references and impact analysis must reveal which consumers still render v4 or require revalidation.

field_schema also distinguishes structured facts, regulated text and flexible marketing presentation because each class has different rendering freedom.

7) Reference instead of copy: the defining boundary

If a consumer copies the canonical claim into a local field, a second source of truth has been created—even if both values are identical today. reference_id must connect the consumer to the intended content_fragment_id and version.

If a real variant is required, represent it through a render rule or an explicit override policy, not a silent fork.

8) Render Rule: presentation may differ without silently forking meaning

A mobile channel may need shorter presentation while a legal PDF needs the full wording. That does not violate single-source. render_rule may transform length, format, field order or layout as long as semantic and regulated-text constraints remain valid.

For example, shortening “free shipping on orders above €50” to “free shipping” changes the fact, so BLOCKED_RENDER_DRIFT is safer than acceptance.

9) Override Policy: an exception without a contract is organized drift

Sometimes a consumer needs different wording. If override_policy is not explicit, the team cannot create a local override and still call the system single-source. The policy should define authority, scope, expiry and whether canonical updates invalidate the exception.

Even an allowed override is not a new hidden source of truth; it is a governed and traceable exception.

10) Impact Set: know what can break before changing canonical content

When a canonical field changes, impact_set enumerates affected consumers. Impact is more than “where is this referenced?”; it should identify which context and render rules require revalidation.

If the canonical version changed but the impact set is incomplete, BLOCKED_IMPACT_GAP is safer than a superficially successful promotion.

11) Baseline and important failure modes

Baseline: entity and version are explicit, fragment and reference resolve, context is compatible, rendering preserves meaning, no undeclared override exists, and the impact set is complete. The bounded state can be REFERENCE_SAFE.

Failure 1: a consumer copies the claim and has no reference → BLOCKED_DUPLICATED_SOURCE.

Failure 2: an override is requested without policy → BLOCKED_OVERRIDE_POLICY.

Failure 3: canonical version changes without a complete impact set → BLOCKED_IMPACT_GAP.

Failure 4: a fragment is reused in an incompatible context → BLOCKED_CONTEXT.

12) Lab and transfer: a new channel needs shorter presentation

COM-015-LAB1 contains eight offline fixtures. The learner must derive state from visible evidence rather than preserve the baseline answer.

Transfer: a new channel needs a shorter presentation of a canonical product fact. Do not copy and shorten the claim. Reference the same canonical fragment, validate the new context and constraints, create a shortening render rule, verify meaning preservation and include the new consumer in future impact analysis.

13) Bounded decision, freshness and what this lesson does not prove

This lesson does not prove that one vendor is the “best CMS” and it performs no live publish. Its output only determines whether a consumer can use a canonical source traceably under the current evidence package or must remain HOLD/BLOCKED.

Contentful guidance is vendor-current and should be rechecked by 2026-12-31 or after material changes in model/reference semantics. OASIS DITA 1.3 conref is foundational. Identity, override policy, impact gates and the state vocabulary are MAKNOW DESIGN, not Contentful or OASIS mandates.

Assessment

There is no answer key in this lesson pack; answer it yourself and mark honestly. "Needs review" sends the lesson to your review queue.

Q1 retrieval

Why does single-source not require identical wording in every channel?

lesson ✗AI ✗notes ✗

Q2 diagnosis

A consumer copied a canonical warranty claim into a local field and has no reference. What state should result and what is the minimal repair?

lesson ✗AI ✗notes ✗

Q3 transfer

A new channel requires a shorter presentation of a canonical product fact. Design the reference, context check, render rule and impact behavior without creating a second source of truth.

lesson ✗AI ✗notes ✗
Assessment rubric

A sufficient answer must: (1) preserve COM-015 scope; (2) bind consumers to explicit canonical identity/version through references; (3) validate consumer context and render semantics; (4) require explicit override policy and impact evidence; (5) preserve typed HOLD/BLOCKED states; and (6) recompute transfer evidence rather than copy the baseline decision.

References & freshness

Content models | Contentful Help Center
·
References | Contentful Help Center
·
OASIS DITA 1.3 — Content reference (conref)
·

Case studies

Lesson visuals

COM-015-SINGLE-SOURCE

Lab files

python run_checks.py را اجرا کنید. داده‌ها synthetic و آفلاین هستند. محتوای canonical را reference کنید، نه copy؛ context مقصد را validate کنید و HOLD/BLOCKED را صریح نگه دارید.