|
96 | 96 | requires: |
97 | 97 | - state_key: "external-targets" |
98 | 98 | in_file: ".machine_readable/6a2/STATE.a2ml" |
99 | | - reason: "B requires 6+ diverse external targets tested" |
| 99 | + reason: "B requires 6+ diverse external targets tested (canonical key)" |
| 100 | + fallback_key: "grade-b-status" |
| 101 | + fallback_caveat: "legacy key; entries are often internal capabilities and must be re-classified" |
100 | 102 | - state_key: "issues-fed-back" |
101 | 103 | in_file: ".machine_readable/6a2/STATE.a2ml" |
102 | | - reason: "B requires an issues-fed-back pipeline" |
| 104 | + reason: "B requires an issues-fed-back pipeline (canonical key)" |
103 | 105 | evidence_of: |
104 | 106 | - "6+ diverse external-target entries, each with identity + date + outcome" |
105 | 107 | - "external-issue label in the repo's issue tracker with >=1 closed issue" |
106 | 108 | - "feedback log or changelog entry attributing a change to an external target" |
107 | 109 | negative_signal: |
108 | 110 | - "internal-capability items (QUIC, multinode, etc.) do NOT count as external targets" |
| 111 | + - "legacy [grade-b-status] entries that describe internal infrastructure must be moved" |
109 | 112 |
|
110 | 113 | A: |
111 | 114 | requires_all_of: "B" |
112 | 115 | requires: |
113 | 116 | - state_key: "field-signal" |
114 | 117 | in_file: ".machine_readable/6a2/STATE.a2ml" |
115 | | - reason: "A requires real-world external feedback confirming value" |
| 118 | + reason: "A requires real-world external feedback confirming value (canonical key)" |
116 | 119 | evidence_of: |
117 | 120 | - "multi-source external usage confirmation (testimonials, third-party writeups, papers citing)" |
118 | 121 | - "no harm signal: no unresolved safety / correctness incidents in last 90 days" |
119 | 122 | @end |
120 | 123 |
|
| 124 | +@schema_conventions: |
| 125 | +# Canonical STATE.a2ml section names this rule expects. Repos that pre-date |
| 126 | +# these conventions should migrate. `[grade-b-status]` is retained as a |
| 127 | +# fallback read for B but its entries must be re-classified — the boj-server |
| 128 | +# 2026-04-18 audit demonstrated that internal-capability items under |
| 129 | +# [grade-b-status] do not satisfy v2.0 B ("6+ diverse external targets"). |
| 130 | +sections: |
| 131 | + - name: "[dogfooding-status]" |
| 132 | + grade: C |
| 133 | + shape: "key-value of capability -> \"done | in-progress | planned — <evidence>\"" |
| 134 | + established: true |
| 135 | + - name: "[external-targets]" |
| 136 | + grade: B |
| 137 | + shape: "key-value of target-identity -> \"<date> — <test outcome> — <contact or URL>\"" |
| 138 | + established: false |
| 139 | + notes: "at least 6 diverse entries; targets must be outside the hyperpolymath estate" |
| 140 | + - name: "[issues-fed-back]" |
| 141 | + grade: B |
| 142 | + shape: "key-value of issue-id -> \"<date> — <external reporter> — <resolution>\"" |
| 143 | + established: false |
| 144 | + notes: "links to closed issues on the repo's tracker carrying an external-reporter label" |
| 145 | + - name: "[field-signal]" |
| 146 | + grade: A |
| 147 | + shape: "key-value of signal-source -> \"<date> — <confirmation type> — <reference>\"" |
| 148 | + established: false |
| 149 | + notes: "multi-source; e.g. testimonial, third-party writeup, paper citation" |
| 150 | + - name: "[grade-b-status]" |
| 151 | + grade: B (legacy) |
| 152 | + shape: "freeform — mixes internal + external in practice" |
| 153 | + established: true |
| 154 | + notes: "superseded by [external-targets]; entries need re-classification per audit" |
| 155 | +@end |
| 156 | + |
121 | 157 | @action: |
122 | 158 | emit_signal: compliance.finding.new |
123 | 159 | message_template: >- |
|
0 commit comments