docs: declare institutional architecture boundary

This commit is contained in:
2026-08-01 17:48:39 +02:00
parent 480ccdb3b6
commit 3e9a14a970
2 changed files with 46 additions and 2 deletions
+30 -2
View File
@@ -19,6 +19,7 @@ from govoplan_core.core.modules import (
PublicFrontendRoute,
RoleTemplate,
)
from govoplan_core.core.provider_governance import declared_module_architecture
from govoplan_core.core.people import (
CAPABILITY_ACCESS_PEOPLE_SEARCH,
CAPABILITY_ADDRESSES_PEOPLE_SEARCH,
@@ -90,11 +91,26 @@ DOCUMENTATION = (
"flows remain possible."
),
layer="available",
documentation_types=("admin",),
audience=("operator", "module_admin", "product_owner"),
documentation_types=("admin", "user"),
audience=("user", "operator", "module_admin", "product_owner"),
related_modules=("poll", "evaluation", "calendar", "appointments", "mail", "notifications", "portal"),
metadata={"seed": True},
),
DocumentationTopic(
id="scheduling.find-and-decide-meeting-time",
title="Find and decide a meeting time",
summary="Create candidate slots, invite internal or external participants, compare availability, and turn the selected slot into a calendar event when Calendar is available.",
body=(
"Scheduling records participant requirements, quorum and weighting constraints, response deadlines, reminders, and yes/no/maybe availability through Poll. "
"Calendar-aware organizers can inspect conflicts and create tentative holds before deciding. After a decision, Scheduling releases unused holds, creates or links the final event, and records notification handoff state. "
"Signed external links expose only the bounded request information allowed by the request's participation and privacy policy."
),
layer="configured",
documentation_types=("user",),
audience=("user", "organizer", "participant"),
related_modules=("poll", "calendar", "notifications", "mail"),
metadata={"kind": "reference"},
),
)
@@ -225,6 +241,18 @@ manifest = ModuleManifest(
),
),
documentation=DOCUMENTATION,
architecture=declared_module_architecture(
layer="communication_participation",
kind="domain",
maturity="vertical_slice",
documentation_ref="README.md",
test_ref="tests/test_service.py",
known_limits=("Reference deployment notification delivery and every calendar-provider constraint remain incomplete.",),
owned_concepts=("scheduling request", "candidate slot", "scheduling participant", "scheduling decision"),
non_owned_concepts=("poll response primitive", "calendar event", "mail delivery"),
recovery_docs=("README.md",),
security_docs=("README.md",),
),
)