Files
Assistant/architecture/architecture-registry.yaml
T
2026-08-29 02:05:35 +03:00

229 lines
8.2 KiB
YAML

registry_version: 1
semantic_generation: 1
architecture_generation: 2
modules:
identity:
id: mod.identity
owns: [Identity, Actor, PrincipalBinding]
database_schema: identity
boundary_class: remote_capable
may_depend_on: [platform.ids, platform.events]
forbidden: [adapters.models, adapters.temporal]
authority:
id: mod.authority
owns: [Scope, AuthorityGrant, AuthorityValidation]
database_schema: authority
boundary_class: remote_capable
may_depend_on: [contracts.identity, platform.ids, platform.events]
situation:
id: mod.situation
owns: [Situation, FocusBinding, ProjectRegistry, ActiveProjectFocus]
database_schema: situation
boundary_class: remote_capable
may_depend_on: [contracts.identity, contracts.authority, contracts.work, contracts.capability]
work:
id: mod.work
owns: [Goal, HelpPath, GoalLifecycle, Task, Decision, PlanCandidate, WorkPlan, PlanStep, CapabilityRequirement, DelegationCandidate, Delegation, AgentRun, AgentCheckpoint, AgentResult, DelegationVerification]
database_schema: work
boundary_class: remote_capable
may_depend_on: [contracts.identity, contracts.authority, contracts.epistemics, contracts.capability, platform.ids, platform.events]
epistemics:
id: mod.epistemics
owns: [Observation, Claim, Belief, Provenance, SystemExpectation, ExperienceRecord, ReflectionCandidate]
database_schema: epistemics
boundary_class: remote_capable
may_depend_on: [contracts.identity, contracts.artifact, platform.events]
continuity:
id: mod.continuity
owns: [Commitment, ProspectiveItem, AttentionItem, HumanResponse]
database_schema: continuity
boundary_class: remote_capable
may_depend_on: [contracts.work, contracts.identity, contracts.authority, platform.events]
capability:
id: mod.capability
owns: [Capability, CapabilityBinding, CapabilityHealth, CapabilityImplementation, CapabilityResolution, CapabilitySelection, CapabilityGap, AcquisitionStrategyCandidate, CapabilityUsageObservation, SkillProfile, SkillEvidence, FastPathDecision]
database_schema: capability
boundary_class: remote_capable
may_depend_on: [contracts.identity, contracts.authority, contracts.artifact]
commit:
id: mod.commit
owns: [ActionProposalRecord, AuthorizedAction, ActionAttemptRecord]
database_schema: commit
boundary_class: remote_capable
may_depend_on: [contracts.authority, contracts.capability, contracts.work, contracts.continuity, platform.events]
privileged: true
artifact:
id: mod.artifact
owns: [ArtifactMetadata, ArtifactLineage]
database_schema: artifact
boundary_class: remote_capable
may_depend_on: [contracts.identity]
interaction:
id: mod.interaction
owns: [Conversation, HumanUtterance, UtteranceInterpretation, OriginalHumanIntent, InteractionRelation, ProjectReference]
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:
allowed_packages:
- platform.ids
- platform.clock
- platform.outbox
- platform.inbox
- platform.telemetry
- platform.errors
- platform.secrets
rule: "platform owns mechanisms, never domain meaning"
runtime_topology_v1:
core_runtime:
modules: [identity, situation, work, epistemics, capability, artifact, interaction]
continuity_runtime:
modules: [continuity]
commit_runtime:
modules: [authority, commit]
isolation_reason: [secrets, external_mutation_authority, failure_isolation]
cognitive_workers:
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:
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
cross_owner_fk: forbidden_by_default
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"
class: HARD
enforcement: [commit_runtime, property_tests, secret_acl]
- id: INV-OWN-001
property: "Only semantic owner writes canonical state"
class: HARD
enforcement: [db_acl, architecture_linter]
- id: INV-CONT-001
property: "Future obligations survive workflow engine loss"
class: HARD
enforcement: [canonical_prospective_store, recovery_test]
- id: INV-TOPO-001
property: "Major bounded contracts preserve semantics across inproc and remote topology"
class: HARD
enforcement: [topology_equivalence_tests]
- id: INV-EPI-001
property: "Model output cannot directly become canonical fact/action"
class: HARD
enforcement: [package_boundaries, commit_apis, semantic_validation_tests]
- id: INV-PROJ-001
property: "Projection eventually converges from canonical state"
class: CONVERGENCE
enforcement: [projection_rebuild_tests, lag_metrics]
protected_paths:
- architecture/ARCHITECTURE_CONSTITUTION.md
- architecture/architecture-registry.yaml
- architecture/adrs/**
- ci/architecture/**
- .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:
may_write: ["declared module paths", "module-owned tests"]
may_not_change:
- canonical_ownership
- public_cross_module_contracts
- protected_paths
- third_party_dependencies
- database_owner_roles
- privileged_capabilities