Contributing
Thanks for helping improve fitness data interoperability! This document explains how to propose changes, add RFCs, and update schemas/examples.
Ways to Contribute
- File an issue describing a problem, proposal, or implementation feedback.
- Submit a PR improving documentation, examples, or governance materials.
- Propose or amend an RFC with concrete examples and a validation plan.
RFC Changes
- Fork the repo and create a feature branch.
- Author or modify an RFC under
specification/rfc/using an existing RFC as a template. - Include:
- Problem statement, goals (in/out of scope), terminology
- Normative requirements and reference structures
- Extension guidance and security/privacy considerations
- JSON Schema references and complete examples
- Conformance guidance for producers/consumers
- Open a PR and request review from Editors.
Schema & Example Changes
- Update the relevant schema under
specification/schemas/...and keep$id/title/version consistent. - Provide at least one complete example per schema demonstrating real‑world usage.
- Validate examples locally (Ajv Draft 2020‑12):
npx ajv -s specification/schemas/exercises/v1.0.0/exercise.schema.json \
-d specification/schemas/exercises/v1.0.0/exercise.example.json
Identifier Policy
- Production data MUST use UUIDv4 identifiers for all entity IDs and references.
- Examples MAY use illustrative IDs (e.g.,
eq.barbell) for readability; clearly marked as illustrative only.
Style Guidelines
- Keep JSON valid (no comments/trailing commas) and minimal where possible.
- Use BCP 47 for language tags and lowercase ASCII for slugs (
[a-z0-9-]). - Prefer concise, normative language (MUST/SHOULD/MAY) in RFCs.
Versioning & Breaking Changes
- New required fields or incompatible changes require a Major version.
- Optional additions (fields, enum values where permissible) are Minor.
- Editorial fixes are Patch.
- Update
specification/governance/CHANGELOG.mdwith a summary of changes.
License
- By contributing, you agree your contributions are licensed under the VITNESS Open Standards License Agreement.