1
+ # Metadata Configuration for Documentation
2
+ metadata_rules :
3
+ # PERSONA
4
+ persona :
5
+ required : true
6
+ multiple : true
7
+ min : 1
8
+ validation_rules :
9
+ - enum :
10
+ - app-developer
11
+ - node-operator
12
+ - chain-operator
13
+ - partner
14
+ - protocol-developer
15
+ - auditor
16
+ - governance-participant
17
+ description : " Must select at least one valid persona"
18
+
19
+ # CONTENT TYPE
20
+ content_type :
21
+ required : true
22
+ multiple : false
23
+ validation_rules :
24
+ - enum :
25
+ - tutorial # step-by-step instructions
26
+ - landing-page # navigation and overview pages
27
+ - guide # general how-to content and concept exlainers
28
+ - reference # technical specifications and API docs
29
+ - troubleshooting # problem-solution focused
30
+ - notice # Technical updates: breaking changes, upgrades, deprecations
31
+ - announcement # Community/Governance updates: new programs, initiatives
32
+ description : " Must select exactly one content type"
33
+
34
+ # TOPIC
35
+ topic :
36
+ required : true
37
+ multiple : false
38
+ validation_rules :
39
+ - pattern : ^[a-z0-9]+(?:-[a-z0-9]+)*$
40
+ description : " Must be kebab-case, derived from page title"
41
+ examples : ["standard-bridge", "account-abstraction", "ecotone-upgrade"]
42
+ - unique : true
43
+ description : " Topic must be unique across all pages"
44
+ - max_length : 100
45
+ description : " Topic should be concise"
46
+
47
+ # CATEGORIES
48
+ categories :
49
+ required : true
50
+ multiple : true
51
+ min : 1
52
+ max : 5
53
+ validation_rules :
54
+ - no_duplicates : true
55
+ description : " Categories must not repeat"
56
+ - no_metadata_overlap :
57
+ fields : ["topic", "content_type", "persona"]
58
+ description : " Categories cannot repeat values used in topic, content_type, or persona"
59
+ values :
60
+ # Data Availability Layer
61
+ - eth-da
62
+ - alt-da
63
+ - permissionless-batch-submission
64
+ - block-times
65
+
66
+ # Sequencing Layer
67
+ - sequencer
68
+ - sequencer-pbs
69
+ - sequencer-decentralization
70
+ - sequencer-in-a-box
71
+ - op-batcher
72
+
73
+ # Derivation Layer
74
+ - rollup-node
75
+ - fault-proofs
76
+ - fp-contracts
77
+ - op-challenger
78
+ - cannon
79
+ - zk
80
+ - op-workbench # Tool: derivation testing & simulation
81
+
82
+ # Execution Layer
83
+ - op-geth
84
+ - op-reth
85
+ - op-erigon
86
+ - op-nethermind
87
+ - evm-equivalence
88
+ - precompiles
89
+ - predeploys
90
+ - preinstalls
91
+ - custom-gas-token
92
+ - l2-contracts
93
+ - dev-console # Tool: execution layer interaction
94
+
95
+ # Settlement Layer
96
+ - l1-contracts
97
+ - standard-bridge
98
+ - teleportr
99
+ - interop
100
+ - interoperability
101
+ - cross-chain-messaging
102
+ - interoperable-assets
103
+ - op-deployer # Tool: contract deployment
104
+ - op-supervisor
105
+
106
+ # Governance Layer
107
+ - security-council
108
+ - op-token
109
+ - blockspace-charters
110
+ - retro-funding
111
+ - revshare-enshrinement
112
+ - superchain-registry
113
+
114
+ # Cross-layer Development Tools
115
+ - supersim # Tests across multiple layers
116
+ - devnets # Full-stack local environment
117
+ - performance-tooling # Stack-wide performance testing
118
+ - superchain-registry # Chain management across layers
119
+ - l1-deployment-upgrade-tooling # Cross-layer deployment
120
+ - l2-deployment-upgrade-tooling # Cross-layer deployment
121
+
122
+ # Chain Management (Cross-layer)
123
+ - protocol
124
+ - infrastructure
125
+ - op-proposer
126
+ - op-supervisor
127
+ - op-conductor
128
+ - op-signer
129
+ - mcp
130
+ - mcp-l2
131
+ - upgrade-standard-chains-stage-1
132
+ - launch-new-chains-stage-1
133
+ - automated-pause
134
+ - dispute-mon
135
+ - monitorism
136
+ - vertical-scaling
137
+
138
+ # Protocol Releases
139
+ - granite
140
+ - holocene
141
+ - isthmus
142
+ - canyon
143
+ - delta
144
+ - ecotone
145
+ - fjord
146
+ - network-upgrade
147
+ - hard-fork
148
+
149
+ # Infrastructure & Operations
150
+ - kubernetes-infrastructure
151
+ - devops-tooling
152
+ - artifacts-packaging
153
+ - peer-management-service
154
+ - proxyd
155
+ - zdd-service
156
+ - snapman
157
+ - op-beat
158
+ - security-monitoring-response
159
+ - stability-monitoring
160
+ - security
161
+
162
+ # Development Languages & SDKs
163
+ - solidity
164
+ - typescript
165
+ - javascript
166
+ - go
167
+ - rust
168
+ - python
169
+ - foundry
170
+ - hardhat
171
+ - ethers
172
+ - viem
173
+ - web3js
174
+ - wagmi
175
+
176
+ # Development Environments
177
+ - local-devnet
178
+ - testnet
179
+ - mainnet
180
+
181
+ # Superchain Categories
182
+ - superchain-registry
183
+ - security-council
184
+ - blockspace-charters
185
+
186
+ # TIMEFRAME
187
+ timeframe :
188
+ required_for :
189
+ - announcement
190
+ - notice
191
+ required : false
192
+ multiple : false
193
+ validation_rules :
194
+ # Component versions
195
+ - pattern : ^(op-\w+|cannon)/v\d+\.\d+\.\d+$
196
+ description : " Component releases must be in format component/vX.Y.Z"
197
+ examples : ["op-node/v1.11.0", "op-batcher/v1.11.1"]
198
+
199
+ # Release candidates
200
+ - pattern : ^(op-\w+)/v\d+\.\d+\.\d+-rc\.\d+$
201
+ description : " Release candidates must be in format component/vX.Y.Z-rc.N"
202
+ examples : ["op-node/v1.11.0-rc.2"]
203
+
204
+ # Alpha/Beta versions
205
+ - pattern : ^(op-\w+|cannon)/v\d+\.\d+\.\d+-(alpha|beta)\.\d+$
206
+ description : " Alpha/Beta releases must be in format component/vX.Y.Z-{alpha|beta}.N"
207
+ examples : ["cannon/v1.4.0-alpha.1"]
208
+
209
+ # Season format
210
+ - pattern : ^S[6-9]|S[1-9][0-9]+$
211
+ description : " Season numbers must start with 'S' followed by a number 6 or greater"
212
+ examples : ["S6", "S7", "S8", "S10"]
213
+
214
+ # Calendar year
215
+ - pattern : ^20(2[4-9]|[3-9][0-9])$
216
+ description : " Years must be 2024 or later"
217
+ examples : ["2024", "2025", "2026"]
218
+
219
+ # Half year
220
+ - pattern : ^20(2[4-9]|[3-9][0-9])H[1-2]$
221
+ description : " Half years must be in format YYYYH1 or YYYYH2"
222
+ examples : ["2024H1", "2024H2", "2025H1"]
223
+
224
+ # Quarter
225
+ - pattern : ^20(2[4-9]|[3-9][0-9])Q[1-4]$
226
+ description : " Quarters must be in format YYYYQ1-Q4"
227
+ examples : ["2024Q1", "2024Q2", "2025Q3"]
228
+
229
+ # Month
230
+ - pattern : ^20(2[4-9]|[3-9][0-9])-(0[1-9]|1[0-2])$
231
+ description : " Months must be in format YYYY-MM"
232
+ examples : ["2024-01", "2024-12", "2025-06"]
233
+
234
+ # Protocol upgrades
235
+ - enum :
236
+ - bedrock
237
+ - canyon
238
+ - delta
239
+ - ecotone
240
+ - fjord
241
+ - granite
242
+ - holocene
243
+ - isthmus
244
+ description : " Protocol upgrade names must match exactly"
0 commit comments