opencode-skills-collection 4.0.74 → 4.0.75

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 (50) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +14 -1
  2. package/bundled-skills/claude-api/SKILL.md +4 -4
  3. package/bundled-skills/claude-api/curl/examples.md +5 -5
  4. package/bundled-skills/claude-api/java/claude-api.md +1 -1
  5. package/bundled-skills/claude-api/php/claude-api.md +2 -2
  6. package/bundled-skills/claude-api/python/claude-api/README.md +13 -13
  7. package/bundled-skills/claude-api/python/claude-api/batches.md +3 -3
  8. package/bundled-skills/claude-api/python/claude-api/files-api.md +3 -3
  9. package/bundled-skills/claude-api/python/claude-api/streaming.md +6 -6
  10. package/bundled-skills/claude-api/python/claude-api/tool-use.md +19 -19
  11. package/bundled-skills/claude-api/ruby/claude-api.md +3 -3
  12. package/bundled-skills/claude-api/shared/error-codes.md +2 -2
  13. package/bundled-skills/claude-api/shared/live-sources.md +1 -1
  14. package/bundled-skills/claude-api/shared/models.md +4 -4
  15. package/bundled-skills/claude-api/shared/tool-use-concepts.md +2 -2
  16. package/bundled-skills/claude-api/typescript/claude-api/README.md +12 -12
  17. package/bundled-skills/claude-api/typescript/claude-api/batches.md +2 -2
  18. package/bundled-skills/claude-api/typescript/claude-api/files-api.md +1 -1
  19. package/bundled-skills/claude-api/typescript/claude-api/streaming.md +4 -4
  20. package/bundled-skills/claude-api/typescript/claude-api/tool-use.md +14 -14
  21. package/bundled-skills/electron-drive-skill/LICENSE +21 -0
  22. package/bundled-skills/electron-drive-skill/README.md +172 -0
  23. package/bundled-skills/electron-drive-skill/SKILL.md +237 -0
  24. package/bundled-skills/electron-drive-skill/drive.config.json.example +10 -0
  25. package/bundled-skills/electron-drive-skill/package.json +28 -0
  26. package/bundled-skills/electron-drive-skill/scripts/daemon.mjs +352 -0
  27. package/bundled-skills/electron-drive-skill/scripts/drive.mjs +250 -0
  28. package/bundled-skills/electron-drive-skill/scripts/lib.mjs +165 -0
  29. package/bundled-skills/electron-drive-skill/scripts/lib.test.mjs +56 -0
  30. package/bundled-skills/mcp-dependency-drift-audit/SKILL.md +169 -0
  31. package/bundled-skills/nexrad-mosaic-access/SKILL.md +297 -0
  32. package/bundled-skills/nexrad-mosaic-construction/SKILL.md +277 -0
  33. package/bundled-skills/nexrad-product-access/SKILL.md +258 -0
  34. package/bundled-skills/nexrad-radar-visualization/SKILL.md +318 -0
  35. package/bundled-skills/radar-satellite-analysis/SKILL.md +314 -0
  36. package/bundled-skills/traderspy-market-briefing/SKILL.md +132 -0
  37. package/bundled-skills/traderspy-market-screener/SKILL.md +182 -0
  38. package/bundled-skills/traderspy-market-screener/references/condition-cookbook.md +70 -0
  39. package/bundled-skills/traderspy-position-check/SKILL.md +130 -0
  40. package/bundled-skills/traderspy-position-check/references/risk-math.md +60 -0
  41. package/bundled-skills/traderspy-smart-money/SKILL.md +151 -0
  42. package/bundled-skills/traderspy-smart-money/references/exchange-notes.md +40 -0
  43. package/bundled-skills/traderspy-technical-analysis/SKILL.md +162 -0
  44. package/bundled-skills/traderspy-technical-analysis/references/derivatives-guide.md +57 -0
  45. package/bundled-skills/traderspy-technical-analysis/references/indicator-guide.md +47 -0
  46. package/bundled-skills/traderspy-trading-signals/SKILL.md +156 -0
  47. package/bundled-skills/traderspy-trading-signals/references/signal-fields.md +64 -0
  48. package/bundled-skills/unified-ai-gateway/SKILL.md +3 -3
  49. package/package.json +1 -1
  50. package/skills_index.json +235 -1
