Below is the full scan-report UI, hydrated from a seeded sample repo (hexpatrol/demo) so you can browse the bounded-context graph, the layer-boundary map, and the suggested-fix preview — and download the matching git apply-safe patch — without hooking the scanner up to a repo first.
5 contexts · 6 cross-context edges from the sample scan.
From the seed scan of 7/15/2026, 9:00:00 AM.
Orders14 internal · 6 external · sep 0.78
Billing18 internal · 3 external · sep 0.92
Inventory9 internal · 2 external · sep 0.88
Shipping7 internal · 4 external · sep 0.71
Identity11 internal · 1 external · sep 0.96
Layer boundaries
5 layers · 5 layer-boundary violations from the sample scan.
From the seed scan of 7/15/2026, 9:00:00 AM.
Hexagonal architecture
5 contexts · 10 ports · 10 adapters from the seed scan.
Ports and adapters per bounded context — derived from 7/15/2026, 9:00:00 AM.
Ports and adapters
Upload a code-bundle archive to see the repo's hexagonal architecture.
Drop a .zip, .tar, or .tar.gz archive below — we'll lift the top-level folders into bounded contexts and group ports/ / adapters/ into ports and adapters automatically.
up to 25 MB
Upload your repo
Drop a .zip, .tar, or .tar.gzarchive of your source files (up to 25 MB). Files are uploaded to Polsia's R2 bucket for analysis.
Suggested Fixes
hexagonal-lite — 5 violations — 7/15/2026, 9:00:00 AM
move src/adapters/legacy-printer.ts → src/ports/printer-port.ts (layer: ports)
drop import in src/adapters/legacy-printer.ts:2 '../adapters/logger'
update import in src/app/api/print/route.ts:1 '../../adapters/legacy-printer' → '../../ports/printer-port'
src/adapters/legacy-pager.ts
adapters
ports-and-adapters/in-adapter-out-of-layer
move src/adapters/legacy-pager.ts → src/ports/pager-port.ts (layer: ports)
drop import in src/adapters/legacy-pager.ts:3 '../adapters/sms-sender'
update import in src/app/api/alert/route.ts:1 '../../adapters/legacy-pager' → '../../ports/pager-port'
src/adapters/legacy-mailer.ts
adapters
ports-and-adapters/in-adapter-out-of-layer
move src/adapters/legacy-mailer.ts → src/ports/mailer-port.ts (layer: ports)
drop import in src/adapters/legacy-mailer.ts:4 '../adapters/smtp-client'
update import in src/app/api/notify/route.ts:1 '../../adapters/legacy-mailer' → '../../ports/mailer-port'
src/domain/billing/csv-billing-reporter.ts
domain
domain/no-cross-domain-import
drop import in src/domain/billing/csv-billing-reporter.ts:6 '../adapters/csv-writer'
src/legacy/spaghetti.ts
adapters
domain/no-cross-domain-import
unsupported
unsupported — multi-layer fan-out
Export the patch
Download the unified diff covering every supported violation in the sample scan. The bytes download from /api/demo/patch and apply cleanly with git apply.