Files
meshcore-spec/CONTRIBUTING.md
T
swaitsandClaude Opus 4.6 9db901088e Add comprehensive spec audit results and pyMC_core issue reports
- CHANGELOG.md: Full audit findings organized by severity
- PYMC_CORE_ISSUES.md: 7 evidence-based bug reports for pyMC_core
  (wrong constants, broken path_len decoding, wrong TRACE hash,
  wrong SNR calculation)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Add comprehensive spec audit results and pyMC_core issue reports

- CHANGELOG.md: Full audit findings organized by severity
- PYMC_CORE_ISSUES.md: 7 evidence-based bug reports for pyMC_core
  (wrong constants, broken path_len decoding, wrong TRACE hash,
  wrong SNR calculation)
- Remove ERRATA.md: contents already covered by audit findings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 21:37:57 -06:00

1.4 KiB

Contributing to MeshCore Spec

Adding Test Vectors

  1. Choose the appropriate directory under corpus/ based on protocol layer and packet type.
  2. Add vectors to an existing JSON file, or create a new file if testing a distinct aspect.
  3. Every JSON file must validate against corpus/schema/test-vector.schema.json.
  4. Use uppercase hex for binary data. Whitespace is allowed for readability.
  5. Each vector needs a unique id within its file and a clear description.
  6. For encode_decode vectors, verify both directions: encoding the structured form produces the binary, and decoding the binary recovers the structure.

Editing the Specification

  1. Spec documents live in spec/ and are numbered for reading order.
  2. Use RFC 2119 language (MUST, SHOULD, MAY) for normative requirements.
  3. Include ASCII wire format diagrams where applicable.
  4. Cross-reference related spec sections and test vector files.
  5. The C++ reference implementation is the source of truth — if the spec disagrees with the firmware, the spec needs updating.

Generating Vectors from Reference Implementation

See tools/generate/README.md for instructions on building and running the corpus generation harness against the C++ MeshCore library.

Validating the Corpus

python tools/validate.py

This checks all JSON files against the schema and verifies internal consistency.