Shipping
Jul 26A11yReadyTwo reviewer-driven hardening pushes since the last update. On fillable forms, the…Jul 26QuillPhase-1 review flow shipped. Primary Data table shows ⚑ needs-attention when any…Jul 26QuillDrawer polish: Advanced-view toggle hides dormant Queue Info and Phase-4 enrichment.…Jul 26QuillAggregator dedup: prod Firestore was silently ingesting duplicate invoices (same PDF,…Jul 26QuillUI aligned to Multco BRANDING.md palette (#316094 steel blue). New Pill primitive with 6…Jul 26VantageThe agent-written test now drives the real application — end-to-end grounding confirmed…Jul 24QuillFirst working end-to-end Primary Data flow shipped: aggregator turns raw extractions into…Jul 24QuillAlignment complete — VISION, ARCHITECTURE, DATA_MODEL, ROADMAP, CHANGELOG, and 8 ADRs…Jul 21A11yReadyClosed the biggest structural gap in the converter: fillable forms had no output check at…Jul 19VantageA six-week blind spot in the knowledge base — found, closed, and guarded. Fifteen…Jul 26A11yReadyTwo reviewer-driven hardening pushes since the last update. On fillable forms, the…Jul 26QuillPhase-1 review flow shipped. Primary Data table shows ⚑ needs-attention when any…Jul 26QuillDrawer polish: Advanced-view toggle hides dormant Queue Info and Phase-4 enrichment.…Jul 26QuillAggregator dedup: prod Firestore was silently ingesting duplicate invoices (same PDF,…Jul 26QuillUI aligned to Multco BRANDING.md palette (#316094 steel blue). New Pill primitive with 6…Jul 26VantageThe agent-written test now drives the real application — end-to-end grounding confirmed…Jul 24QuillFirst working end-to-end Primary Data flow shipped: aggregator turns raw extractions into…Jul 24QuillAlignment complete — VISION, ARCHITECTURE, DATA_MODEL, ROADMAP, CHANGELOG, and 8 ADRs…Jul 21A11yReadyClosed the biggest structural gap in the converter: fillable forms had no output check at…Jul 19VantageA six-week blind spot in the knowledge base — found, closed, and guarded. Fifteen…
All Projects

File Intelligence Platform

Drupal-Aware Site Intelligence for multco.us

Python 3.11FastAPIReact 19ViteTailwind 4Vertex AIClaude Sonnet 4.5Gemini 2.5 FlashPlaywrightaxe-corePandasGoogle Cloud RunCloud BuildCloud Storage
57K
Files Classified
10K
Pages Crawled
92%
Xingwu Agreement

Platform Screenshots

multnomah-county-accessibility.app
Platform Home — Daily Briefing

Operator-friendly home: 56,961 files tracked, 9,844 pages audited, 94 Site Health, 0 in remediation queue — plus a daily AI-generated executive briefing on the most critical findings (in this case, 35,270 duplicate copies of generic.png consuming 2.2 GB)

multnomah-county-accessibility.app
Files Inventory — Drupal-Aware

Every file linked back to its Drupal node, uploader, department, and live page references — surfaces orphans, duplicates, and ownership gaps the County had never seen before

multnomah-county-accessibility.app
Services View — Intent-Classified Pages

Pages grouped by what citizens actually do on them — apply, transact, inform, contact, find — classified by Gemini 2.5 Flash from page content and URL patterns

multnomah-county-accessibility.app
Service Map — 12 Service Intents Across 9,845 Pages

2,143 service pages identified across the site, grouped into 12 service intents (Apply for Something, Request Something, Submit Something, Book/Reserve, Check Eligibility, etc.) — the structural map of how the site actually serves residents

multnomah-county-accessibility.app
Policies Engine — Custom Editorial Rules

Editor-facing policies engine: rules stored in JSON, rendered in plain English, editable per department — example: "no PDFs in /forms/" — the platform's custom-rule layer that off-the-shelf SaaS tools don't have

Overview

Custom site-intelligence platform giving Multnomah County a single coherent picture of every file and every page on multco.us — measured nightly, scored honestly, routed to the person who can fix it. Six-bucket File_Status classification (CONNECTED · EMBEDDED · UNPUBLISHED_ONLY · NOISE_ONLY · ORPHAN_MEDIA · ORPHAN_FILE) is deterministic, not ML-based. A section-overview navigation (Home · Files · Pages · Services · Workbench · Departments) sits over a 10-module audit pipeline. An Analytics page with 8 tabs (Overview · Duplicates · Cross-Tab · Mismatches · Distributions · Languages · Images · Hotspots · Diagnostics) consolidates deep-insight views that used to live in three separate sections. A Validation page cross-checks the platform against Xingwu's independent PHP audit (92.3% agreement on 33,738 UUIDs) and the monthly Siteimprove snapshot — proving accuracy against external sources. Editor attribution means every file has an uploader and every page has an editor; "Mine" toggles on every report card let staff focus immediately. Per-department 30-day Health-score sparklines show trend direction at a glance. Vertex AI runs Claude Sonnet 4.5 for the Ask Agent + Citizen Journeys, and Gemini 2.5 Flash for the Service Scout classifier + the daily executive narrative. Min-instances=1 on Cloud Run + a RouteErrorBoundary in the React shell — no more cold-start lag, no whole-app crashes on a single page error.

Impact & Results

56,500
Files Classified
every nightly run, across 30 departments
9,900
Pages Crawled
with WCAG 2.1 AA axe-core scoring
92.3%
Xingwu Agreement
validated against independent PHP audit (33,738 UUIDs)
10
Audit Modules
a11y, SEO, links, performance, PII, spelling, more
6
File Buckets
deterministic classification (no ML guesswork)
30
Departments Scored
per-department 30-day health sparklines

Key Features

Six-bucket File_Status classification (CONNECTED · EMBEDDED · UNPUBLISHED_ONLY · NOISE_ONLY · ORPHAN_MEDIA · ORPHAN_FILE) — deterministic, not ML
Validation against Xingwu's independent PHP audit (92.3% agreement on 33,738 UUIDs) + monthly Siteimprove reconciliation
Section-overview UI (Home · Files · Pages · Services · Workbench · Departments) with collapsible sidebar and per-section overview pages
Analytics page with 8 tabs — merged Deep Insights + Visualizations into one navigation surface in June 2026
Editor attribution: every file has an Uploader, every page has an Editor — "Mine" toggles on every report card
Per-department 30-day Health-score sparklines with trend direction at a glance
Dictionary editor for misspellings allowlist (181 proper-noun overrides shipped → 35,413 misspellings, down from 45,856)
Vertex AI: Claude Sonnet 4.5 (Ask Agent, Citizen Journeys) + Gemini 2.5 Flash (Service Scout + daily executive narrative)
Cloud Run min-instances=1 + RouteErrorBoundary — no cold-start lag, no whole-app crashes on a single page error