Skip to content

Contributing

Thanks for helping shape Spikard! The fastest way to get started is to follow the existing Taskfile and language-specific READMEs.

Where to start

Spikard is experimental and pre-1.0, so contributions land quickly and genuinely shape the design.

  • Good first issues — scoped to be finishable in an evening, mostly self-contained documentation snippets for a single binding.
  • Help wanted — larger subsystems from the roadmap, each backed by an ADR.
  • Found something wrong? Opening an issue is a contribution. Rough edges, confusing errors, and docs that do not match reality are all worth reporting.

Before opening a PR, run task check (formatting, linting, and docs consistency).

Setup

task setup

This installs Rust, Python, Node, and Ruby dependencies plus pre-commit hooks.

Common Tasks

  • task build – build Rust core and bindings
  • task test – run all language test suites
  • task lint / task format – apply linters and formatters
  • task docs:serve – work on this documentation locally

Guidelines

  • Keep behavior consistent across bindings; add fixture-driven tests when adding new features.
  • Prefer contract-first changes: update schemas, generators, and ADRs where relevant.
  • Run cargo fmt, cargo clippy, ruff, biome, and language-specific tools before opening a PR.

For more detail, see the root CONTRIBUTING.md file and ADRs that cover design intent.

Edit this page on GitHub