324 lines
7.9 KiB
JSON
324 lines
7.9 KiB
JSON
{
|
|
"registry_version": 1,
|
|
"semantic_generation": 1,
|
|
"architecture_generation": 1,
|
|
"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"
|
|
],
|
|
"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"]
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"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"
|
|
},
|
|
"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",
|
|
"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"
|
|
]
|
|
}
|
|
}
|