# Repo Truth Map: Spec 366 Management Report Layout ## Branch And Baseline - Branch: `366-management-report-layout-branded-report-themes-v1` - Baseline commit: `6ac0913f feat: implement operations UI operator actions regression gate (#436)` - Initial worktree state: new `specs/366-management-report-layout-branded-report-themes-v1/` artifacts only. ## Inspected Runtime Seams - Rendered route/controller: `apps/platform/app/Http/Controllers/ReviewPackRenderedReportController.php` - Rendered Blade report: `apps/platform/resources/views/review-packs/rendered-report.blade.php` - Review pack URL/download contract: `apps/platform/app/Services/ReviewPackService.php` - Existing profile/disclosure/readiness seams: - `apps/platform/app/Support/ReviewPacks/ReportProfileRegistry.php` - `apps/platform/app/Support/ReviewPacks/ReportDisclosurePolicy.php` - `apps/platform/app/Support/ReviewPacks/ReviewPackOutputReadiness.php` - `apps/platform/app/Support/ReviewPacks/ReviewPackOutputResolutionGuidance.php` - Owner launch surfaces: - `apps/platform/app/Filament/Resources/EnvironmentReviewResource.php` - `apps/platform/app/Filament/Resources/EnvironmentReviewResource/Pages/ViewEnvironmentReview.php` - `apps/platform/app/Filament/Resources/ReviewPackResource.php` - `apps/platform/app/Filament/Resources/ReviewPackResource/Pages/ViewReviewPack.php` ## Current Truth Used - Prepared-by text comes from the current workspace name, with `TenantPilot` fallback. - Prepared-for text comes from the managed environment name, with the localized tenant fallback. - Generated-by stays `TenantPilot`. - Generated-at is the current review-pack `generated_at`. - Readiness, customer-safe/internal/limited state, disclosure proof, and appendix visibility remain derived from existing review-pack, environment-review, evidence-snapshot, profile, and disclosure-policy data. - KPI values are derived from stored governance-package arrays when present: - governance status from current output guidance - evidence coverage from the evidence snapshot basis - key risks from `governance_package.top_findings` - open decisions from `governance_package.decision_summary.entries` or `governance_package.governance_decisions` ## Gaps And Decisions - No repo-backed logo, accent customization, persisted report theme, theme editor, or upload lifecycle exists. Decision: keep logo `null`, accent default `teal`, and all branding derived-only. - Unsupported metrics must not be faked. Decision: measured empty arrays render `0`; missing metrics render localized `Not measured`. - Existing Spec 357 profile registry is sufficient for layout modes. Decision: no new profile taxonomy or profile CRUD. - Partializing the Blade view was not needed for this bounded change; stable test hooks and section-rank helpers kept reviewability acceptable without adding more files. - `current-report-layout-audit.md` was not created because UI-099 already existed in the UI audit registry and Spec 366 produced fresh browser screenshot evidence after implementation. ## Scope Gates - Migrations: none. - Packages/dependencies: none. - Environment variables: none. - Queue families/scheduler: none. - Storage topology: unchanged; existing review-pack ZIP download remains the structured artifact. - Panel/provider registration: unchanged; Laravel 12 Filament providers remain in `apps/platform/bootstrap/providers.php`. - Global search: unchanged. - Filament assets: none registered; no `filament:assets` deployment change. - Native PDF package/runtime: not added. - Upload UI/theme editor/customer portal/scheduled delivery/AI/framework-report semantics: not added. ## Validation Notes - Spec 366 browser evidence lives in `specs/366-management-report-layout-branded-report-themes-v1/artifacts/screenshots/`. - UI coverage registry updated for UI-099 rendered report; route classification is unchanged. - Adjacent regression fixes: - `Spec347ReviewPackOutputReadinessSmokeTest` fixture now stores the same non-certification disclosure on the review pack summary that the normalized review already carries. - `ReviewOutputResolveActionMapper` no longer maps `export_not_ready` to `create_next_review`, preserving `export_executive_pack` as the primary action for published reviews that still need an export.