Skip to main content

Contributing

SDIF is developed in the open under the sdif-format GitHub organization. Contributions are welcome across all three repositories.

Repositories

  • sdif — the reference Python implementation. This includes the parser, CLI, canonicalizer, schema validator, and JSON/AI conversion tools.
  • sdif-benchmarks — the reproducible benchmark suite for comparing SDIF against JSON, YAML, XML, and TOON across token efficiency, semantic density, and round-trip fidelity.
  • tree-sitter-sdif — the Tree-sitter grammar for SDIF syntax highlighting.

General Guidelines

When contributing to any of these repositories:

  • Include tests. Changes to parsing, canonicalization, or conversion logic should be accompanied by test cases that exercise the new or changed behavior.
  • Include fixtures. For format changes or new parser behavior, add input/output fixture files alongside the tests so that the expected behavior is explicit and reproducible.
  • Keep changes focused. A pull request that addresses one concern is easier to review than one that bundles multiple unrelated changes.

Where to Start

  • For bugs or parse failures, open an issue in the sdif repository with a minimal reproducing document.
  • For benchmark methodology questions, open an issue in the sdif-benchmarks repository.
  • For editor integration questions or grammar bugs, open an issue in the tree-sitter-sdif repository.

The following sub-pages cover contributing in more depth: