feat(report): lead with the solution and apply review feedback - #17
Merged
Conversation
Restructures the HTML report around reviewer feedback on the Chromatic story: the solution now leads, the assumptions are a hero-level control, and several sections are reworked. - Hero: drop the secondary stat line; surface the global assumptions as a collapsed disclosure (numbers shown, expands to edit) - Lead with the 'Today vs. PatchWave auto-merge' solution section; the full waitlist CTA closes the report above the methodology, with a short 'Join the waitlist' button ending the solution section - Calculator: tick dots at slider break points, relabel the center metric to 'PRs auto-merged' to match the slider, and a theme-aware --savings green for light-mode contrast - Cost table: add a Time (hrs) column - Collapse the 90-180/180+ PR-age buckets into a single 90+ bucket - Render top repos by severity as a horizontal stacked-bar histogram - Derive the story's global CVE totals from the per-repo rows so they reconcile - Remove the adjustable-assumptions footnote now that the control is in the hero
Bump the modeled defaults from $150/hr and 5 min/PR to $200/hr and 12 min/PR. The $200/hr default reflects a ~$400k fully-loaded engineer cost over 2,000 working hours, and 12 min/PR covers the context switch, review, and merge for a single PR. The headline cost, per-person table, and savings scenarios all recalculate from these constants, and the methodology copy and test fixtures track the new values.
Introduce a dedicated --severity-* palette pulled from GitHub's Primer severity roles (danger/severe/attention/neutral) and point the stacked bar, per-repo bars, and the oldest-open age cells at it, so severities read the same here as in GitHub's security UI in both light and dark mode.
blimmer
marked this pull request as ready for review
May 27, 2026 16:15
…klog The headline cost counts only merged PRs, so it now says so — "(not including the N still open)" — framing the number as a defensible floor rather than appearing to ignore the backlog. The Open PR age section now leads with the count still open and their average age, computed from a new PrBacklog.openAvgAgeDays. The methodology appendix notes that open PRs are excluded from the cost and reported there instead.
jcarver989
approved these changes
May 27, 2026
jcarver989
left a comment
Contributor
There was a problem hiding this comment.
Took a look in Chromatic and changes look good!
It would be nice to sync colors from website at some point but don't think that should block us here.
Note: I didn't really look at the code this time around since it's a prototype report.
blimmer
pushed a commit
that referenced
this pull request
May 27, 2026
🤖 I have created a release *beep* *boop* --- ## [0.2.0](v0.1.1...v0.2.0) (2026-05-27) ### Features * **report:** lead with the solution and apply review feedback ([#17](#17)) ([dbad8d8](dbad8d8)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: contextbridge-pr-automation[bot] <259134118+contextbridge-pr-automation[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Applies the round of reviewer feedback on the Chromatic story for the HTML report. The biggest change is structural — the report now leads with the PatchWave solution and promotes the cost assumptions to a hero-level control instead of a buried footnote — alongside a bump to the default cost assumptions and a few targeted UI fixes (severity-bar histogram, GitHub severity colors, CTA copy). The latest commit clarifies that the headline cost counts only merged PRs and surfaces the open PR backlog (count + average age) in its own section.
Review focus
$200/hr(≈$400k loaded / 2,000 hrs) and12 min/PRread as "conservative" to a buyer, since the report still frames them that way.AssumptionsFootnoteand theappendix-assumptionsdeep-link/disclosure path entirely. Please confirm there's no remaining surface that linked to the old anchor.PrBacklog.openAvgAgeDays). Worth a gut check that the merged-only framing reads as honest-conservative, and that the hero "N still open" intentionally mirrors the stat in the backlog section.Commits
28222ba— feat(report): lead with the solution and apply storybook review feedback9f0e74d— feat(report): raise default cost assumptions1b2569f— feat(report): match CVE severity bars to GitHub's colors23f295d— fix(report): drop arrow from waitlist CTA labelc52e637— feat(report): note the headline excludes open PRs and surface the backlog