Contributions are welcome. Please follow these guidelines.
git clone https://github.com/urmzd/generative-artifact-protocol
cd generative-artifact-protocol
just build # compile the Go package
just test # run unit tests
just evalset # regenerate the SAIGE eval observation set
just run # run live evals through the Go eval runner
just check # format check, vet, and tests (same gate as CI)go.mod: module definitiontypes.go: envelope and protocol data modelapply.go: stateless apply enginestore.go: versioned artifact storemarkers.go: section marker utilitiesevalset/: SAIGE eval observation loader and committed-metrics scorerscmd/gap-eval/: live eval runnerinternal/liveeval/: provider client and live eval flow implementationassets/evals/: evaluation datasets and experimentsassets/evals/saige/: generated SAIGE observation setassets/evals/experiments/go.mod: module boundary that keeps generated fixtures out of root testsspec/gap.md: the protocol specification (wire versiongap/0.1)spec/gap-sse.md: SSE wire format bindingspec/schemas/: JSON Schema filesspec/examples/: example envelopesjustfile: task recipes.github/workflows/: CI (build + test) and release
- Apply engine (
apply.go): stateless function that resolves envelopes. Keep it pure: no I/O, no side effects. - Store (
store.go): versioned artifact store with control-plane envelopes. - Eval assets (
assets/evals/): committed datasets and measured reports. Do not hand-edit measured numbers or generated SAIGE observations; runjust evalset. - New recipes: add them to
justfilewith a comment describing what they do.
- Fork the repo and create a branch from
main. - Make your changes and ensure
just checkpasses. - Open a pull request with a clear description of what changed and why.
- Go: run
gofmt -w *.go *_test.go evalset/*.go internal/evalsetgen/*.gobefore committing.
By contributing you agree that your contributions will be licensed under the Apache 2.0 License.