@@ -0,0 +1,297 @@
1
+ ---
2
+ name: nexrad-mosaic-access
3
+ description: "Access official NOAA/NCEP MRMS radar and multisensor composites for a region and time; validate product, grid, domain, quality, timestamp, and provenance."
4
+ category: data
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-25"
9
+ author: ShianMike
10
+ tags: [weather, nexrad, mrms, mosaic, qpe, vil, vii, mesh, composite-products]
11
+ tools: [claude, cursor, gemini, codex]
12
+ ---
13
+
14
+ # NEXRAD Mosaic Access
15
+
16
+ ## Overview
17
+
18
+ Retrieve an existing NOAA/NCEP Multi-Radar/Multi-Sensor (MRMS) product without
19
+ confusing it with a single NEXRAD volume or a locally constructed mosaic.
20
+ MRMS provides timestamped 2D radar-only and multisensor products for regional
21
+ analysis. Select the exact product, domain, time, and file before downloading,
22
+ then validate the decoded grid and provenance. This skill covers access to
23
+ existing MRMS products; it does not build a custom multi-radar composite.
24
+
25
+ Use `nexrad-product-access` when the user needs one radar site's Level II or
26
+ Level III data. Use this skill when the requested object is already a mosaic or
27
+ multisensor analysis such as QPE, VIL, VII, or MESH.
28
+
29
+ ## When to Use This Skill
30
+
31
+ - Access an official NEXRAD-derived national or regional mosaic.
32
+ - Retrieve MRMS radar-derived or multisensor precipitation products.
33
+ - Access VIL, VII, MESH, or MultiSensor QPE for a specified UTC time.
34
+ - Obtain a completed product for mapping or analysis without downloading every
35
+ contributing radar volume.
36
+ - Compare mosaic products while preserving product identity, generation time,
37
+ domain, and grid metadata.
38
+
39
+ Do not use this skill for a single-site sweep, a Level II moment, or a custom
40
+ mosaic that must be constructed from several radars. Route those tasks to
41
+ `nexrad-product-access` or a dedicated mosaicking workflow.
42
+
43
+ ## Official MRMS 2D Access
44
+
45
+ NOAA/NCEP exposes the 2D product archive at:
46
+
47
+ ```text
48
+ https://mrms.ncep.noaa.gov/2D/
49
+ ```
50
+
51
+ The public index includes directories such as:
52
+
53
+ ```text
54
+ https://mrms.ncep.noaa.gov/2D/MultiSensor_QPE_01H_Pass1/
55
+ https://mrms.ncep.noaa.gov/2D/VIL/
56
+ https://mrms.ncep.noaa.gov/2D/VII/
57
+ https://mrms.ncep.noaa.gov/2D/MESH/
58
+ ```
59
+
60
+ These are representative examples, not a complete product catalog. NOAA/NSSL
61
+ describes the MRMS suite as containing 100+ products; available products and
62
+ distribution formats vary by product, version, domain, and feed. Consult the
63
+ current [NOAA/NSSL MRMS overview](https://www.nssl.noaa.gov/projects/mrms/),
64
+ product guide, and live NCEP index rather than treating this short list as an
65
+ allowlist.
66
+
67
+ Directories can contain a convenience link such as
68
+ `MRMS_<Product>.latest.grib2.gz` and timestamped compressed GRIB2 files. Some
69
+ products may also have regional directories such as `CONUS`, `GUAM`, or
70
+ `CARIB`; verify the selected product directory rather than assuming a domain.
71
+
72
+ For reproducible analysis, prefer an exact timestamped file. Use the `latest`
73
+ link only for a live snapshot, then record the exact timestamp, URL, redirect
74
+ target if any, content length, and retrieval time.
75
+
76
+ ## Choose the Composite Product
77
+
78
+ Do not select a directory from a color image or a familiar abbreviation alone.
79
+ Read the current product description and metadata enough to confirm:
80
+
81
+ - product name and version;
82
+ - whether it is radar-only, multisensor, gauge corrected, or analysis based;
83
+ - accumulation or integration period;
84
+ - valid or scan time semantics;
85
+ - update cadence and latency;
86
+ - spatial domain and grid;
87
+ - missing, no-data, and quality semantics;
88
+ - units, scale, and packed-data representation.
89
+
90
+ Important distinctions include:
91
+
92
+ - **QPE:** accumulated precipitation estimate, not a reflectivity image.
93
+ - **VIL:** vertically integrated liquid from radar structure, not surface rain
94
+ rate or hail mass.
95
+ - **VII:** vertically integrated ice from radar structure, not total
96
+ precipitation.
97
+ - **MESH:** maximum expected size of hail for the product interval, not the
98
+ current cloud-top temperature or a verified hail observation.
99
+
100
+ Use the current product documentation to confirm exact meaning. Do not infer a
101
+ product from its directory name alone.
102
+
103
+ ## Define the Mosaic Request
104
+
105
+ Record:
106
+
107
+ - exact MRMS product and version;
108
+ - national, regional, or other available domain;
109
+ - exact valid time or bounded historical interval;
110
+ - `latest` or timestamped-file policy;
111
+ - variables, units, accumulation period, and quality fields;
112
+ - desired geographic crop and output grid policy;
113
+ - maximum lookback, file-size limit, and acceptable latency;
114
+ - whether the product is being treated as official mosaic truth, an analysis
115
+ input, or a comparison target;
116
+ - required provenance and artifact policy.
117
+
118
+ If the user requests one storm's single-radar structure, this is the wrong
119
+ skill. A mosaic is useful for broad coverage and regional products but can
120
+ obscure site-level vertical or velocity structure.
121
+
122
+ ## Access Workflow
123
+
124
+ 1. Open or list the documented product directory under `/2D/`.
125
+ 2. Match the exact product, domain, and timestamp policy.
126
+ 3. Select an exact timestamped compressed GRIB2 file for retrospective work.
127
+ 4. For `latest`, follow the convenience link only after recording the final URL
128
+ and resolving its timestamped identity.
129
+ 5. Request file metadata with a bounded HTTP `HEAD` or equivalent read-only
130
+ check when the server supports it.
131
+ 6. Download to a request-owned temporary path without executing content from
132
+ the server path.
133
+ 7. Verify received size and a provider checksum when present; otherwise compute
134
+ and record a local SHA-256.
135
+ 8. Decompress the `.gz` into a new temporary `.grib2` file. Do not decompress in
136
+ place over a shared cache entry.
137
+ 9. Open the GRIB2 with a format-aware decoder and verify product, reference
138
+ time, forecast or valid time, grid, variables, units, and missing values.
139
+ 10. Promote the verified product and record its source identity.
140
+
141
+ Keep compressed bytes, decoded values, and any reprojected or cropped artifact
142
+ as separate stages with separate hashes or identities.
143
+
144
+ ## Handle Latest and Historical Time Correctly
145
+
146
+ `latest` is a moving convenience name. A later request can return different
147
+ bytes even though its URL is unchanged. For analysis and publication:
148
+
149
+ - resolve `latest` to the actual timestamped file;
150
+ - record retrieval time and product valid or scan time separately;
151
+ - use the timestamped file for replay;
152
+ - do not use the `latest` URL as immutable provenance;
153
+ - report latency between product time and retrieval time.
154
+
155
+ If the directory contains multiple passes, revisions, or accumulation windows,
156
+ select the exact contract required by the task. Do not choose the newest file
157
+ merely because its name sorts last.
158
+
159
+ ## Validate the Mosaic Grid
160
+
161
+ Before interpreting or plotting, verify:
162
+
163
+ - domain and expected geographic extent;
164
+ - projection or GRIB coordinate definition;
165
+ - x/y orientation and scan mode;
166
+ - latitude and longitude coordinates after decoding;
167
+ - cell size, dimensions, and row or column ordering;
168
+ - time coordinate, units, and interval semantics;
169
+ - no-data, missing, and quality values;
170
+ - packed scale and offset or other calibration;
171
+ - consistency with the product's documented grid contract.
172
+
173
+ Do not transpose, flip, or relabel a grid based on visual appearance alone. A
174
+ plausible-looking map can still be spatially reversed or attached to the wrong
175
+ time.
176
+
177
+ ## Preserve Product and Measurement Meaning
178
+
179
+ An MRMS product is a processed estimate or analysis. Keep these distinctions
180
+ visible:
181
+
182
+ - radar reflectivity or velocity input versus accumulated precipitation;
183
+ - radar-only estimate versus gauge-corrected multisensor analysis;
184
+ - valid time versus product generation or file publication time;
185
+ - missing radar coverage versus a physical zero;
186
+ - official composite product versus locally interpolated or blended fields;
187
+ - analysis value versus uncertainty or quality metadata.
188
+
189
+ Do not label an official mosaic as ground truth. It is a provider product with
190
+ its own assumptions, coverage, latency, and quality limitations.
191
+
192
+ ## Reliability and Cache Behavior
193
+
194
+ - Cache by product, domain, timestamped source URL, byte identity, and local
195
+ checksum—not by `latest` or a friendly timestamp alone.
196
+ - Retry timeouts and transient server failures with bounded backoff and jitter.
197
+ - Honor service limits and avoid parallel directory-wide downloads.
198
+ - Keep partial compressed or decompressed files outside accepted cache entries.
199
+ - Publish a complete file atomically only after decoder validation.
200
+ - Remove request-owned temporary files after the final artifact and provenance
201
+ record are durable; never delete a shared user cache as request cleanup.
202
+
203
+ For large regional or national products, check available disk space and memory
204
+ before download and decode. Crop only after validating the native grid unless
205
+ the source supports a documented range request that preserves the same bytes.
206
+
207
+ ## Examples
208
+
209
+ For “the latest MRMS one-hour multisensor QPE over CONUS before a given UTC
210
+ time,” verify that the product/domain exists, choose a completed timestamp,
211
+ and record valid time separately from retrieval time. Decode the GRIB2 and
212
+ confirm accumulation units, grid orientation, and missing-value encoding
213
+ before mapping it.
214
+
215
+ For “show the latest MRMS VIL,” resolve `latest` to its timestamped file and
216
+ label the result as vertically integrated liquid, not surface rainfall.
217
+
218
+ ## Return a Mosaic Access Record
219
+
220
+ ```json
221
+ {
222
+ "provider": "NOAA/NCEP MRMS",
223
+ "product": "MultiSensor_QPE_01H_Pass1",
224
+ "domain": "CONUS",
225
+ "requested_time_utc": "2026-09-25T12:00:00Z",
226
+ "selected_timestamped_url": "https://mrms.ncep.noaa.gov/2D/.../EXACT_FILE.grib2.gz",
227
+ "retrieved_at_utc": "2026-09-25T12:03:14Z",
228
+ "compressed_size_bytes": 12345678,
229
+ "compressed_sha256": "HEX_DIGEST",
230
+ "decoded_grid": {
231
+ "dimensions": [WIDTH, HEIGHT],
232
+ "projection": "DECODED CRS OR PRODUCT CRS",
233
+ "time_semantics": "VERIFIED PRODUCT TIME"
234
+ },
235
+ "latest_used": false
236
+ }
237
+ ```
238
+
239
+ Do not put a fabricated domain, grid, or time into this record. Omit unknown
240
+ fields or use `null` when the schema permits it.
241
+
242
+ ## Verification Checklist
243
+
244
+ - Product, version, domain, and time contract are explicit.
245
+ - An official composite product is not confused with a single-site volume.
246
+ - Exact timestamped identity is recorded even when access starts from `latest`.
247
+ - Compressed bytes and decoded GRIB2 are validated separately.
248
+ - Product, reference time, valid time, grid, units, and missing values are
249
+ verified after decoding.
250
+ - Radar, multisensor, gauge-corrected, or analysis semantics are preserved.
251
+ - Missing coverage is not converted to a physical zero.
252
+ - The final artifact and provenance identify the exact source file.
253
+
254
+ ## Security & Safety Notes
255
+
256
+ - Use public or authorized MRMS resources only.
257
+ - Never execute or import content based only on a remote filename. Decode with
258
+ explicit format-aware libraries and bounded resource use.
259
+ - Do not expose private endpoints, credentials, signed query strings, or tokens
260
+ in records or logs.
261
+ - Validate product and domain values before constructing URLs; do not allow path
262
+ traversal from untrusted input.
263
+ - Preserve NOAA/NCEP attribution and applicable data-use terms.
264
+
265
+ ## Common Pitfalls
266
+
267
+ - **`latest` changed after the analysis:** A moving convenience link was stored
268
+ as immutable provenance. Resolve and retain the timestamped file identity.
269
+ - **A missing-data region became zero:** The no-data sentinel was treated like a
270
+ physical value. Apply and verify the product's missing-data contract.
271
+ - **A VIL image was called rainfall:** The processed quantity was relabeled.
272
+ Preserve VIL as vertically integrated liquid.
273
+ - **A domain was assumed:** The requested regional directory may not exist for
274
+ that product. Inspect the actual product directory.
275
+ - **A single radar became a mosaic:** A site product was labeled composite
276
+ without combining or retrieving multiple contributions.
277
+ - **The map was flipped:** Grid orientation or scan mode was guessed from
278
+ appearance. Validate decoded coordinate metadata.
279
+
280
+ ## Limitations
281
+
282
+ - Product availability, version, directory layout, and update cadence can
283
+ change. Verify current official documentation.
284
+ - An official mosaic does not expose every native Level II moment or sweep.
285
+ - Provider mosaics have their own quality, coverage, latency, and algorithmic
286
+ limitations and are not direct observations.
287
+ - This skill accesses existing composites; it does not construct a custom
288
+ multi-radar mosaic or perform meteorological verification.
289
+
290
+ ## Additional Resources
291
+
292
+ - [NOAA/NCEP MRMS 2D product directory](https://mrms.ncep.noaa.gov/2D/)
293
+ - [NOAA/NSSL MRMS overview and product suite](https://www.nssl.noaa.gov/projects/mrms/)
294
+ - [MRMS VIL example directory](https://mrms.ncep.noaa.gov/2D/VIL/)
295
+ - [MRMS VII example directory](https://mrms.ncep.noaa.gov/2D/VII/)
296
+ - [MRMS MultiSensor QPE example directory](https://mrms.ncep.noaa.gov/2D/MultiSensor_QPE_01H_Pass1/)
297
+ - [NEXRAD on the AWS Registry of Open Data](https://registry.opendata.aws/noaa-nexrad/)
@@ -0,0 +1,277 @@
1
+ ---
2
+ name: nexrad-mosaic-construction
3
+ description: "Construct a quality-aware NEXRAD multi-radar mosaic from aligned single-site products with explicit coverage, beam geometry, quality weighting, overlap resolution, and provenance."
4
+ category: analysis
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-25"
9
+ author: ShianMike
10
+ tags: [weather, nexrad, mosaic, multi-radar, quality-weighting, coverage, overlap-resolution]
11
+ tools: [claude, cursor, gemini, codex]
12
+ ---
13
+
14
+ # NEXRAD Mosaic Construction
15
+
16
+ ## Overview
17
+
18
+ Build a custom multi-radar composite from aligned, validated single-site data.
19
+ Every output pixel must have a traceable source, coverage state, and quality
20
+ decision. Preserve the distinction between a local analysis product and an
21
+ official provider mosaic.
22
+
23
+ Use this skill after products from multiple radars have been resolved. It does
24
+ not discover, download, or decode source files. Use `nexrad-product-access` for
25
+ single-site access and `nexrad-mosaic-access` when the required result is an
26
+ existing NOAA MRMS composite rather than a newly constructed analysis.
27
+
28
+ ## When to Use This Skill
29
+
30
+ - Combine two or more radars to cover a region with overlapping or adjacent
31
+ fields.
32
+ - Construct a consistent base-reflectivity, velocity, spectrum-width, or
33
+ dual-polarization composite.
34
+ - Build a research mosaic on a common grid or for a cross-radar comparison.
35
+ - Compare a custom mosaic with an official MRMS product.
36
+ - Visualize source contributions and coverage gaps in a composite.
37
+
38
+ Do not use this skill to fetch an official MRMS product, select a single radar,
39
+ or claim that a simple pixel average is a physically resolved regional field.
40
+
41
+ ## Define the Mosaic Contract
42
+
43
+ Record:
44
+
45
+ - product and exact units from each source;
46
+ - source sites, coordinates, volume start/end times, and sweeps;
47
+ - target region, output grid, projection, and cell size;
48
+ - time-matching and temporal interpolation policy;
49
+ - native range limits, beam width, beam height, and vertical sampling;
50
+ - quality-mask, clutter, attenuation, range-folding, and dealiasing policy;
51
+ - overlap-resolution and quality-weighting method;
52
+ - treatment of coastlines, terrain, blocked sectors, and missing gates;
53
+ - output format, metadata, and provenance requirements.
54
+
55
+ Do not combine a Level II moment and a Level III display product merely because
56
+ their names resemble one another. Their processing, resolution, and quality
57
+ semantics must be verified equivalent or the difference must be represented
58
+ explicitly.
59
+
60
+ ## Validate and Align Source Data
61
+
62
+ Before compositing:
63
+
64
+ 1. verify each site's decoded metadata, time, product, units, and quality;
65
+ 2. convert all source fields to one declared projection and common output grid;
66
+ 3. align source times using a documented tolerance and interpolation policy;
67
+ 4. preserve each source's native spatial support and quality fields;
68
+ 5. reject a source that is too stale, out of range, or outside its valid product
69
+ contract;
70
+ 6. label any resampling or interpolation rather than presenting the output as
71
+ a native-resolution observation.
72
+
73
+ When a common time cannot be formed without excessive interpolation, use a
74
+ nearest time within the stated tolerance, retain the actual time difference, or
75
+ mark the output unavailable. Do not average distant scans into one pseudo-time
76
+ without showing the temporal support.
77
+
78
+ ## Define the Output Quantity and Quality
79
+
80
+ For reflectivity, retain dBZ or the product's native calibrated unit and use a
81
+ quality-aware combination rule. Do not average dBZ as a linear physical
82
+ quantity without a stated rationale. For velocity, preserve positive and
83
+ negative radial-velocity conventions and handle dealiasing and folding before
84
+ compositing. For dual-polarization moments, preserve their physical units and
85
+ quality masks.
86
+
87
+ Keep these fields separate:
88
+
89
+ - measured or decoded value;
90
+ - quality or suitability score;
91
+ - source site and source time;
92
+ - beam-height or range metadata;
93
+ - interpolation or resampling state;
94
+ - coverage and no-data state.
95
+
96
+ The output should make it possible to identify which radar contributed each
97
+ pixel, especially near overlap boundaries.
98
+
99
+ ## Select Candidate Data by Quality and Geometry
100
+
101
+ For each output cell, consider only sources that provide valid coverage at a
102
+ compatible time and product level. A useful selection score can include:
103
+
104
+ - lower beam height at the target location;
105
+ - shorter range and smaller beam width;
106
+ - fewer terrain or clutter artifacts;
107
+ - better data quality or signal-to-noise status;
108
+ - newer scan or smaller time difference;
109
+ - lower attenuation or range-folding penalty;
110
+ - product-specific suitability such as dual-pol quality.
111
+
112
+ The score is a modeling choice, not a universal truth. State its terms and
113
+ weights, normalize only comparable components, and test sensitivity to the
114
+ selection rule. Never hide the score behind an unexplained “best radar” rule.
115
+
116
+ ## Resolve Overlaps Deterministically
117
+
118
+ Use a deterministic rule for every target cell:
119
+
120
+ 1. select the source with the highest declared quality/suitability score;
121
+ 2. apply a documented tie-breaker such as lower beam height, smaller range,
122
+ newer valid time, or stable site order;
123
+ 3. preserve the selected source ID and runner-up source; or
124
+ 4. use a physics-aware fusion method only after validating it against
125
+ single-site fields and reference observations.
126
+
127
+ Do not average dBZ, radial velocity, or quality fields across radars by default.
128
+ Blending is acceptable only with a declared product-specific rationale and
129
+ sensitivity analysis. Never let a blocked, stale, or invalid source win merely
130
+ because its numeric value is larger, larger in magnitude, or easier to
131
+ interpolate.
132
+
133
+ ## Preserve Coverage and Quality Metadata
134
+
135
+ The mosaic should emit at least:
136
+
137
+ - value field;
138
+ - source-site field;
139
+ - source-time or time-difference field;
140
+ - beam-height or range-quality field when relevant;
141
+ - quality or suitability field;
142
+ - coverage and no-data mask;
143
+ - product, units, grid, projection, and timestamp metadata.
144
+
145
+ No-data and masked gates must remain distinguishable from a physical zero or a
146
+ valid low value. A blank-looking region is acceptable only if the coverage mask
147
+ makes its reason visible. Do not fill blocked sectors with neighboring radar
148
+ data without labeling the substitution.
149
+
150
+ ## Handle 3D and Vertical Products
151
+
152
+ A two-dimensional mosaic must not silently mix elevation sweeps with
153
+ incompatible heights. For reflectivity, state the selected elevation policy
154
+ and range-dependent beam height. For VIL, echo top, or another 3D-derived
155
+ product, use the provider's product definition or a separately validated 3D
156
+ algorithm.
157
+
158
+ For a vertical composite, retain per-source sweep and beam-height metadata,
159
+ define the vertical target or column, and document the common vertical
160
+ coordinate. Do not call a lowest-sweep composite a column-integrated quantity
161
+ or compare it with a true VIL product without explaining the difference.
162
+
163
+ ## Validate the Mosaic Scientifically
164
+
165
+ Inspect:
166
+
167
+ - coverage, holes, overlap seams, and domain edges;
168
+ - discontinuities at site boundaries;
169
+ - implausible values or source-selection flips;
170
+ - range, terrain, and beam-height artifacts;
171
+ - agreement with each source in non-overlap regions;
172
+ - comparison with an independent analysis or observation where available;
173
+ - sensitivity to quality weights, time tolerance, and product choice.
174
+
175
+ An aesthetically smooth mosaic can hide source disagreements. Preserve the
176
+ unresolved or selected-source map for scientific review. A local composite is
177
+ an analysis with assumptions, not ground truth.
178
+
179
+ ## Coordinate with Analysis and Visualization
180
+
181
+ Use `radar-satellite-analysis` to interpret storm structure. A separate
182
+ feature-tracking skill may be used after the mosaic when available, but it is
183
+ not required for mosaic construction. Use
184
+ `nexrad-radar-visualization` for site products or decoded gridded products. For
185
+ a constructed mosaic, plot the value alongside source, quality, and coverage
186
+ layers and label it as a local analysis.
187
+
188
+ For an official NOAA composite, retrieve it with `nexrad-mosaic-access` and
189
+ preserve its product semantics instead of rebuilding it. A custom mosaic can
190
+ be compared with that official product, but the two must not be labeled as
191
+ identical.
192
+
193
+ ## Examples
194
+
195
+ To combine two overlapping Level II reflectivity volumes, verify both sites,
196
+ sweeps, times, units, and quality; reproject them to a declared grid; then
197
+ select a source per cell using a documented rule based on beam height, range,
198
+ time difference, and quality. Preserve source and coverage arrays beside the
199
+ reflectivity field, and inspect seams and each radar's non-overlap area before
200
+ interpreting the result.
201
+
202
+ For an MRMS comparison, retrieve the exact official product through
203
+ `nexrad-mosaic-access`, align its valid-time and grid semantics explicitly,
204
+ and report differences as product/algorithm differences rather than treating
205
+ either grid as ground truth.
206
+
207
+ ## Output Contract
208
+
209
+ Return a custom mosaic with a clear audit trail:
210
+
211
+ 1. source radar sites, product or moment, units, volume times, and quality;
212
+ 2. output domain, grid, projection, cell size, and time policy;
213
+ 3. source-selection or fusion rule and its parameters;
214
+ 4. value, source, quality, beam-height/range, and coverage layers;
215
+ 5. rejected sources and cells with reasons;
216
+ 6. validation results and sensitivity to major construction choices;
217
+ 7. scientific limitations and distinction from official MRMS products; and
218
+ 8. provenance and checksums for inputs, code, configuration, and outputs.
219
+
220
+ Do not publish only a colored mosaic. The source, quality, and coverage layers
221
+ are part of the result whenever overlap or heterogeneous radar support matters.
222
+
223
+ ## Verification Checklist
224
+
225
+ - Every source product, site, unit, and time is verified before compositing.
226
+ - The common time, grid, projection, and range policy are explicit.
227
+ - Level II and Level III products are not treated as interchangeable.
228
+ - Quality, terrain, beam height, range folding, and de-aliasing checks are
229
+ applied.
230
+ - Overlap selection is deterministic, auditable, and sensitivity-tested.
231
+ - No-data, blocked sectors, and source substitutions remain visible.
232
+ - Source, quality, and coverage metadata accompany the value field.
233
+ - Custom output is labeled as a local analysis, not an official MRMS product.
234
+
235
+ ## Security & Safety Notes
236
+
237
+ - Use public or authorized radar data only.
238
+ - Do not expose cloud credentials, signed URLs, private bucket names, or
239
+ sensitive station metadata in outputs or logs.
240
+ - Treat metadata, source IDs, and product names as untrusted input; validate
241
+ paths and labels before rendering.
242
+ - Bound site count, volume size, output extent, interpolation, and worker count.
243
+ - Preserve NOAA, NEXRAD, Unidata, and other provider attribution and license
244
+ terms.
245
+
246
+ ## Common Pitfalls
247
+
248
+ - **Seams appeared at radar boundaries:** Source selection or quality weights
249
+ were not declared. Preserve source and quality layers and test tie-breaks.
250
+ - **dBZ was averaged across sites:** A logarithmic reflectivity quantity was
251
+ treated as a linear scalar. Use a product-specific rule and sensitivity.
252
+ - **A blocked sector looked like no rain:** No-data or quality-masked gates were
253
+ converted to zero. Preserve the coverage mask.
254
+ - **A lower sweep was compared with a 3D product:** The vertical meaning was
255
+ collapsed. State the elevation and product definition.
256
+ - **The composite changed between runs:** Site order, time tolerance, or random
257
+ sampling determined the winner. Make selection deterministic and record its
258
+ parameters.
259
+ - **A custom mosaic was called official:** The local product was confused with
260
+ NOAA MRMS. Keep source and algorithm identity in the output metadata.
261
+
262
+ ## Limitations
263
+
264
+ - Heterogeneous range, beam width, terrain, calibration, and product processing
265
+ limit cross-site comparability.
266
+ - A selection-based mosaic may create discontinuities or discard useful
267
+ information from a second radar.
268
+ - No pixel is an independent observation; quality and source fields are
269
+ correlated in space and time.
270
+ - Custom mosaics require local validation and are not an official warning or
271
+ truth product.
272
+
273
+ ## Additional Resources
274
+
275
+ - [NEXRAD on the AWS Registry of Open Data](https://registry.opendata.aws/noaa-nexrad/)
276
+ - [NOAA MRMS 2D product directory](https://mrms.ncep.noaa.gov/2D/)
277
+ - [NOAA Radar Operations Center interface documents](https://www.roc.noaa.gov/wsr88d/BuildInfo/Files.aspx)