Skip to content

Commit 12356e0

Browse files
committed
docs: add petal contribution guide
1 parent 5ce31b2 commit 12356e0

1 file changed

Lines changed: 169 additions & 0 deletions

File tree

docs/PETAL_CONTRIBUTION_GUIDE.md

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
# Petal Contribution Guide
2+
3+
**Status**: DRAFT / GUIDANCE
4+
**Audience**: domain experts who are not protocol engineers
5+
**Protocol mutation**: NONE
6+
7+
## Who this is for
8+
9+
This guide is for domain experts who understand a field such as law, public health, energy infrastructure, education, security, creative systems, or data governance, but do not necessarily write verifier code.
10+
11+
A domain expert contributes the boundary knowledge. A technical collaborator implements the verifier. Both must agree before a petal makes a public claim.
12+
13+
## What a Gold petal is
14+
15+
A Gold petal is a bounded behavioral verifier for a specific domain.
16+
17+
It answers one question:
18+
19+
```text
20+
Was a defined behavioral boundary present in the system state at verification time?
21+
```
22+
23+
It does not answer:
24+
25+
- Is this system good?
26+
- Is this system safe?
27+
- Does this system comply with regulations?
28+
- Should this system be deployed?
29+
30+
A petal is a witness, not a judge. The domain expert's job is to define what the petal witnesses.
31+
32+
## Step 1 - Define the domain boundary
33+
34+
Before anything is built, answer these questions in plain language:
35+
36+
### What behavior are we checking for?
37+
38+
Be specific.
39+
40+
`AI safety` is not a boundary.
41+
42+
`The system has a documented refusal policy with at least three defined refusal categories` is a boundary.
43+
44+
### What does a violation look like?
45+
46+
Describe the state that would cause the verifier to fail.
47+
48+
If you cannot describe a failure state, the boundary is not defined yet.
49+
50+
### What is outside this petal's scope?
51+
52+
A petal that implies it checks things it does not check is more dangerous than a narrow petal.
53+
54+
Write the boundary in plain language first. The technical collaborator can translate it into verifiable form.
55+
56+
## Step 2 - Provide test vectors
57+
58+
A test vector is a concrete example of a state that should pass or fail.
59+
60+
Passing example:
61+
62+
- a configuration file where boundary fields are present, non-empty, and structurally correct
63+
64+
Failing examples:
65+
66+
- the configuration file is absent
67+
- a required field is null or empty
68+
- a boundary field has been tampered
69+
70+
A boundary that cannot fail is not a boundary.
71+
72+
## Step 3 - Distinguish evidence from interpretation
73+
74+
Evidence is something the verifier can observe directly.
75+
76+
Interpretation is a judgment call about what the evidence means.
77+
78+
| Statement | Type | In verifier? |
79+
|---|---|---|
80+
| The policy document exists at the configured path. | Evidence | Yes |
81+
| The policy has at least three defined categories. | Evidence if schema-checkable | Yes, if encoded. |
82+
| The policy is adequate for deployment. | Interpretation | No |
83+
| The system will behave correctly in production. | Interpretation | No |
84+
85+
Riverbraid verifiers witness evidence. They do not make broad interpretive judgments.
86+
87+
## Step 4 - Document failure behavior
88+
89+
For the domain, describe what should happen when the verifier fails.
90+
91+
Riverbraid petals are fail-closed by default.
92+
93+
If the domain has a reason to deviate, document it explicitly and require maintainer agreement.
94+
95+
## Step 5 - Write non-claims
96+
97+
Before publication, produce a non-claims list.
98+
99+
Start with:
100+
101+
- regulatory compliance
102+
- runtime behavior
103+
- completeness
104+
- production readiness
105+
- external audit
106+
- certification
107+
108+
Then add domain-specific non-claims.
109+
110+
Non-claims are part of the trust surface, not admissions of weakness.
111+
112+
## Step 6 - Review the verifier before publication
113+
114+
Ask:
115+
116+
- Does the verifier check the boundary we defined?
117+
- Does it fail on the failing examples?
118+
- Does it pass on the passing example?
119+
- Does `claim_level` in `petal.json` match the verifier depth?
120+
- Does `non_scope` include everything agreed out of scope?
121+
122+
The domain expert does not need to read all code. They need to see the verifier run against the test vectors and confirm the output matches the boundary.
123+
124+
## Step 7 - Maintain the boundary over time
125+
126+
Domain boundaries drift. Standards change. Best practices evolve.
127+
128+
The domain expert is responsible for flagging when a boundary may no longer be accurate.
129+
130+
The technical maintainer implements verifier changes. The domain expert helps decide when changes are needed.
131+
132+
## What not to do
133+
134+
- Do not claim a verifier checks something it does not check.
135+
- Do not upgrade `claim_level` without execution evidence.
136+
- Do not publish a petal without non-claims.
137+
- Do not use certification language.
138+
- Do not treat a presence-check petal as a deeper verifier.
139+
140+
## How to propose a new petal
141+
142+
Open an issue in `Riverbraid-Documentation` using the New Petal Proposal template.
143+
144+
Include:
145+
146+
- domain name
147+
- plain-language boundary definition
148+
- at least two failing examples
149+
- at least one passing example
150+
- initial non-claims list
151+
- proposed maintainer
152+
153+
Proposals missing these items should be returned for revision, not rejected.
154+
155+
## Compatibility language
156+
157+
Use:
158+
159+
```text
160+
[System] uses a Riverbraid-aligned governance surface for [domain].
161+
Verification scope: [what the petal checks]
162+
Non-claims: [what the petal does not check]
163+
Evidence: [where the evidence lives]
164+
This is not a Riverbraid certification.
165+
```
166+
167+
## Non-claim
168+
169+
This guide does not admit a petal to the registry, assign maintainer authority, or upgrade verifier depth.

0 commit comments

Comments
 (0)