Implemented the first version of the PDF and HTML renderer for review packs. Added ReviewPackRenderedReportController and related blade views to render reports. Updated EnvironmentReviewResource, ReviewPackResource, ReviewPackService, and routing. Added new tests for the renderer and download actions, and updated UI documentation. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #427
4.1 KiB
4.1 KiB
Requirements Checklist: Review Pack PDF/HTML Renderer v1
Purpose: Validate that Spec 356 is bounded, repo-based, constitution-aligned, and ready for a later implementation loop.
Created: 2026-06-05
Feature: specs/356-review-pack-pdf-html-renderer-v1/spec.md
Candidate Selection Gate
- CHK001 The package names the direct user-provided Spec 356 draft as the starting input and ties it to the renderer follow-up explicitly deferred by Spec 355.
- CHK002 The active auto-prep queue in
docs/product/spec-candidates.mdwas reviewed and found intentionally empty, so this package proceeds only as a direct manual promotion rather than an auto-selected backlog item. - CHK003 Completed-spec guardrails were applied to Specs 263, 347, 349, 351, and 355; they are treated as historical/runtime context only and are not rewritten.
- CHK004 The selected slice is narrowed to current review-pack rendered delivery only; customer portal, broader workspace completion, localization-wide cleanup, governance inbox follow-up, and PDF dependency work stay deferred.
Repo Truth And Architecture
- CHK005 The spec and plan anchor the work to current review-pack generation, current customer-safe detail surfaces, and the current signed download seam.
- CHK006 The artifacts state that rendered HTML/PDF remains derived-only and must not introduce a new persisted artifact family or a new database shape.
- CHK007 The plan forbids live provider calls, a second report engine, a second
OperationRun, or a new package-backed PDF stack. - CHK008 The prep explicitly records the repo-truth deviation from the user draft:
executive-summary.mdalready exists today, so the gap is rendered delivery, not executive-entrypoint creation. - CHK009 The prep explicitly records that PDF is conditional on current repo support and must not be forced with a new dependency.
UI/Productization Coverage
- CHK010 UI Surface Impact is explicit and consistent with changing current owner surfaces plus adding one new rendered report route if needed.
- CHK011 UI/Productization Coverage keeps
CustomerReviewWorkspace, released-review detail, and review-pack detail as the current owner surfaces instead of inventing a portal taxonomy. - CHK012 The spec requires one dominant rendered-output action and keeps diagnostics/appendix detail secondary.
- CHK013 Customer-safe default disclosure remains an explicit invariant across the rendered report and current owner surfaces.
Testing And Validation
- CHK014 Planned tests cover rendered-contract truth, disclosure, authorization, audit continuity, and one bounded browser smoke.
- CHK015 Validation commands explicitly stay on current
EnvironmentReview,ReviewPack,Reviews, and customer-review browser coverage rather than widening into unrelated suites. - CHK016 The artifacts name
pint --dirtyandgit diff --checkas final validation steps.
Readiness Gate
- CHK017 Candidate Selection Gate passes.
- CHK018 Spec Readiness Gate passes.
- CHK019 No blocking product question remains; the only implementation-time branch is whether the current repo can support PDF without a new package.
- CHK020 No application implementation has been performed in this preparation step.
- CHK021 Preparation analyze result: pass via repo-based artifact review checklist; no standalone local
speckit.analyzecommand is available in this repo surface.
Review Outcome
- CHK022 Review outcome class:
acceptable-special-case - CHK023 Workflow outcome:
keep - CHK024 Final note location is the active feature PR close-out entry
Smoke Coverage.
Notes
- This checklist validates preparation readiness only. No application implementation, runtime test execution, or browser smoke has been performed in this prep step.
- The repository provides Bash helpers for feature creation but no local executable
speckit.tasksorspeckit.analyzecommand. Tasks and analysis were therefore produced repo-conformantly from the templates and checked manually here. - The HTML-first / PDF-conditional boundary is intentional repo truth, not an unfinished spec hole.