From 7d310d5c33111a74aa8016fb32006782b495ab16 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Sat, 1 Aug 2026 17:48:38 +0200 Subject: [PATCH] docs: declare institutional architecture boundary --- AGENTS.md | 6 ++++++ src/govoplan_postbox/backend/manifest.py | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 58747b8..823a432 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,5 +1,11 @@ # GovOPlaN Postbox Codex Guide +## Documentation Contract + +- Treat documentation as part of every behavior change. Update this module's manifest-driven `DocumentationTopic` contributions for affected user and administrator behavior. +- Keep feature content here; `govoplan-docs` projects it without importing Postbox internals. +- Maintain a static user/admin baseline and run `/mnt/DATA/git/govoplan/tools/checks/check-manifest-shapes.py` after behavior or manifest changes. + ## Scope This repository owns the `postbox` module: in-platform postboxes, function-organization-bound access, postbox messages, postbox directory APIs, internal and portal postbox surfaces, campaign postbox integration, postbox-owned migrations, and future `@govoplan/postbox-webui`. diff --git a/src/govoplan_postbox/backend/manifest.py b/src/govoplan_postbox/backend/manifest.py index 270a445..d4a7b55 100644 --- a/src/govoplan_postbox/backend/manifest.py +++ b/src/govoplan_postbox/backend/manifest.py @@ -28,6 +28,7 @@ from govoplan_core.core.modules import ( PermissionDefinition, RoleTemplate, ) +from govoplan_core.core.provider_governance import declared_module_architecture from govoplan_core.core.notifications import CAPABILITY_NOTIFICATIONS_DISPATCH from govoplan_core.core.organizations import ( CAPABILITY_ORGANIZATION_DIRECTORY, @@ -385,6 +386,19 @@ manifest = ModuleManifest( order=35, ), ), + architecture=declared_module_architecture( + layer="communication_participation", + kind="domain", + maturity="vertical_slice", + documentation_ref="docs/POSTBOX_CONCEPT.md", + test_ref="tests/test_service.py", + known_limits=("End-to-end encryption and target deployment recovery profiles are intentionally not claimed.",), + owned_concepts=("postbox", "postbox address", "postbox message", "delivery receipt", "access event"), + non_owned_concepts=("identity", "function assignment", "campaign", "cryptographic key custody"), + recovery_docs=("docs/POSTBOX_CONCEPT.md",), + security_docs=("docs/POSTBOX_CONCEPT.md",), + operations_docs=("README.md",), + ), )