Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for Data Change Impact Commander
Short description
A guarded DataHub agent that traces a proposed schema change through real
lineage, checks owner coverage, produces a SAFE, REVIEW, or BLOCK
decision, and writes the evidence back to the affected asset.
The problem I wanted to fix
A schema request can look tiny in a ticket: rename one field, make another required, ship it on Friday. The hard part is finding everything downstream that quietly depends on those fields and knowing who needs to act.
I built Data Change Impact Commander to turn that detective work into one repeatable review. It uses DataHub as the source of truth, follows the blast radius, finds owners and gaps, and leaves a decision record in the catalog instead of losing the reasoning in a chat window.
What it does
The demo reviews a change to finance.raw_transactions:
- rename
transaction_amounttoamount; - make the currently nullable
currency_coderequired.
The agent finds the actual dataset in DataHub, reads its schema, traces
downstream lineage, and discovers five affected assets across reporting and
fraud-risk paths. Two risk assets have no owner. The guarded policy therefore
returns BLOCK, creates an owner-by-owner action list, and appends one
idempotent review record to the source asset's description.
The agent does not modify schemas, lineage, owners, tags, or business data.
How I built it
- Open-source DataHub Core provides the metadata graph.
- DataHub Agent Context Kit exposes search, schema, entity, lineage, and description tools.
- LangGraph runs the tool-using review loop.
- Qwen2.5 3B runs locally through Docker Model Runner.
- A deterministic policy layer computes the minimum safe decision from live lineage, breaking operations, and owner coverage.
- Python seeds a six-asset synthetic finance graph and verifies the scenario.
The entire model path is local. No hosted-model API key or paid inference service is used.
The difficult part
The first local-model run taught me the most important lesson in this project:
model prose is not a safety control. It called a breaking rename SAFE and
missed an ownerless risk path.
I restored the bad write, reduced the model's tool surface to five focused
operations, and moved the final classification into a deterministic guardrail.
Now a breaking change with downstream consumers cannot be SAFE, and a
breaking change that reaches an ownerless production asset must be BLOCK.
The write-back is also idempotent by change ID.
That failure made the project much stronger and much closer to something a real data platform team could trust.
What I am proud of
- The demo uses DataHub for the full read, reason, act, and write-back loop.
- The stored result names five downstream assets and the exact ownership gaps.
- The synthetic metadata is truthful:
currency_codeis explicitly nullable. - Re-running
CHG-2026-001cannot create duplicate review records. - Nine unit tests cover local-only model configuration and decision guardrails.
- The repository includes complete setup instructions and verified sample output.
What I learned
Good agent design is not just about giving a model more tools. It is about deciding which judgments belong to the model and which require hard, inspectable rules.
DataHub made that separation possible. The model can investigate a rich context graph, while the policy layer can make a reproducible decision from the same lineage and ownership evidence.
What comes next
I want to add field-level migration plans, compatibility-window tracking, and review acknowledgements from downstream owners. I would also like to turn the guardrail pattern into a reusable DataHub skill so teams can apply their own change policies without rewriting the agent.
Built with
DataHub Core, DataHub Agent Context Kit, LangGraph, Python, Qwen2.5, Docker Model Runner, LangChain, Docker
Judge testing instructions
- Clone the public repository on a Windows machine with Docker Desktop.
- Follow the README to start DataHub and install the local model.
- Copy
.env.exampleto.env. - Run
python scripts/seed_demo.py --apply. - Run
python agent.py. - Open
http://localhost:9002, sign in to the local quickstart, and inspectRaw Transactions. - Confirm that its description contains one
CHG-2026-001record withDecision: BLOCKand five downstream assets.
For a fast review without running the model, see examples/sample-run.md.
Pre-existing work disclosure
The project began from the public DataHub Agent Starter by Lakshay Nasa. Its MIT
license notice is preserved in THIRD_PARTY_NOTICES.md. The impact-review
scenario, local-model path, synthetic finance graph, deterministic guardrails,
tests, documentation, and demo materials were built for this hackathon.
Log in or sign up for Devpost to join the conversation.