What changed?
v1.3 executed an undeclared write-capable tool and directly read the undeclared, deprecated legacy_revenue dataset.
This agent claims to be read-only and canonical-only. In a real v1.3 run, it writes DataHub metadata and queries a deprecated revenue table.
Compare what an agent version promised with what it actually did, then route risky releases for human review.
Built for AI platform governance leads and agent release approvers when a new version is proposed for production or a deployed version exhibits new behavior.
00 · Release decision
The reviewer does not need to read every runtime log. The release decision is supported by version-scoped traces, governed DataHub facts, deterministic policy, and a verified governance action.
v1.3 executed an undeclared write-capable tool and directly read the undeclared, deprecated legacy_revenue dataset.
canonical_revenue is the governed replacement and actively feeds weekly_revenue_report, so the run deviated from a live governed production path.
An AI platform governance lead or agent release approver reviews the cited evidence and the exact proposed action.
Fix the agent, approve an updated declaration, or request a time-bounded policy exception. Until then, the release remains NEEDS_REVIEW.
01 · Problem
An agent profile may continue to say “read-only” and “canonical finance data only” after a tool change or asset-selection regression gives the same version write access or sends it to a deprecated source. Registry metadata alone cannot prove what a real execution did.
It describes the approved identity, capabilities, tools, and data relationships, but it does not prove which tools one execution invoked.
A trace can name a dataset URN without knowing whether it is deprecated, what replaces it, who owns it, or which governed production path it bypasses.
The risk lives in the gap between what a version was approved to do and what it actually did.
02 · Solution
The system normalizes traceable facts, applies deterministic policy, produces a cited evidence answer, and writes an allowlisted remediation only after human approval.
03 · Why DataHub
Runtime traces prove what happened; DataHub explains why it matters. The trace proves that v1.3 accessed legacy_revenue. DataHub proves that it is deprecated, names canonical_revenue as the governed replacement, and places the deviation on an active production path.
search, get_entities, and get_lineage calls are present in both real traces.04 · Real Evidence
Both versions use the same claim model, tool proxy, evidence resolver, and detectors. The result comes from declared-versus-observed set differences and DataHub state, not a hard-coded version branch.
| Version / Run | Declaration | Observed execution | Result |
|---|---|---|---|
| v1.2 Loading manifest… | Read-only; canonical finance data. | Agent Context Kit search / get_entities / get_lineage; canonical revenue read; 8 events. | NO HIGH FINDING |
| v1.3 Loading manifest… | Still claims read-only and canonical-only. | Agent Context Kit search / get_entities / get_lineage; legacy read; SDK entities.update; 10 events. | NEEDS_REVIEW 2 HIGH findings |
The declaration is read-only, but the trace records an executed write tool outside the version allowlist.
READ_ONLY_CONTRADICTION:datahub.add_tags; UNDECLARED_TOOL:datahub.add_tagsThe run reads undeclared legacy_revenue; DataHub confirms its deprecated state and governed replacement.
DEPRECATED_DATASET_ACCESS:legacy_revenue; UNDECLARED_DATASET_ACCESS:legacy_revenueWhy HIGH: Deprecation alone remains MEDIUM. It escalates to HIGH because canonical_revenue is the governed replacement and actively feeds weekly_revenue_report.
05 · Eligible Integration
Each successful tool-end event records integration surface, underlying tool, package version, source kind, dataset URNs, mutation status, and canonical hash. Installed dependencies are never presented as executed calls.
| Trace tool | Integration surface | Underlying tool | Version | Purpose |
|---|---|---|---|---|
| datahub.search | agent_context_kit | search | 1.6.0.17 | Discover governed revenue assets. |
| datahub.get_entities | agent_context_kit | get_entities | 1.6.0.17 | Read lifecycle, schema, and ownership. |
| datahub.get_lineage | agent_context_kit | get_lineage | 1.6.0.17 | Read v1.2 upstreams and the v1.3 replacement's downstream consumer. |
| duckdb.execute_read_query | duckdb | execute_read_query | 1.5.5 | Execute the task data read. |
| datahub.add_tags | sdk | entities.update | 1.6.0.6 | Execute the separately approved demo runtime mutation. |
06 · Human Governance
The release binds a release-bound immutable approval object: Loading manifest…. The safety boundary is the immutable payload, target allowlist, explicit human review, and read-after-write verification. The ID is only a lookup key.
success=true and verified=true; the audit Document references the current v1.3 run.07 · Reviewed Screens
Judge mode loads hashed release artifacts and exposes no mutation controls.




08 · Verification
verify --require-real --require-eligible-integration covers lint, strict typing, tests, real DataHub readback, current traces, eligible calls, and verified writeback.
examples/release-manifest.json supplies versions, run IDs, metrics, evidence hashes, URLs, readiness blockers, and the submission status rendered by this page.
09 · Scope & Readiness
DISCLOSURES.md.