Context Graph Protocol

Contributing to Context Graph Protocol

Contribution workflow, commit conventions, DCO requirements, review expectations, and licensing terms.

Thanks for wanting to make Context Graph Protocol better. This document is the whole game: how to set up, where your change goes, what "done" means here, and how to get it merged. It's long because it's honest — but the short version is:

The ground rules

Commit formatConventional Commits, with the crate or surface as scope, matching the existing history:

feat(contextgraph-host): add fan-out timeout for slow providers
fix(contextgraph-conformance): restore correct exit code on budget-honesty failure
docs(readme): clarify dual-license statement
ci(release): publish contextgraph-types to crates.io

DCO, not CLA. Sign every commit (git commit -s) to certify the Developer Certificate of Origin. You keep your copyright; no assignment, ever.

PR checklist (the template walks you through it):

  1. One logical change per PR — smaller lands faster.
  2. The gate is green locally (fmt / clippy -D warnings / test).
  3. A witness test, or a stated reason there isn't one.
  4. Docs updated in the same PR if behavior or flags changed (README.md, --help text, doc comments).
  5. Commits signed off (-s).

Maintainers aim for a first response within a few days. "Needs work" is a normal part of the loop here, not a rejection.

Issues and labels

  • Bug report — include the Context Graph Protocol crate name and version, OS, and a repro.
  • Feature request — say what you're trying to do, not just what to add.

Labels you'll see: area:* routes an issue to a crate; P0P2 is priority; good first issue and help wanted mean what they say; needs-witness means a PR is waiting on its witness test.

License

Context Graph Protocol is dual-licensed MIT OR Apache-2.0. By contributing, you agree your contributions are licensed under the same terms, as certified by your DCO sign-off. No CLA, no copyright assignment.

This project follows the Code of Conduct. By participating you are expected to uphold it.

On this page