Inspiration

Data teams rarely lack evidence during an incident. The problem is that schema changes, lineage, catalog metadata, dashboard dependencies, and ownership are spread across tools. Investigators spend critical time assembling those facts, and an explanation is hard to trust when its supporting evidence is not visible.

What it does

Data Incident Investigator provides seven visible, editable incident playbooks and accepts a focused incident question. The read-only workflow finds bounded context, traces lineage, tests factual evidence, ranks evidence-linked hypotheses with code-owned scoring, and explains only supported downstream impact.

For the canonical Removed schema column fixture, the report labels the leading result a plausible contributor, shows 81% high evidence confidence, links the displayed fact and impact to that top hypothesis, and keeps recommendations Not Executed.

How we built it

The project is a TypeScript pnpm monorepo. React 19 and Vite 7 provide the judge-facing UI. Fastify 5 serves the API and built web application from one same-origin Node.js 24 service. Zod schemas validate incident, provider, execution, confidence, blast-radius, and export contracts. A provider-neutral MetadataAdapter supports deterministic fixtures, direct DataHub GraphQL, and a bounded DataHub MCP Server path.

The real integration path passed a localhost-only proof against DataHub Core 1.6.0 and the official DataHub MCP Server 0.6.0. The Public judge deployment intentionally remains credential-free fixture mode; remote MCP hosting is not claimed.

The MCP path uses the official MCP TypeScript SDK, discovers only read-only search and get_lineage tools, and enforces time, byte, entity, and lineage limits. Deterministic TypeScript orchestration owns ranking and report composition; the current investigation makes zero model calls. The Public fixture runs on Google Cloud Run with only synthetic, process-local data.

Challenges we ran into

  • Preserving one report contract across fixtures, direct GraphQL, and an MCP provider with a different supported tool surface.
  • Preventing metadata text from becoming instructions while preserving it as quoted evidence.
  • Making confidence inspectable without exposing or claiming hidden chain-of-thought.
  • Distinguishing complete-within-bounds blast radius from partial, unknown, or unavailable coverage.
  • Packaging a public fixture demo with exact runtime and legal provenance without credentials or customer data.

Accomplishments

  • Seven editable incident playbooks make the product scope visible before a judge starts.
  • One credential-free incident flow reaches a schema-validated report in a few minutes.
  • Every ranked hypothesis cites evidence present in the same report.
  • Confidence uses visible basis-point factors with exact provenance.
  • Blast-radius impacts carry stable URNs, paths, distances, and evidence links.
  • The Markdown export is deterministic and sanitized.
  • Safe recommendations are review-only and never auto-executed.
  • The public Apache-2.0 repository has a published v1.0.1 release and successful exact-main CI.

What we learned

An investigation agent is more useful when uncertainty is a first-class output. Unknown lineage coverage, missing runtime logs, and a plausible contributor are more honest than a confident story without evidence. Deterministic orchestration also makes an agent easier to rehearse, test, and audit even when live metadata inputs can vary.

Current limitations

Only Removed schema column has the rich checked-in browser fixture. MCP recent changes remain unsupported by the official tool surface. Incidents are process-local. Public availability is an owner commitment, not an uptime guarantee. No model call, DataHub write-back, automatic remediation, organizer acceptance, or prize result is claimed.

Built With

Share this project:

Updates