diff --git a/docs/INTERFACE_PATTERN_MIGRATION.md b/docs/INTERFACE_PATTERN_MIGRATION.md new file mode 100644 index 0000000..be619a6 --- /dev/null +++ b/docs/INTERFACE_PATTERN_MIGRATION.md @@ -0,0 +1,25 @@ +# Docs Interface Pattern Migration + +The Docs route composes the platform interface language without owning a +parallel shell. Core owns its navigation/content pane geometry and page frame; +Docs owns audience filtering, version selection, topic navigation, configured +documentation projection, and evidence presentation. + +## Surface contract + +- `WorkspaceLayout` owns the outline/content regions, pane width, scrolling, + accessible labels, and narrow-layout navigation behavior. +- `PageLayout` owns the content inset, sticky heading, audience-aware page + identity, reload action placement, error and loading regions, and responsive + action flow. +- `ExplorerTree`, `SegmentedControl`, `DataGrid`, `DescriptionList`, dialogs, + alerts, and status badges retain their Core interaction and accessibility + contracts. +- Docs-specific CSS remains limited to the documentation tree, reading column, + topic typography, page outline, and reference content. It no longer defines + the outer workspace grid or page skeleton. + +The module keeps user/admin audience boundaries, installed-version selection, +topic URLs, configured-state projection, and evidence visibility unchanged. +The platform layout checker rejects restoring a raw Docs page or workspace +frame. diff --git a/src/govoplan_docs/backend/manifest.py b/src/govoplan_docs/backend/manifest.py index 2b31a23..4cfbad4 100644 --- a/src/govoplan_docs/backend/manifest.py +++ b/src/govoplan_docs/backend/manifest.py @@ -47,6 +47,11 @@ ARCHITECTURE = ModuleArchitectureDeclaration( reference="docs/DOCUMENTATION_LAYER_CONCEPT.md", summary="Defines the manifest-driven documentation boundary.", ), + ModuleMaturityEvidence( + kind="documentation", + reference="docs/INTERFACE_PATTERN_MIGRATION.md", + summary="Records the Core-owned Docs workspace and page-layout boundary.", + ), ), known_limits=( "Architecture declarations are in staged adoption, so undeclared modules remain visible as pending.", diff --git a/webui/src/features/docs/DocsPage.tsx b/webui/src/features/docs/DocsPage.tsx index a9c6184..80db1bf 100644 --- a/webui/src/features/docs/DocsPage.tsx +++ b/webui/src/features/docs/DocsPage.tsx @@ -8,10 +8,10 @@ import { Dialog, DismissibleAlert, ExplorerTree, - LoadingFrame, - PageTitle, + PageLayout, SegmentedControl, StatusBadge, + WorkspaceLayout, adminErrorMessage, useGuardedNavigate, usePlatformLanguage, @@ -133,92 +133,95 @@ export default function DocsPage({ settings }: { settings: ApiSettings }) { }, [treeNodes, selectedPage?.id]); return ( -
{adminDocs ? "i18n:govoplan-docs.technical_documentation_for_the_modules_and_conf.267e739e" : "i18n:govoplan-docs.guidance_for_the_functions_available_in_this_ins.723b7cad"}
-