KB-492D

Endgame Campaign — 09 Expanded 4 Mothers Non-Runtime Dry Assembly

4 min read Revision 1
4mothersdry-assemblynon-runtimeconfig-envelopecapabilityno-double-ownershipmowmotmoitmout2026-05-28

09 — Expanded 4 Mothers Non-Runtime Dry Assembly

Verdict: COHERENT and closer to live substrate than before. This dry assembly now binds to committed live objects: 4 draft factory rows (governance_registry), the capability jsonb matrix, assembly.* domains, and 9 dormant mother.* event types. No runtime, no generation, no UI, no queue execution.

1. Substrate now live (vs prior paper-only)

  • Factory identity: GOV-MOW/MOT/MOIT/MOUT (draft) — real rows.
  • Capability matrix: real capability jsonb per factory (can_create / can_reference / must_not_own).
  • Output domains: assembly.workflow/.task/.input/.output — real dot_domains.
  • Event taxonomy: mother.* (9, dormant) — real event_type_registry rows.

2. Per-Mother config envelopes (dry — no runtime)

MOW (Mother of Workflows) — output_target workflows

  • can_create: workflows; can_reference: tasks, input_form_registry, design_templates, IU; must_not_own: all referenced.
  • input contract: a workflow spec (IU refs + task refs). output contract: a workflows row (proposed). event contract: mother.config.createdmother.output.created | mother.output.failed. governance: proposal → mother.proposal.created → human approve.

MOT (Mother of Tasks)tasks

  • can_create: tasks; can_reference: IU, field_registry, workflows; must_not_own: workflows, IU, design_templates.
  • output: a tasks row (proposed); references workflows but never owns them (no double ownership).

MOIT (Mother of Input Templates)input_form_registry

  • can_create: input_form_registry, field_registry; can_reference: IU, design_templates; must_not_own: workflows, tasks, design_templates.
  • Depends on G1 (input_form_registry/field_registry tables don't exist yet) — config valid, production blocked until G1.

MOUT (Mother of UI/Output Templates)design_templates

  • can_create: design_templates; can_reference: IU, input_form_registry; must_not_own: workflows, tasks, input_form_registry.

3. Cross-cutting contracts

  • Input: all Mothers read IU via fn_iu_subtree / v_kg_edges_all (read-only); never mutate IU.
  • Output: each writes exactly one output family as a proposal, never active, never another Mother's family.
  • Event: lifecycle = factory.registeredconfig.createdoutput.created/output.failed; governance = proposal.createdproposal.approved/rejected; gating = governance.blocked/unblocked. All dormant.
  • Governance: activation + every output requires human Điều 32 (G3); roles per G2 (doc 04).
  • KG usage: Mother outputs relate to source IU via iu_relation (derived_from/contains) once the vocab + DOT enrichment land (doc 06).

4. No-double-ownership (live-proven, doc 02 §3)

Pairwise can_create disjoint; per-row can_create ∩ must_not_own = ∅. The 4 envelopes are mutually exclusive on creation and reference-only on everything else. Điều 7 Assembly-First holds at the data level, not just on paper.

5. What's still paper (blocks runtime)

  • G1 (MOIT/MOUT output tables), G3 (proposal certification), G2 (human roles), Điều 45 enactment + job substrate (executor_class/retry_policy/idempotency_key absent). Until all clear, the assembly is config-describable but not executable.
Back to Knowledge Hub knowledge/dev/reports/architecture/endgame-iu-pilot-to-4mothers-readiness-campaign-2026-05-28/09-expanded-dry-assembly.md