@@ -4,6 +4,47 @@ Thank you for considering a contribution. DRP is a specification first and
44a piece of code second, so changes are evaluated against the spec, not just
55the implementation.
66
7+ ## Start here
8+
9+ If you are new to DRP, start with small contributions that improve clarity
10+ before changing protocol behavior.
11+
12+ Good first contribution types:
13+
14+ 1 . ** Examples** - add a small valid DRP record for a realistic decision.
15+ 2 . ** Invalid fixtures** - add a focused invalid case that the validator should reject.
16+ 3 . ** FAQ improvements** - clarify a confusing field, status, or rule.
17+ 4 . ** Use-case notes** - explain how DRP applies to a concrete workflow.
18+ 5 . ** CLI docs** - improve copy-paste commands, output examples, or troubleshooting.
19+ 6 . ** Comparison docs** - explain how DRP relates to adjacent practices or tools.
20+
21+ A good first PR should be small, easy to review, and linked to one issue.
22+
23+ ## Contributor path
24+
25+ DRP contributions usually fall into four levels:
26+
27+ | Level | Contribution type | Expected files |
28+ | ---| ---| ---|
29+ | 1 | Documentation clarification | ` README.md ` , ` docs/*.md ` |
30+ | 2 | New examples or fixtures | ` examples/ ` , ` fixtures/ ` |
31+ | 3 | Validator behavior | ` tools/drp_validator.py ` , ` tests/ ` , fixtures |
32+ | 4 | Protocol semantics | ` docs/SPEC.md ` , schema, validator, tests, changelog |
33+
34+ For first-time contributors, Level 1 and Level 2 are the best entry points.
35+ Level 3 and Level 4 should include tests and clear spec references.
36+
37+ ## Before opening a PR
38+
39+ Please check:
40+
41+ - the change has a clear purpose;
42+ - the PR is focused on one topic;
43+ - docs are updated when behavior changes;
44+ - tests are updated when validation behavior changes;
45+ - new examples are small and readable;
46+ - invalid fixtures fail for the reason their filename suggests.
47+
748## Ground rules
849
9501 . ** The spec is normative.** ` docs/SPEC.md ` defines the protocol. Code,
@@ -60,8 +101,8 @@ positive fixture (valid) and one negative fixture (invalid).
60101
61102## What counts as a breaking change
62103
63- A change is ** breaking** — and requires a major version bump after ` 1.0.0 `
64- or a prominent note before then — if it can cause a previously valid
104+ A change is ** breaking** -- and requires a major version bump after ` 1.0.0 `
105+ or a prominent note before then -- if it can cause a previously valid
65106record to be rejected or a previously rejected record to be accepted.
66107Concretely:
67108
0 commit comments