Skip to content

data_validation: point the agentdataflow central schema at the dataset-local one - #73

Merged
emmanuelgjr merged 1 commit into
GenAI-Security-Project:mainfrom
gautamgb:chore/agentdataflow-central-schema-pointer
Sep 17, 2026
Merged

emmanuelgjr merged 1 commit into
GenAI-Security-Project:mainfrom
gautamgb:chore/agentdataflow-central-schema-pointer

Conversation

@gautamgb

Copy link
Copy Markdown
Contributor

Summary

The other follow-up from #62's review: data_validation/schemas/agentdataflow_trace.schema.json becomes a pointer into the dataset-local schema at datasets/agentdataflow_toolexchange_traces/schema.json, which is now authoritative.

The file becomes a $ref into the dataset-local schema, with a $comment naming the concrete divergences (trace_id shape, typed spans instead of an untyped array, the disposition enum admitting an unintentional failure, required provenance evidence) and pointing at #62 for the reasoning behind each one.

Checked before touching anything: nothing in the codebase currently loads or validates against either central stub. Grepped .py, .md, and .yml repo-wide for agentdataflow_trace.schema.json and exploit.schema.json and found no reference to either. So this is a documentation correction, not a behavior change - there's nothing to test beyond the file parsing as JSON, which it does.

The same drift exists between datasets/exploit_dataset/schema.json and data_validation/schemas/exploit.schema.json - all 59 current entries fail the central stub. Filed separately as an issue rather than fixed here, since it's a different dataset and a different owner's call.

…t-local one

GenAI-Security-Project#62 settled the direction: dataset-local schemas are authoritative, the
central data_validation/schemas/*.json are historical stubs. This is the
follow-up promised there for agentdataflow_trace.schema.json specifically.

The file becomes a $ref into
datasets/agentdataflow_toolexchange_traces/schema.json, with a $comment
naming the concrete divergences (trace_id shape, typed spans instead of an
untyped array, the disposition enum, required provenance evidence) and
pointing at GenAI-Security-Project#62 for why each one is deliberate. Nothing in the codebase
currently loads or validates against this file - grepped for both
"agentdataflow_trace.schema.json" and "exploit.schema.json" across .py,
.md, and .yml and found no reference - so this is a documentation fix, not
a behavior change, and there is nothing to test beyond the file parsing as
JSON, which it does.

The same drift exists between datasets/exploit_dataset/schema.json and
data_validation/schemas/exploit.schema.json; filed as a separate issue
rather than fixed here, since it's a different dataset's call to make and
this PR should stay reviewable as one change.
@emmanuelgjr

Copy link
Copy Markdown
Contributor

Thanks @gautamgb, this matches the schema policy from #62. One note for the record: the description says the exploit_dataset drift was filed as a separate issue, but no such issue exists. It turned out to be a wider problem (8 central schemas, one of them still live for the prompt-injection cases), so I've opened #76 to cover all of them. Merging this one as-is.

@emmanuelgjr emmanuelgjr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Matches the schema policy ratified on #62 (dataset-local schemas authoritative). Merging at the user's request.

@emmanuelgjr
emmanuelgjr merged commit 5706393 into GenAI-Security-Project:main Sep 17, 2026
1 check passed
@gautamgb

Copy link
Copy Markdown
Contributor Author

You're right and I don't have a good excuse: I wrote that the exploit_dataset drift was filed as a separate issue, and it wasn't. I drafted the text for it and then never actually opened it. Thanks for catching it and for opening #76 to cover the real scope, which turned out to be eight schemas, not one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants