|
| 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