contributing
declared-md is an open project. contributions to the spec, CLI, indexer, and docs are welcome.
repositories
| repo | description |
|---|---|
| declared-md/spec | normative specification and JSON schemas |
| declared-md/validator | CLI for init, validate, preview |
| declared-md/index | indexer and data files |
| declared-md/site | directory site (Astro) |
| declared-md/docs | this documentation site |
proposing changes to the spec
the spec is the most important part of the project. changes need careful consideration because they affect validators, indexers, and all existing files.
before opening a PR:
- open an issue in declared-md/spec describing the proposed change and the motivation
- wait for discussion. spec changes that break existing files require a major version bump.
- if accepted, submit a PR with changes to the relevant
.mdfile andschemas/*.schema.json
patch changes (wording, examples): open PR directly.
minor changes (new optional fields): open issue first, then PR.
major changes (breaking required fields): open issue first, gather consensus, then PR.
reporting bugs in the validator
open an issue in declared-md/validator.
include:
- the file that produced the unexpected result (or a minimal reproduction)
- the command you ran
- the actual output
- the expected output
code contributions
- fork the relevant repo
- create a feature branch
- write tests first (vitest for validator and indexer, no specific framework for site)
- implement the change
- confirm
npm testpasses andnpm run buildsucceeds - open a PR
versioning
the spec and CLI share semantic versioning at the spec level:
- the spec version is in
spec/whoami.md,spec/whois.md,spec/whatis.mdfrontmatter - the CLI version in
validator/package.jsonshould match the spec version it targets - the indexer version in
index/package.jsonis independent
a CLI version of 1.0.x validates against spec 1.0.x. a CLI version of 1.1.0 validates against spec 1.1.0.
architecture reference
see architecture overview for a full picture of how the components relate.