Skip to content

Developer route release finalize

route-release-finalize is the final route release control-plane layer above route-certify-release.

Taxonomy

Component Responsibility
RouteCertificationReleaseFinalizerService Orchestrates discovery, nested release aggregation, final policy evaluation, history writing, and report writing.
RouteCertificationBundleDiscovery Reads bundle roots and maps embedded route identities to bundle paths.
RouteCertificationReleaseFinalizerPolicy Pure freshness, provenance, regression, and nested-release blocker policy.
RouteCertificationReleaseFinalizerReport Stable JSON/Markdown finalizer contract.

All collaborators are injected through constructors for dependency injection. Tests can replace discovery, nested release aggregation, or policy without touching CLI code.

Boundary rules

  • The finalizer does not run Docker.
  • The finalizer does not open database connections.
  • The finalizer does not execute route-certify, refreshes, or CDC streams.
  • CLI handlers parse arguments only.
  • No route-specific branches belong in the finalizer service.
  • Required first-class route defaults stay in the route certification release contract and may be overridden with --route.

Extension rules

Add new final checks in RouteCertificationReleaseFinalizerPolicy and cover them with focused tests. Keep filesystem discovery in RouteCertificationBundleDiscovery and history serialization in the service or a small extracted writer if it grows.

Add new public fields only through RouteCertificationReleaseFinalizerReport. Update user docs, developer docs, CLI reference, workflow docs, and docs tests in the same change.

Tests

Coverage must include:

  • bundle discovery with explicit override precedence;
  • stale bundle blockers;
  • release provenance blockers;
  • score regression blockers;
  • history index writes;
  • CLI exit codes and JSON output;
  • docs/workflow navigation contracts.