Shipping
Jun 22A11yReadyGlobal Assembly layer (Phase 22) online: a deterministic reconciliation pass that…Jun 22UCRThe testing platform now sees the live UCR_app codebase as cloud-resident, not…Jun 22UCRThe testing platform's self-healing loop reaches end-to-end against legacy UCR live —…Jun 22Testing PlatformADR 0020 Phases 1+2+3 all shipped in one afternoon — cloud-resident UCR_app source spine…Jun 22Testing PlatformADR 0020 proposed — cloud-resident UCR_app source + Azure DevOps source-change webhook +…Jun 22Testing PlatformFirst end-to-end MEDIC smoke vs UCR QAT — the pipeline works from GUARDIAN failure to…Jun 22Testing PlatformMEDIC v0 Phase 4 shipped — apply patch as draft PR (manual approve, automated apply,…Jun 22Testing PlatformMEDIC v0 Phase 3 backend route shipped — the round trip is reachable from the UI. POST…Jun 22Testing PlatformMEDIC v0 Phase 3 persistence layer shipped — selector_patch lands in operator.proposals.…Jun 22Testing PlatformMEDIC v0 Phase 2 LLM call layer shipped — the 7th agent gets brains.…Jun 22A11yReadyGlobal Assembly layer (Phase 22) online: a deterministic reconciliation pass that…Jun 22UCRThe testing platform now sees the live UCR_app codebase as cloud-resident, not…Jun 22UCRThe testing platform's self-healing loop reaches end-to-end against legacy UCR live —…Jun 22Testing PlatformADR 0020 Phases 1+2+3 all shipped in one afternoon — cloud-resident UCR_app source spine…Jun 22Testing PlatformADR 0020 proposed — cloud-resident UCR_app source + Azure DevOps source-change webhook +…Jun 22Testing PlatformFirst end-to-end MEDIC smoke vs UCR QAT — the pipeline works from GUARDIAN failure to…Jun 22Testing PlatformMEDIC v0 Phase 4 shipped — apply patch as draft PR (manual approve, automated apply,…Jun 22Testing PlatformMEDIC v0 Phase 3 backend route shipped — the round trip is reachable from the UI. POST…Jun 22Testing PlatformMEDIC v0 Phase 3 persistence layer shipped — selector_patch lands in operator.proposals.…Jun 22Testing PlatformMEDIC v0 Phase 2 LLM call layer shipped — the 7th agent gets brains.…
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