opencode-skills-collection 4.0.69 → 4.0.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +39 -1
  2. package/bundled-skills/api-integration-architect/SKILL.md +241 -0
  3. package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
  4. package/bundled-skills/apify-integration-development/SKILL.md +168 -0
  5. package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
  6. package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
  7. package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
  8. package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
  9. package/bundled-skills/architecture-review/README.md +42 -0
  10. package/bundled-skills/architecture-review/SKILL.md +77 -0
  11. package/bundled-skills/architecture-review/examples.md +11 -0
  12. package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
  13. package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
  14. package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
  15. package/bundled-skills/architecture-review/reference/graph.md +15 -0
  16. package/bundled-skills/architecture-review/reference/mcp.md +14 -0
  17. package/bundled-skills/architecture-review/reference/workflow.md +15 -0
  18. package/bundled-skills/architecture-review/templates/architecture-review.md +21 -0
  19. package/bundled-skills/code-review-sensei/SKILL.md +177 -0
  20. package/bundled-skills/codebase-onboarding/README.md +42 -0
  21. package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
  22. package/bundled-skills/codebase-onboarding/examples.md +11 -0
  23. package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
  24. package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
  25. package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
  26. package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
  27. package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
  28. package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
  29. package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
  30. package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
  31. package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -0
  32. package/bundled-skills/dependency-analysis/README.md +42 -0
  33. package/bundled-skills/dependency-analysis/SKILL.md +76 -0
  34. package/bundled-skills/dependency-analysis/examples.md +11 -0
  35. package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
  36. package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
  37. package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
  38. package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
  39. package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
  40. package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
  41. package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
  42. package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -0
  43. package/bundled-skills/eas-app-stores/SKILL.md +197 -0
  44. package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
  45. package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
  46. package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
  47. package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
  48. package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
  49. package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
  50. package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
  51. package/bundled-skills/eas-hosting/SKILL.md +448 -0
  52. package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
  53. package/bundled-skills/eas-observe/SKILL.md +75 -0
  54. package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
  55. package/bundled-skills/eas-observe/references/metrics.md +98 -0
  56. package/bundled-skills/eas-observe/references/queries.md +403 -0
  57. package/bundled-skills/eas-observe/references/setup.md +476 -0
  58. package/bundled-skills/eas-observe/references/third-party.md +136 -0
  59. package/bundled-skills/eas-simulator/SKILL.md +251 -0
  60. package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
  61. package/bundled-skills/eas-simulator/references/controllers.md +135 -0
  62. package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
  63. package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
  64. package/bundled-skills/eas-workflows/SKILL.md +119 -0
  65. package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
  66. package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
  67. package/bundled-skills/expo-animation/LICENSE +21 -0
  68. package/bundled-skills/expo-animation/RECIPES.md +385 -0
  69. package/bundled-skills/expo-animation/SKILL.md +295 -0
  70. package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
  71. package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
  72. package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
  73. package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
  74. package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
  75. package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
  76. package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
  77. package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
  78. package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
  79. package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
  80. package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
  81. package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
  82. package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -0
  83. package/bundled-skills/gpt-taste/SKILL.md +8 -1
  84. package/bundled-skills/hf-cli/SKILL.md +263 -0
  85. package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
  86. package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
  87. package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  88. package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  89. package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  90. package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  91. package/bundled-skills/huggingface-datasets/SKILL.md +130 -0
  92. package/bundled-skills/jev-social/SKILL.md +182 -0
  93. package/bundled-skills/longbridge-derivatives/SKILL.md +117 -0
  94. package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
  95. package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
  96. package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
  97. package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
  98. package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
  99. package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
  100. package/bundled-skills/longbridge-quant/SKILL.md +151 -0
  101. package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
  102. package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
  103. package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
  104. package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
  105. package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
  106. package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
  107. package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
  108. package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
  109. package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
  110. package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
  111. package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
  112. package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
  113. package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
  114. package/bundled-skills/longbridge-research/SKILL.md +187 -0
  115. package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
  116. package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
  117. package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
  118. package/bundled-skills/longbridge-research/references/consensus.md +92 -0
  119. package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
  120. package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
  121. package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
  122. package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
  123. package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
  124. package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
  125. package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
  126. package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
  127. package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
  128. package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
  129. package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
  130. package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
  131. package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
  132. package/bundled-skills/longbridge-research/references/investors.md +87 -0
  133. package/bundled-skills/longbridge-research/references/onchain.md +70 -0
  134. package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
  135. package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
  136. package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
  137. package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
  138. package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
  139. package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
  140. package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
  141. package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
  142. package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
  143. package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
  144. package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
  145. package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
  146. package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
  147. package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
  148. package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
  149. package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
  150. package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
  151. package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
  152. package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
  153. package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
  154. package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -0
  155. package/bundled-skills/meeting-distiller-pro/SKILL.md +120 -0
  156. package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +12 -1
  157. package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
  158. package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
  159. package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -0
  160. package/bundled-skills/remotion-captions/SKILL.md +57 -0
  161. package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
  162. package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
  163. package/bundled-skills/remotion-captions/display-captions.md +190 -0
  164. package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
  165. package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
  166. package/bundled-skills/remotion-create/SKILL.md +106 -0
  167. package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
  168. package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
  169. package/bundled-skills/remotion-create/tailwind.md +11 -0
  170. package/bundled-skills/remotion-create/video-layout.md +9 -0
  171. package/bundled-skills/remotion-docs/SKILL.md +67 -0
  172. package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
  173. package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
  174. package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
  175. package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
  176. package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
  177. package/bundled-skills/remotion-render/SKILL.md +48 -0
  178. package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
  179. package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
  180. package/bundled-skills/remotion-render/transparent-videos.md +106 -0
  181. package/bundled-skills/saas-pricing-strategist/SKILL.md +169 -0
  182. package/bundled-skills/score-eval/SKILL.md +35 -0
  183. package/bundled-skills/writing-guidelines/SKILL.md +60 -0
  184. package/package.json +1 -1
  185. package/skills_index.json +980 -3
