02 — Candidate Registry Survey for 4 Mothers (live, 2026-05-28)
02 — Candidate Registry Survey for 4 Mothers (live)
The prior bundle recommended running this survey. This bundle ran it against live directus. The Candidate Registry (CR) is the set of registries the 4 Mothers (MOIT inputs, MOUT outputs, MOT transforms, MOW workflow) need before they can be industrial object factories. This is a survey only — no 4 Mothers implementation, no table creation.
The 4 Mothers, for reference:
- MOIT — Mother of Inputs (input forms / ingestion surfaces).
- MOUT — Mother of Outputs (output tables / published surfaces).
- MOT — Mother of Transforms (DOT functions / executors).
- MOW — Mother of Workflow (workflow steps / human-org tasking & UI).
1. Survey method
to_regclass('public.<name>') for existence (null = absent), information_schema.columns for shape, count(*) for rows. Read-only role; zero mutation.
2. Named Candidate Registries — live status
| Registry | Status | Rows | Owner law | Serves | Recommendation |
|---|---|---|---|---|---|
field_registry |
ABSENT (null) | — | Đ36/Đ28 | all 4 (field-level contracts) | CREATE (CR build) |
input_form_registry |
ABSENT | — | Đ28/Đ7 | MOIT | CREATE |
output_table_registry |
ABSENT | — | Đ36 | MOUT | CREATE |
dot_function_registry |
ABSENT | — | Đ35 | MOT | CREATE (or formalize from dot_iu_command_catalog) |
task_template_registry |
ABSENT | — | Đ28/Đ7 | MOW | CREATE |
tier_registry |
ABSENT | — | Đ37 | governance tiering | CREATE |
All six are genuinely paper — confirmed null via to_regclass. This is the dominant 4-Mothers blocker (not a wiring gap).
3. Adjacent registries that DO exist (reuse / extend candidates)
| Registry | Rows | Shape highlights | Reuse for |
|---|---|---|---|
collection_registry |
168 | collection contracts | MOUT output-collection backbone; extend, don't duplicate |
collection_field_standards |
(present) | field standards per collection | extend toward field_registry rather than create cold |
design_templates |
1 | Điều 28 template row | MOW/MOIT UI surfaces must each be a template row; extend (only 1 exists) |
governance_registry |
5 | code/gov_type/output_target/domain/created_by_law | 4 Mothers must register here as gov_type='factory' (none do yet); extend |
birth_registry |
876047 | Đ0-G industrial birth ledger | every Mother-output binds here; reuse |
binding_registry |
0 | (empty) | iu_process_binding analogue; reuse/populate |
event_type_registry |
31 | event contracts (no iu.* types yet) |
MOT/MOW event contracts; extend |
workflows / workflow_steps |
2 / 70 | step graph | MOW backbone; extend |
iu_collection_template_registry (+version, +instance_lineage) |
(present) | IU collection templating | MOUT/MOW templating; reuse |
table_registry |
21 | table contracts | output_table_registry analogue; extend |
measurement_registry / normative_registry / derived_objects_registry / universal_rule_registry |
142 / 47 / 7 / 10 | domain object registries | reference; reuse where the Mother's domain overlaps |
dot_iu_command_catalog |
52 | DOT command catalog | the de-facto dot_function_registry for IU — formalize/promote rather than build a second one |
4. Process-layer tables (also paper)
role_in_process, iu_process_binding, assembly_slot_registry — ABSENT. These matter for MOW (role-in-process) and assembly-first (Điều 7) but not for the IU pilot. species_collection_map — present (supports Đ29 species mapping).
5. Mapping CR → 4 Mothers
| Mother | Primary CR need | Existing substrate to extend | Net-new |
|---|---|---|---|
| MOIT (inputs) | input_form_registry, field_registry |
design_templates, collection_field_standards |
input_form_registry |
| MOUT (outputs) | output_table_registry, field_registry |
collection_registry (168), table_registry (21), iu_collection_template_registry |
output_table_registry |
| MOT (transforms) | dot_function_registry |
dot_iu_command_catalog (52), event_type_registry |
formalize dot_function_registry from catalog |
| MOW (workflow) | task_template_registry, role_in_process, human-org roles |
workflows/workflow_steps, design_templates |
task_template_registry + human-org-role law (doc 07) |
| (all) | tier_registry |
governance_registry |
tier_registry + factory rows |
6. Key findings
- Reuse-first is viable. Most Mother needs map onto existing registries (collection_registry, table_registry, dot_iu_command_catalog, workflows, birth_registry, governance_registry). The genuinely net-new tables are:
input_form_registry,output_table_registry,task_template_registry,tier_registry, and a formalizedfield_registry/dot_function_registry. dot_iu_command_catalog(52) already is the IU transform registry. Promote/alias it rather than building a paralleldot_function_registry— avoids a second SoT.- No factory is registered.
governance_registryhas 0 rows ofgov_type='factory'and nooutput_targetset. 4 Mothers must be registered as Đ37 factories withoutput_target(user/system/assembly) before they can lawfully birth objects. - Human-org roles are absent from governance (see doc 07) — blocks MOW specifically.
7. Blocker status
- 4 Mothers: BLOCKED on CR build (6 registries) + factory registration + human-org-role law + P-pub block_new + production review_decision.
- IU pilot: NOT blocked by CR — it operates on existing IU substrate.
8. Recommendation
Run IU_CANDIDATE_REGISTRY_BUILD_DESIGN (doc 08 prompt #2) as a design-first macro: design the 6 registries as additive tables, mapping each to its owner law and to the existing substrate it extends, with a reuse-vs-create decision per field. Do not implement until that design is reviewed. Promote dot_iu_command_catalog to satisfy dot_function_registry rather than create cold.