Skip to content

feat: HTML inventory report generator with Perplexity editorial design #1

Description

@shrwnsan

Summary

bumblebee scan produces an inventory.ndjson file, but there is no built-in way to visualize or explore the results in a human-friendly format. This PR adds a self-contained Python script (scripts/generate-report.py) that transforms raw NDJSON output into a rich, interactive HTML report.

What it does

  • Reads inventory.ndjson and produces a single self-contained report.html (zero external dependencies, Python 3.10+ stdlib only)
  • Presents 7 ordered sections: Ecosystems, Lifecycle Scripts, Version Sprawl, Top Projects, Confidence Scores, Detection Sources, Scan Roots — organized as Overview → Risks → Landscape → Reference
  • Renders inline bar charts in table cells for quantitative columns (ecosystem share, version counts, confidence scores)
  • Supports dark ("Midnight Parchment") and light ("Perplexity Editorial") themes with smooth transitions and localStorage persistence
  • Includes a scroll-spy page outline mini-TOC (fixed right-edge nav) and a scroll progress bar
  • Truncates long project paths with ellipsis, expanding on hover — no content flash

Design system

Inspired by the Perplexity blog aesthetic:

Token Light Dark
Background #fbfaf4 (warm cream) #091717 (deep forest-teal)
Text #13343b (deep teal-black) #e6e2d8 (ivory)
Accent #20808d (teal) #20808d (teal)
Data viz #d4940a (amber) #d4940a (amber)

Fonts: Newsreader (serif display), Outfit (geometric body), JetBrains Mono (data/code).

Files changed

File Description
scripts/generate-report.py New — single ~1400-line script, the only deliverable
.gitignore Added report.html (generated output)

Usage

# Generate the report
python3 scripts/generate-report.py inventory.ndjson -o report.html

# Open in browser
open report.html          # macOS
xdg-open report.html      # Linux

Testing

Tested against a real 7,895-package inventory.ndjson from bumblebee scan across 7 ecosystems (npm, PyPI, Go, Cargo, RubyGems, Maven, NuGet). Verified table alignment and hover behavior in Chrome/Brave on macOS arm64.

Commits

  1. 3323feafeat: add generate-report.py script for inventory.ndjson
  2. 61cb55bstyle: adopt Perplexity editorial design system
  3. 86e515dfix: proj-cell hover — replace dual-span swap with single trunc element

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions