Skip to main content

Ownership And Freshness designed

The portal is now large enough that source links are not enough. Each page needs an owner, review domain, freshness risk, review cadence, and trigger for when it must be updated.

Required Metadata

Every portal page must declare:

FieldMeaning
ownerTeam or workstream responsible for keeping the page useful
review_domainReview lanes that should approve material changes
last_reviewedISO date for the most recent content review
review_cadencemonthly, quarterly, semiannual, or annual
freshness_risklow, medium, or high
sync_triggerWhat source change requires portal review

These fields complement the existing audience, visibility, status, and source_docs metadata.

Freshness Risk

RiskUse whenDefault cadence
HighPage explains release posture, security, API behavior, active roadmap, current operations, or generated artifactsMonthly
MediumPage explains architecture, product strategy, developer onboarding, or runbook entry pointsQuarterly
LowPage is mostly stable reference, historical framing, or glossary contentSemiannual or annual

Sync Trigger Examples

Page typeTrigger
API/referenceOpenAPI, AsyncAPI, auth, error, or SDK artifact change
ProductPRD, UX journey, IA, competitive, or page contract change
ArchitectureBoundary, route, domain, deployment, shared-service, or open-decision change
SecurityControl, gap, threat, release gate, or evidence requirement change
OpsRunbook, platform baseline, release, observability, or incident workflow change
DeveloperApp SDK, manifest, artifact, credential, or example workflow change

Enforcement

make docs-portal-check validates required ownership and freshness metadata. The stricter source-drift gate is available in blocking mode with DOCS_PORTAL_ENFORCE_SOURCE_RECENCY=1: if a portal page claims a canonical source doc and that source doc changed after the page was last reviewed, the check fails until the page is re-reviewed or intentionally updated. The goal is not bureaucracy; it is to make stale pages visible while the portal is still easy to fix.