Contributing to GEML
August 24, 2026 · View on GitHub
Issues and pull requests are welcome. Here is what helps most, roughly in order of impact.
Two documents frame the rest: GOVERNANCE.md for how decisions
are made, and CODE_OF_CONDUCT.md for the one rule about
people — argue with the design as sharply as you like, not with the person.
⭐ Write a GEML implementation in your language
The highest-impact thing you can do for GEML: implement it from the spec in another language. Two independent parsers that agree are what turn a spec into a standard — and the proof it's unambiguous.
→ Start here: Write a GEML parser in your language — build order, the document model, the projection contract, and how to self-certify against the conformance suite and the dogfood spec.
Open an issue when you start — we'll link your implementation from the README and help you get the suite green.
Propose a spec change (GEP)
Open an issue labelled gep (GEML Enhancement Proposal) with: the change, the
motivation, before/after examples, and the effect on the conformance suite. The
conformance suite is the contract — a spec change lands together with its
conformance case, never without one. See GOVERNANCE.md.
Improve the reference implementation
Ordinary PRs against geml-parser/ and
geml-viewer/. The bar:
- Keep
npm testgreen — it runs unit tests, the conformance corpus, an independent second implementation, round-trip checks, and end-to-end CLI tests. - Keep the dogfood spec (
GEML-spec.geml) parsing clean.
cd geml-parser && npm install && npm run build && npm test
Tooling & integrations
All welcome, and among the best first contributions. Several already exist —
a browser viewer, a VS Code extension, an Obsidian plugin, a CI action — so
check what is open before you start: the README's
claim a piece table lists the gaps that are open
right now with what each one takes, and the table under it lists every shipped
integration with its current state. Nobody has started a tree-sitter grammar
(integrations/tree-sitter/ is notes only), Logseq, Notion, Pandoc, or an LSP
either — those are open too. Open an issue to claim one so we can link it.
(Logseq is in progress: a GEML round trip against a live DB graph is proven on
feat/logseq-geml.)
Reporting bugs
Open an issue with a minimal .geml input and what geml check reports versus
what you expected. Reproducible cases often become new conformance cases.