From c14ad7fd0b666836d7435245d9f0a3072f3eab64 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Sat, 29 Aug 2026 02:05:35 +0300 Subject: [PATCH] GEN2-001: accept owner registry and dependency rules --- architecture/architecture-registry.json | 52 +++++++++++++++++++ architecture/architecture-registry.yaml | 66 +++++++++++++++++++++++++ contracts/configuration/README.md | 7 +++ contracts/self/README.md | 9 ++++ contracts/world/README.md | 9 ++++ dev/ACTIVE_TASK.json | 4 +- 6 files changed, 145 insertions(+), 2 deletions(-) create mode 100644 contracts/configuration/README.md create mode 100644 contracts/self/README.md create mode 100644 contracts/world/README.md diff --git a/architecture/architecture-registry.json b/architecture/architecture-registry.json index 807e757..4e5c46b 100644 --- a/architecture/architecture-registry.json +++ b/architecture/architecture-registry.json @@ -179,6 +179,30 @@ "database_schema": "interaction", "boundary_class": "remote_capable", "may_depend_on": ["contracts.identity", "contracts.situation", "contracts.epistemics", "contracts.cognitive", "platform.ids", "platform.events"] + }, + "world": { + "id": "mod.world", + "owns": ["WorldObject", "WorldObjectKindDefinition", "WorldAlias", "FacetDefinition", "RelationDefinition", "IdentityResolutionCandidate", "IdentityResolutionDecision", "WorldLineage"], + "database_schema": "world", + "boundary_class": "remote_capable", + "may_depend_on": ["contracts.identity", "platform.ids", "platform.events"], + "forbidden": ["adapters.models", "adapters.temporal", "claims", "beliefs", "observations"] + }, + "configuration": { + "id": "mod.configuration", + "owns": ["SettingDefinition", "SettingAssignment", "ConfigurationRevision", "ConfigurationChangeProvenance"], + "database_schema": "configuration", + "boundary_class": "remote_capable", + "may_depend_on": ["contracts.identity", "contracts.authority", "platform.ids", "platform.events", "platform.secrets"], + "forbidden": ["secret_values", "arbitrary_key_value_without_definition"] + }, + "self": { + "id": "mod.self", + "owns": ["CompetenceAssessment", "WeaknessPattern", "DependencyAssessment", "LearningLedgerEntry", "ImprovementNeed", "SelfVersionView", "SelfEvaluationInterpretation"], + "database_schema": "self", + "boundary_class": "remote_capable", + "may_depend_on": ["contracts.capability", "contracts.epistemics", "contracts.artifact", "platform.ids", "platform.events"], + "forbidden": ["adapters.models", "tasks", "authority_grants", "code_release_switching"] } }, "platform": { @@ -244,6 +268,26 @@ "cross_owner_write": "forbidden", "cross_owner_application_join": "forbidden" }, + "runtime_topology_v2": { + "core_runtime": { + "modules": ["identity", "situation", "work", "epistemics", "capability", "artifact", "interaction", "world", "configuration", "self"] + }, + "continuity_runtime": {"modules": ["continuity"]}, + "commit_runtime": {"modules": ["authority", "commit"]}, + "cognitive_workers": {"modules": [], "role": "replaceable reasoning/context workers; no canonical ownership"}, + "supervisor_runtime": {"modules": [], "role": "release health, switch, rollback and recovery; not a semantic owner"} + }, + "storage_topology_v2": { + "postgres_cluster": "assistant_primary", + "schemas": { + "identity": "identity_role", "authority": "authority_role", "situation": "situation_role", "work": "work_role", + "epistemics": "epistemics_role", "continuity": "continuity_role", "capability": "capability_role", "commit": "commit_role", + "artifact": "artifact_role", "interaction": "interaction_role", "world": "world_role", "configuration": "configuration_role", "self": "self_role" + }, + "cross_owner_fk": "forbidden_by_default", + "cross_owner_write": "forbidden", + "cross_owner_application_join": "forbidden" + }, "invariants": [ { "id": "INV-AUTH-001", @@ -309,6 +353,14 @@ ".gitea/workflows/ci.yml", "cmd/devctl/**", "dev/ACTIVE_TASK.json", + "docs/DOMOVOY_CONSTITUTION.md", + "docs/DOMOVOY_GEN2_GAP_MAP.md", + "architecture/GEN2_TARGET_ARCHITECTURE.md", + "architecture/GEN2_CANONICAL_DATA_MODEL.md", + "development/GEN2_MIGRATION_MAP.md", + "development/GEN2_MASTER_PLAN.md", + "development/GEN2_EXECUTION_CONTRACT.md", + "development/GEN2_TASK_INDEX.md", "security/**" ], "default_feature_task_authority": { diff --git a/architecture/architecture-registry.yaml b/architecture/architecture-registry.yaml index 0c5c7a5..e7f0785 100644 --- a/architecture/architecture-registry.yaml +++ b/architecture/architecture-registry.yaml @@ -75,6 +75,30 @@ modules: boundary_class: remote_capable may_depend_on: [contracts.identity, contracts.situation, contracts.epistemics, contracts.cognitive, platform.ids, platform.events] + world: + id: mod.world + owns: [WorldObject, WorldObjectKindDefinition, WorldAlias, FacetDefinition, RelationDefinition, IdentityResolutionCandidate, IdentityResolutionDecision, WorldLineage] + database_schema: world + boundary_class: remote_capable + may_depend_on: [contracts.identity, platform.ids, platform.events] + forbidden: [adapters.models, adapters.temporal, claims, beliefs, observations] + + configuration: + id: mod.configuration + owns: [SettingDefinition, SettingAssignment, ConfigurationRevision, ConfigurationChangeProvenance] + database_schema: configuration + boundary_class: remote_capable + may_depend_on: [contracts.identity, contracts.authority, platform.ids, platform.events, platform.secrets] + forbidden: [secret_values, arbitrary_key_value_without_definition] + + self: + id: mod.self + owns: [CompetenceAssessment, WeaknessPattern, DependencyAssessment, LearningLedgerEntry, ImprovementNeed, SelfVersionView, SelfEvaluationInterpretation] + database_schema: self + boundary_class: remote_capable + may_depend_on: [contracts.capability, contracts.epistemics, contracts.artifact, platform.ids, platform.events] + forbidden: [adapters.models, tasks, authority_grants, code_release_switching] + platform: allowed_packages: - platform.ids @@ -98,6 +122,20 @@ runtime_topology_v1: modules: [] role: "replaceable cognition/context compilation workers; no canonical ownership" +runtime_topology_v2: + core_runtime: + modules: [identity, situation, work, epistemics, capability, artifact, interaction, world, configuration, self] + continuity_runtime: + modules: [continuity] + commit_runtime: + modules: [authority, commit] + cognitive_workers: + modules: [] + role: "replaceable reasoning/context workers; no canonical ownership" + supervisor_runtime: + modules: [] + role: "release health, switch, rollback and recovery; not a semantic owner" + storage_topology_v1: postgres_cluster: assistant_primary schemas: @@ -115,6 +153,26 @@ storage_topology_v1: cross_owner_write: forbidden cross_owner_application_join: forbidden +storage_topology_v2: + postgres_cluster: assistant_primary + schemas: + identity: identity_role + authority: authority_role + situation: situation_role + work: work_role + epistemics: epistemics_role + continuity: continuity_role + capability: capability_role + commit: commit_role + artifact: artifact_role + interaction: interaction_role + world: world_role + configuration: configuration_role + self: self_role + cross_owner_fk: forbidden_by_default + cross_owner_write: forbidden + cross_owner_application_join: forbidden + invariants: - id: INV-AUTH-001 property: "No external mutation without current valid authority and target/revision checks" @@ -149,6 +207,14 @@ protected_paths: - .gitea/workflows/ci.yml - cmd/devctl/** - dev/ACTIVE_TASK.json + - docs/DOMOVOY_CONSTITUTION.md + - docs/DOMOVOY_GEN2_GAP_MAP.md + - architecture/GEN2_TARGET_ARCHITECTURE.md + - architecture/GEN2_CANONICAL_DATA_MODEL.md + - development/GEN2_MIGRATION_MAP.md + - development/GEN2_MASTER_PLAN.md + - development/GEN2_EXECUTION_CONTRACT.md + - development/GEN2_TASK_INDEX.md - security/** default_feature_task_authority: diff --git a/contracts/configuration/README.md b/contracts/configuration/README.md new file mode 100644 index 0000000..1632814 --- /dev/null +++ b/contracts/configuration/README.md @@ -0,0 +1,7 @@ +# Configuration contract boundary + +Configuration owns typed and versioned `SettingDefinition` and +`SettingAssignment` records plus scoped resolution and change provenance. +Effective configuration is a derived result. Secret values never enter a +setting assignment; only a `SecretRef`/`CredentialRef` crosses the secrets +boundary into an authorized adapter or runtime. diff --git a/contracts/self/README.md b/contracts/self/README.md new file mode 100644 index 0000000..5ad317c --- /dev/null +++ b/contracts/self/README.md @@ -0,0 +1,9 @@ +# SELF contract boundary + +SELF owns evidence-backed competence, weakness, dependency, learning, and +self-evaluation records. Raw evidence remains Epistemics-owned; capability +health remains Capability-owned; tasks and development remain Work-owned; +release switching remains Supervisor/runtime-owned. + +SELF is observational/evaluative and is not a mandatory request-path +orchestrator or an authority source. diff --git a/contracts/world/README.md b/contracts/world/README.md new file mode 100644 index 0000000..441ff40 --- /dev/null +++ b/contracts/world/README.md @@ -0,0 +1,9 @@ +# World contract boundary + +World owns typed, versioned referents and vocabulary: `WorldObject`, kind and +facet/relation definitions, aliases, identity-resolution decisions, and +merge/split lineage. It does not own observations, claims, beliefs, or the +truth of values about a referent; those remain Epistemics-owned evidence. + +Cross-owner references are typed semantic references. They do not create +cross-owner foreign keys, joins, writes, or a generic `Entity(any)` API. diff --git a/dev/ACTIVE_TASK.json b/dev/ACTIVE_TASK.json index 2849637..74b8ef7 100644 --- a/dev/ACTIVE_TASK.json +++ b/dev/ACTIVE_TASK.json @@ -1,5 +1,5 @@ { - "task_file": "dev/tasks/ARCH-GEN2-000-adopt-gen2-constitution-architecture-documents-and-governance-mode.json", - "task_id": "ARCH-GEN2-000", + "task_file": "dev/tasks/GEN2-001-accept-gen2-owner-registry-and-dependency-rules.json", + "task_id": "GEN2-001", "task_revision": 1 }