You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The spec README states the target is fixtures/events/ covering all action.type values — "50 example events" (coming). Today there are 4:
01-tool-call-allowed.json
02-tool-call-blocked-external-email.json
03-model-response-logged.json
04-session-open-l1-only.json
The fixtures are load-bearing — both SDKs and agp-cts validate against them in CI, and they're the canonical examples in the spec for each event shape.
Goal
Expand fixtures/events/ to cover every action.type enum value defined in schemas/event.json plus realistic variations (allowed/blocked, with/without policy stamp, multi-action, etc.).
Scope (checklist — each line is a small PR)
Action types not yet represented (audit schemas/event.json for the full enum; the list below is best-effort from a quick read):
Each fixture is small, well-scoped, and produces an immediate, runnable PR. New contributors can pick one row from the checklist, write the JSON, get CI green, and ship.
🚀 Start here
What: add one event fixture per action.type value not yet covered. The enum lives in schemas/common.json$defs/action_type: tool_call, model_response, session_open, session_close, data_read, data_write, external_request. Compare against the files already in fixtures/events/.
Files: add fixtures/events/NN-<action-type>-<scenario>.json (follow the existing numbering/naming).
Context
The spec README states the target is
fixtures/events/covering allaction.typevalues — "50 example events" (coming). Today there are 4:01-tool-call-allowed.json02-tool-call-blocked-external-email.json03-model-response-logged.json04-session-open-l1-only.jsonThe fixtures are load-bearing — both SDKs and
agp-ctsvalidate against them in CI, and they're the canonical examples in the spec for each event shape.Goal
Expand
fixtures/events/to cover everyaction.typeenum value defined inschemas/event.jsonplus realistic variations (allowed/blocked, with/without policy stamp, multi-action, etc.).Scope (checklist — each line is a small PR)
Action types not yet represented (audit
schemas/event.jsonfor the full enum; the list below is best-effort from a quick read):tool_call— additional variants beyond01(e.g., parallel calls, MCP-routed call, denied for non-policy reason).model_response— variants with content filtering, with citations, refusal.session_open— L2 (with policy stamp) and L3 (with decision id).session_close— clean close vs. timeout vs. policy-driven termination.file_access— read, write, attempted-blocked.data_export— bulk export, redacted export, blocked.network_request— outbound HTTPS, outbound email (blocked variant exists, add allowed variant), socket.code_execution— sandboxed, denied, with output captured.policy_decision— Flow C decision recorded as event.schemas/event.jsonis enumerated)Each fixture should:
schemas/event.json(the existingvalidate-fixturesworkflow enforces this).Out of scope
Pointers
Why this is a good first issue
Each fixture is small, well-scoped, and produces an immediate, runnable PR. New contributors can pick one row from the checklist, write the JSON, get CI green, and ship.
🚀 Start here
What: add one event fixture per
action.typevalue not yet covered. The enum lives inschemas/common.json$defs/action_type:tool_call,model_response,session_open,session_close,data_read,data_write,external_request. Compare against the files already infixtures/events/.Files: add
fixtures/events/NN-<action-type>-<scenario>.json(follow the existing numbering/naming).How to test locally:
CI validates every fixture on PR.
Acceptance criteria:
action.type.schemas/event.json.actor/actionvalues.git commit -s).Good for a first PR — self-contained, one file at a time.