Platform Governance
Multi-platform protocol governance — model as truth, goal-driven functions, component level scoping
Tags
Overview
Purpose
Multi-platform protocol governance — model as truth, goal-driven functions, component level scoping
Rules
PLG-001: The modeling YAML is the source of truth. Code without model backing = implementation bug. Model without implementation = unserved declaration.
Bidirectional consistency between model and code prevents orphaned implementations and phantom declarations.
Verification: Audit: every code artifact traces to a model declaration. Every model declaration has a code implementation.
PLG-002: Every function exists because an entity goal requires it. No goal = no function. Orphan functions = implementation bug.
Goal-driven development prevents feature creep. If no goal requires a function, the function is waste or an undocumented requirement.
Verification: Function audit: every exported function has a goal_ref tracing to an entity goal.
PLG-003: Goal → implementations.{platform}.goals → implementations.{platform}.packages → package.exports[].goal_ref. Every link explicit.
Explicit traceability enables impact analysis. Changing a goal shows exactly which packages and exports are affected.
Verification: Trace check: follow goal_ref chain from entity goal to package export. No broken links.
PLG-004: Packages provide ONLY component_levels.package artifacts. Cannot contain pages, views, routes, or endpoints.
Package scope enforcement prevents packages from becoming applications. Packages are reusable building blocks without routing or entry points.
Verification: Package audit: no route definitions, page components, or endpoint handlers in package directories.
PLG-005: Applications provide ONLY component_levels.application artifacts. Cannot contain templates, layouts, or primitives. Application = composition root.
Applications compose packages. Putting primitives in applications prevents reuse and creates circular dependencies.
Verification: Application audit: no primitive, template, or layout definitions. Only composition and routing.
PLG-006: Multiple applications MAY consume the same packages. Package independence (no routes) enables CMS + user-facing + playground from same packages.
Package reuse across applications is the primary value of component level separation. Route-free packages are consumer-agnostic.
Verification: Architecture review: packages have no consumer-specific code. Multiple applications can import without conflict.
PLG-007: Adding a new platform requires: (1) platform instance YAML, (2) component_levels, (3) services, (4) entry_point, (5) /decision, (6) update type protocols.
New platform checklist prevents incomplete platform setup. Missing any element creates a partially functional platform.
Verification: Platform setup: all 6 requirements completed before first implementation on new platform.