Background
ADR 0003 explicitly promises:
The Go SDK gains a serde package that performs this encoding from
bundlev1.Bundle / bundlev1.Task, validated against
validation/serialization/test_dags.yaml (the same fixture set the
Java SDK uses), so the Go and Java outputs are byte-identical for
shared inputs.
The Go serde package exists
(go-sdk/pkg/execution/serde.go, serde_test.go) but the cross-SDK
parity hook does not - there is no prek/CI step that runs the
Go serializer against the shared test_dags.yaml and diffs the output
against Python's SerializedDAG.serialize_dag like the Java SDK does
via compare.py.
What needs to happen
- Add a Go-side serializer driver that consumes
validation/serialization/test_dags.yaml and emits a JSON file
per Dag fixture (parallel to the Java
SerializationCompatibilityTest).
- Wire it into
scripts/ci/prek/ so the existing compare.py runs
against serialized_go.json alongside serialized_java.json.
- Fail the check on any field-level divergence.
Acceptance criteria
- A regression in
SerializedDAG.serialize_dag shape that Go doesn't
follow fails CI before merge.
- The Go and Java SDKs share the fixture file (no Go-only copy).
Context
Drafted-by: Claude Code (Opus 4.7) (no human review before posting)
Background
ADR 0003 explicitly promises:
The Go
serdepackage exists(
go-sdk/pkg/execution/serde.go,serde_test.go) but the cross-SDKparity hook does not - there is no prek/CI step that runs the
Go serializer against the shared
test_dags.yamland diffs the outputagainst Python's
SerializedDAG.serialize_daglike the Java SDK doesvia
compare.py.What needs to happen
validation/serialization/test_dags.yamland emits a JSON fileper Dag fixture (parallel to the Java
SerializationCompatibilityTest).scripts/ci/prek/so the existingcompare.pyrunsagainst
serialized_go.jsonalongsideserialized_java.json.Acceptance criteria
SerializedDAG.serialize_dagshape that Go doesn'tfollow fails CI before merge.
Context
go-sdk/adr/0003-coordinator-protocol-msgpack-ipc.md.check_java_serialization_compatibility.py; we extend the samepattern.
Drafted-by: Claude Code (Opus 4.7) (no human review before posting)