@@ -0,0 +1,243 @@
1
+ ButtonFlatter{text: "File"}
2
+ ButtonFlatter{text: "Edit"}
3
+ ButtonFlatter{text: "View"}
4
+ Filler{}
5
+ ButtonFlat{text: "Run"}
6
+ }
7
+ ```
8
+
9
+ ### Card Grid with Wrapping
10
+
11
+ ```
12
+ use mod.prelude.widgets.*
13
+
14
+ let Card = RoundedView{
15
+ width: 180 height: Fit
16
+ padding: 12 flow: Down spacing: 6
17
+ draw_bg.color: #334
18
+ draw_bg.border_radius: 8.0
19
+ title := Label{text: "Card" draw_text.color: #fff draw_text.text_style.font_size: 12}
20
+ body := Label{text: "Content" draw_text.color: #aaa draw_text.text_style.font_size: 10}
21
+ }
22
+
23
+ View{
24
+ width: Fill height: Fit
25
+ flow: Flow.Right{wrap: true}
26
+ spacing: 10 padding: 16
27
+ Card{title.text: "Design" body.text: "UI mockups"}
28
+ Card{title.text: "Backend" body.text: "API endpoints"}
29
+ Card{title.text: "Testing" body.text: "Unit tests"}
30
+ Card{title.text: "Deploy" body.text: "CI/CD pipeline"}
31
+ }
32
+ ```
33
+
34
+ ### Centered Content
35
+
36
+ ```
37
+ use mod.prelude.widgets.*
38
+
39
+ View{
40
+ width: Fill height: 400
41
+ align: Center
42
+ flow: Down spacing: 12
43
+ Label{text: "Welcome" draw_text.color: #fff draw_text.text_style.font_size: 24}
44
+ Label{text: "Click below to get started" draw_text.color: #aaa}
45
+ Button{text: "Get Started"}
46
+ }
47
+ ```
48
+
49
+ ### Split Panel (Sidebar + Content)
50
+
51
+ ```
52
+ use mod.prelude.widgets.*
53
+
54
+ // Simple approach with fixed sidebar
55
+ View{
56
+ width: Fill height: Fill
57
+ flow: Right
58
+ SolidView{
59
+ width: 250 height: Fill
60
+ draw_bg.color: #1a1a2e
61
+ flow: Down padding: 12 spacing: 8
62
+ Label{text: "Navigation" draw_text.color: #fff draw_text.text_style.font_size: 14}
63
+ Label{text: "Home" draw_text.color: #aaa}
64
+ Label{text: "Settings" draw_text.color: #aaa}
65
+ Label{text: "About" draw_text.color: #aaa}
66
+ }
67
+ View{
68
+ width: Fill height: Fill
69
+ flow: Down padding: 20 spacing: 10
70
+ Label{text: "Main Content" draw_text.color: #fff draw_text.text_style.font_size: 16}
71
+ Label{text: "Page body here" draw_text.color: #ddd}
72
+ }
73
+ }
74
+
75
+ // Resizable approach with Splitter
76
+ Splitter{
77
+ axis: SplitterAxis.Horizontal
78
+ align: SplitterAlign.FromA(250.0)
79
+ a := sidebar
80
+ b := main_content
81
+ }
82
+ sidebar := SolidView{
83
+ width: Fill height: Fill
84
+ draw_bg.color: #1a1a2e
85
+ flow: Down padding: 12
86
+ Label{text: "Sidebar" draw_text.color: #fff}
87
+ }
88
+ main_content := View{
89
+ width: Fill height: Fill
90
+ flow: Down padding: 20
91
+ Label{text: "Content" draw_text.color: #fff}
92
+ }
93
+ ```
94
+
95
+ ### Fixed Header + Scrollable Body + Fixed Footer
96
+
97
+ ```
98
+ use mod.prelude.widgets.*
99
+
100
+ View{
101
+ width: Fill height: Fill
102
+ flow: Down
103
+
104
+ // Fixed header
105
+ SolidView{
106
+ width: Fill height: Fit
107
+ padding: Inset{top: 12 bottom: 12 left: 20 right: 20}
108
+ draw_bg.color: #2a2a3d
109
+ flow: Right
110
+ align: Align{y: 0.5}
111
+ Label{text: "App Title" draw_text.color: #fff draw_text.text_style.font_size: 16}
112
+ Filler{}
113
+ ButtonFlatter{text: "Settings"}
114
+ }
115
+
116
+ // Scrollable body (height: Fill takes remaining space)
117
+ ScrollYView{
118
+ width: Fill height: Fill
119
+ flow: Down padding: 16 spacing: 10
120
+ new_batch: true
121
+ Label{text: "Scrollable content item 1" draw_text.color: #ddd}
122
+ Label{text: "Scrollable content item 2" draw_text.color: #ddd}
123
+ Label{text: "Scrollable content item 3" draw_text.color: #ddd}
124
+ Label{text: "Scrollable content item 4" draw_text.color: #ddd}
125
+ Label{text: "Scrollable content item 5" draw_text.color: #ddd}
126
+ }
127
+
128
+ // Fixed footer
129
+ SolidView{
130
+ width: Fill height: Fit
131
+ padding: Inset{top: 8 bottom: 8 left: 20 right: 20}
132
+ draw_bg.color: #1e1e2e
133
+ flow: Right
134
+ align: Align{y: 0.5}
135
+ Label{text: "Status: Ready" draw_text.color: #888 draw_text.text_style.font_size: 10}
136
+ Filler{}
137
+ Label{text: "v1.0" draw_text.color: #666 draw_text.text_style.font_size: 10}
138
+ }
139
+ }
140
+ ```
141
+
142
+ ### Overlay / Modal Positioning
143
+
144
+ ```
145
+ use mod.prelude.widgets.*
146
+
147
+ View{
148
+ width: Fill height: 400
149
+ flow: Overlay
150
+
151
+ // Base layer -- the page content
152
+ View{
153
+ width: Fill height: Fill
154
+ flow: Down padding: 20
155
+ Label{text: "Background page content" draw_text.color: #888}
156
+ }
157
+
158
+ // Overlay layer -- centered modal dialog
159
+ View{
160
+ width: Fill height: Fill
161
+ align: Center
162
+ RoundedView{
163
+ width: 320 height: Fit
164
+ padding: 20 flow: Down spacing: 12
165
+ draw_bg.color: #2a2a3d
166
+ draw_bg.border_radius: 12.0
167
+ new_batch: true
168
+ Label{text: "Confirm Action" draw_text.color: #fff draw_text.text_style.font_size: 16}
169
+ Label{text: "Are you sure you want to proceed?" draw_text.color: #aaa}
170
+ View{
171
+ width: Fill height: Fit
172
+ flow: Right spacing: 8
173
+ align: Align{x: 1.0}
174
+ ButtonFlat{text: "Cancel"}
175
+ Button{text: "Confirm"}
176
+ }
177
+ }
178
+ }
179
+ }
180
+ ```
181
+
182
+ ---
183
+
184
+ ## Critical Rules Summary
185
+
186
+ ### 1. height: Fit on ALL containers (the number one bug)
187
+
188
+ Every View, SolidView, RoundedView must have `height: Fit` unless inside a fixed-height
189
+ or Fill-height parent chain. Forgetting this makes the UI invisible (0px).
190
+
191
+ ### 2. width: Fill on root container
192
+
193
+ Never use a fixed pixel width on the outermost container. It will not adapt to the
194
+ available space. Always use `width: Fill` on the root element.
195
+
196
+ ### 3. new_batch: true when View has show_bg AND text children
197
+
198
+ When a container has `show_bg: true` (including SolidView, RoundedView, etc.) and
199
+ contains Labels or other text, set `new_batch: true` on the container. Without it,
200
+ text may render behind the background due to GPU draw call batching.
201
+
202
+ ```
203
+ // CORRECT: new_batch ensures text draws on top of background
204
+ RoundedView{
205
+ width: Fill height: Fit
206
+ padding: 12 flow: Down
207
+ draw_bg.color: #334
208
+ draw_bg.border_radius: 8.0
209
+ new_batch: true
210
+ Label{text: "Visible text" draw_text.color: #fff}
211
+ }
212
+ ```
213
+
214
+ ### 4. Do not use Filler next to width: Fill siblings
215
+
216
+ Filler and `width: Fill` siblings compete for the same remaining space, causing 50/50
217
+ split and text clipping. Use Filler only between `width: Fit` siblings.
218
+
219
+ ### 5. ScrollYView uses height: Fill, not height: Fit
220
+
221
+ Scrollable views need a fixed viewport. Use `height: Fill` on ScrollYView so it fills
222
+ the parent and scrolls its content within that space.
223
+
224
+ ---
225
+
226
+ ## Documentation
227
+
228
+ - Layout pattern examples and complete code: `./references/layout-patterns.md`
229
+ - Splash language manual: `/splash.md`
230
+ - Widget catalog: `/skills/makepad-2.0-widgets/references/widget-catalog.md`
231
+
232
+
233
+ ## Examples
234
+
235
+ ```text
236
+ User: Apply this skill to my current task.
237
+ Assistant: Follow the workflow in this skill, cite limitations, and ask before risky steps.
238
+ ```
239
+
240
+ ## Limitations
241
+
242
+ - Imported upstream skill; verify credentials, permissions, and safety boundaries before execution.
243
+ - Does not replace environment-specific validation, testing, or maintainer review.