Skip to content

feat: arbiter report — HTML/PDF audit reports for hummbl.io consulting#2

Merged
hummbl-dev merged 3 commits intomainfrom
feat/claude/report-generator
Mar 26, 2026
Merged

feat: arbiter report — HTML/PDF audit reports for hummbl.io consulting#2
hummbl-dev merged 3 commits intomainfrom
feat/claude/report-generator

Conversation

@hummbl-dev
Copy link
Copy Markdown
Owner

Summary

New arbiter report command that generates branded, self-contained HTML audit reports for consulting clients. Two tiers: free (lead gen) and paid (full engagement deliverable).

Usage

arbiter report /path/to/client-repo --tier free -o client-free.html
arbiter report /path/to/client-repo --tier paid -o client-paid.html
arbiter report /path/to/client-repo --tier paid --pdf -o client.html

Features

  • Free tier: Grade badge, category scores (lint/security/complexity), upgrade CTA with mailto link
  • Paid tier: Everything in free + findings table with severity/file/rule, remediation roadmap, stats grid
  • hummbl.io design system: Dark theme, JetBrains Mono, cyan accents, print-friendly @media print
  • Self-contained: Single HTML file, inline CSS/SVG, no external dependencies
  • PDF support: weasyprint for automated PDF, browser print fallback
  • XSS-safe: All user content HTML-escaped
  • Embedded JSON: <script type="application/json" id="audit-data"> for future dashboard hydration

Deploy workflow

arbiter report ~/client-repos/acme --tier free -o audit/acme.html
cp audit/acme.html ~/hummbl-production/web/audit/acme.html
# → live at hummbl.io/audit/acme

Test plan

  • 87 tests pass (78 existing + 9 new)
  • Free tier renders with upgrade CTA
  • Paid tier renders with findings + remediation
  • HTML escaping verified (XSS prevention)
  • Visual check in browser

🤖 Generated with Claude Code

New command: arbiter report <repo> [--tier free|paid] [--output file] [--pdf]

- Free tier: grade badge, category breakdown, upgrade CTA
- Paid tier: full findings table, file-level detail, remediation roadmap
- Self-contained HTML with hummbl.io design system (dark theme, JetBrains Mono)
- PDF via weasyprint (optional) or browser print-to-PDF fallback
- Embedded JSON data for future dashboard hydration
- XSS-safe: all user content HTML-escaped
- 9 tests covering report building, rendering, escaping

Deploy: copy output HTML to hummbl-production/web/audit/<client>.html

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 562808524b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"{{FILES_AFFECTED}}": str(len(report.findings_by_file)),
"{{FINDINGS_ROWS}}": findings_html,
"{{REMEDIATION_ITEMS}}": remediation_html,
"{{REPORT_JSON}}": report.to_json(),
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Escape JSON before embedding it in <script>

report.to_json() is inserted raw into {{REPORT_JSON}}, which is rendered inside <script type="application/json">; if any finding field contains </script> (for example from a crafted filename or analyzer message in an untrusted repo), the browser will terminate the script block early and parse attacker-controlled HTML/JS. This makes the generated report XSS-prone when opened locally or hosted. Please HTML-safe the JSON payload for script embedding (e.g., escape <, >, &, and </script> as Unicode escapes) before substitution.

Useful? React with 👍 / 👎.

Claude (agent) and others added 2 commits March 25, 2026 16:10
Vulture was scanning .venv/lib/ site-packages, producing 60-90 false
positive "unused code" findings per repo. This inflated finding counts
and dropped scores from A to D for repos with virtual environments.

Added --exclude for .venv, venv, node_modules, .git, __pycache__,
.tox, .eggs, build, dist. Also auto-detects vulture_whitelist.py
in repo root and respects --exclude from CLI args.

Impact: mcp-server D(65)→A(100), agentic-patterns D(69)→A(100)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Every arbiter command (score, analyze, triage, fix, report, diff)
now prints "Powered by HUMMBL — https://hummbl.io/audit" after
results. This turns every arbiter run into a consulting lead funnel.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@hummbl-dev hummbl-dev merged commit b934eea into main Mar 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant