Open source
Apache-2.0, and reproducible from a clean clone
Two repositories. One is the product; the other is the simulated commerce ecosystem it patches — separate on purpose, because a tool that opens pull requests against itself proves nothing.
Architecture
packages/datahub/ MCP gateway, context builder, quality signals, write-back
packages/rules/ five deterministic checks over observed output
packages/patch/ constrained generation + registered-command validation
packages/planner/ AI planner behind a validated schema
packages/github/ pull requests
apps/api/ workflow state machine, screens, auth, persistence
apps/worker/ resumes runs stranded by a crash or a deploy
seed/ Commerce Lab topology + emitter
skill/ the DataHub Skill contributed upstream
Deterministic where facts are concerned
MCP calls are made from code, not chosen by a model. The model reads a persisted snapshot and ranks registered templates. It never invents a value, approves anything, or reaches a shell.
Degrades rather than guesses
If DataHub is unavailable the run fails visibly and says why. There is no hardcoded lineage fallback — a confidently wrong blast radius is worse than none.
Contributed back
datahub-commerce-change-impact
A vendor-neutral DataHub Skill teaching any agent to assess a commerce change: resolve authority from the catalog rather than infer it, trace the blast radius with an explicit hop count, compare output rather than configuration, surface ownership gaps, refuse to guess when no source of truth is marked, and stop before mutating.
A reproducible quickstart defect
ES_BULK_REFRESH_POLICY=WAIT_UNTIL makes every OpenSearch bulk
write block until the next index refresh. Under ingestion load the MAE
consumer is evicted mid-batch, replays against already-written documents,
hits version conflicts, and stalls permanently without committing an offset.
The catalog under-indexes silently — we measured 428 of 1,267 entities.
Setting the policy to NONE drained a 1,748-message backlog in
140 seconds. Diagnosis, fix and measurements are in
infra/README.md.
Verify it yourself
Nothing here needs DataHub or a network connection.
# rule engine, patch safety, planner guards, workflow, auth, prompt injection
pytest apps packages tests -q
# the security suite on its own
pytest tests/security -q
# the lab fails before remediation, passes after
cd ../comgu-commerce-lab && pytest -q # 6 failed, 1 passed
With a DataHub instance, python -m apps.api.scripts.golden_path
--assert-completed runs the whole chain unmocked and fails the build if
any stage did not genuinely succeed.