opencode-skills-collection 4.0.74 → 4.0.76

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 (53) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +16 -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/jev-social/SKILL.md +5 -5
  31. package/bundled-skills/lintlang-audit/SKILL.md +100 -0
  32. package/bundled-skills/mcp-dependency-drift-audit/SKILL.md +169 -0
  33. package/bundled-skills/nexrad-mosaic-access/SKILL.md +297 -0
  34. package/bundled-skills/nexrad-mosaic-construction/SKILL.md +277 -0
  35. package/bundled-skills/nexrad-product-access/SKILL.md +258 -0
  36. package/bundled-skills/nexrad-radar-visualization/SKILL.md +318 -0
  37. package/bundled-skills/radar-satellite-analysis/SKILL.md +314 -0
  38. package/bundled-skills/system-prompt-lookup/SKILL.md +188 -0
  39. package/bundled-skills/traderspy-market-briefing/SKILL.md +132 -0
  40. package/bundled-skills/traderspy-market-screener/SKILL.md +182 -0
  41. package/bundled-skills/traderspy-market-screener/references/condition-cookbook.md +70 -0
  42. package/bundled-skills/traderspy-position-check/SKILL.md +130 -0
  43. package/bundled-skills/traderspy-position-check/references/risk-math.md +60 -0
  44. package/bundled-skills/traderspy-smart-money/SKILL.md +151 -0
  45. package/bundled-skills/traderspy-smart-money/references/exchange-notes.md +40 -0
  46. package/bundled-skills/traderspy-technical-analysis/SKILL.md +162 -0
  47. package/bundled-skills/traderspy-technical-analysis/references/derivatives-guide.md +57 -0
  48. package/bundled-skills/traderspy-technical-analysis/references/indicator-guide.md +47 -0
  49. package/bundled-skills/traderspy-trading-signals/SKILL.md +156 -0
  50. package/bundled-skills/traderspy-trading-signals/references/signal-fields.md +64 -0
  51. package/bundled-skills/unified-ai-gateway/SKILL.md +58 -16
  52. package/package.json +1 -1
  53. package/skills_index.json +657 -358
@@ -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)
@@ -0,0 +1,258 @@
1
+ ---
2
+ name: nexrad-product-access
3
+ description: "Discover and access NEXRAD data for a selected radar site, time, product, or Level II moment using completed archive volumes, real-time chunks, or supported Level III sources with metadata validation."
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, level-ii, level-iii, radar-products, single-site, aws-s3]
11
+ tools: [claude, cursor, gemini, codex]
12
+ ---
13
+
14
+ # NEXRAD Product Access
15
+
16
+ ## Overview
17
+
18
+ Select and retrieve the correct NEXRAD data for one radar site, UTC time, and
19
+ requested product or Level II moment. Keep archive volumes, real-time chunks,
20
+ and Level III products distinct because they have different availability and
21
+ decoding contracts.
22
+
23
+ Use `noaa-radar-satellite-fetching` for common NOAA archive discovery and
24
+ download mechanics when that skill is available. This skill provides the
25
+ NEXRAD-specific Level II/III selection contract. Use
26
+ `nexrad-mosaic-access` when the requested result is a precomputed multi-radar
27
+ composite rather than one site's data.
28
+
29
+ ## When to Use This Skill
30
+
31
+ - Fetch a completed NEXRAD Level II volume from the historical archive.
32
+ - Follow or assemble real-time Level II chunks for a named site.
33
+ - Retrieve selected real-time Level III products or use an operational Level
34
+ III feed.
35
+ - Select a product such as reflectivity, velocity, spectrum width, echo top,
36
+ vertically integrated liquid, or a supported dual-polarization product.
37
+ - Select a particular Level II moment, elevation sweep, or volume interval.
38
+ - Restrict access to one radar site and reject composite or neighboring-site
39
+ data.
40
+
41
+ Do not turn a Level II moment name into a Level III product code by assumption.
42
+ The two levels have different processing and distribution contracts.
43
+
44
+ ## Current Public NEXRAD Resources
45
+
46
+ The current NEXRAD-on-AWS registry documents these public resources in
47
+ `us-east-1`:
48
+
49
+ | Need | Resource | Contract |
50
+ | --- | --- | --- |
51
+ | Historical completed Level II volumes | `s3://unidata-nexrad-level2/` | Archive volumes organized by UTC date and site. |
52
+ | Real-time Level II chunks | `s3://unidata-nexrad-level2-chunks/` | Chunks that must be assembled and validated as volumes. |
53
+ | Selected real-time Level III data | `s3://unidata-nexrad-level3/` | Selected Level III products, not a promise of a complete historical archive. |
54
+
55
+ Unidata documentation also describes operational Level III distribution through
56
+ the `NEXRAD3` LDM/NOAAPort feed. Resolve the current source for the requested
57
+ Level III product instead of assuming that a real-time S3 bucket is a complete
58
+ archive.
59
+
60
+ The current AWS registry identifies `unidata-nexrad-level2` as the archive and
61
+ says the former `noaa-nexrad-level2` bucket was deprecated after September 1,
62
+ 2025. Verify the live registry before access because provider resources can
63
+ change.
64
+
65
+ ## Define the Access Contract
66
+
67
+ Resolve and record:
68
+
69
+ - one four-character NEXRAD site such as `KTLX`;
70
+ - the requested instant or bounded interval in UTC;
71
+ - nearest-at-or-before, nearest-in-either-direction, or interval-overlap policy;
72
+ - data level: Level II, Level III, or an explicitly mixed workflow;
73
+ - product or moment, unit, sweep or scan angle, and whether all sweeps or the
74
+ lowest requested sweep are needed;
75
+ - archive, real-time, or operational-feed source;
76
+ - maximum lookback, maximum probes, and acceptable latency;
77
+ - required metadata, quality masks, and output form;
78
+ - whether the product must come from that one site only.
79
+
80
+ If the user supplies only a display concept such as “base reflectivity,”
81
+ resolve it against a current official product or Level II moment definition.
82
+ Do not guess a Level III code or claim that every named display is available in
83
+ the same feed.
84
+
85
+ ## Access Historical Level II Volumes
86
+
87
+ 1. Validate the site against an allowlist or a current NEXRAD site inventory.
88
+ 2. Resolve the exact UTC day and site prefix from current dataset
89
+ documentation. Do not infer the key layout from a filename example.
90
+ 3. List only that documented prefix, paginating within a bounded key count.
91
+ 4. Parse the documented volume timestamp and site from each candidate key.
92
+ 5. Select by the time policy, then request metadata for the exact key.
93
+ 6. Require a nonzero stable object. If publication may still be occurring,
94
+ repeat the metadata check until size and object identity remain unchanged.
95
+ 7. Download to a temporary path, verify received bytes, compute a local
96
+ SHA-256 when provenance requires it, and open with a format-aware reader.
97
+ 8. Verify the decoded site, volume start/end time, sweeps, moments, dimensions,
98
+ and quality fields before promoting the file into a valid cache entry.
99
+
100
+ The archive is the preferred source for retrospective work because each object
101
+ is a completed volume. Do not substitute a real-time chunk for an archive volume
102
+ when the consumer expects a self-contained volume.
103
+
104
+ ## Access Real-Time Level II Chunks
105
+
106
+ Treat each chunk as a fragment with ordering and completion dependencies.
107
+
108
+ 1. Resolve the current chunk prefix for the requested site.
109
+ 2. Parse volume and chunk identity from documented key fields.
110
+ 3. Discover the complete chunk sequence with a bounded lookback.
111
+ 4. Verify required chunks, byte identities, and scan metadata.
112
+ 5. Assemble into a new temporary file without overwriting the source chunks.
113
+ 6. Decode the assembled object and verify site, volume time, sweep count,
114
+ moments, and quality fields.
115
+ 7. Publish the verified volume atomically and record which chunks formed it.
116
+
117
+ If a chunk is late, duplicated, discontinuous, or from another site, reject or
118
+ quarantine the sequence. A file that opens without proving complete volume
119
+ metadata is not a verified replacement for an archive volume.
120
+
121
+ ## Select Level II Moments and Sweeps
122
+
123
+ Level II exposes moments within a volume rather than independent Level III
124
+ display products. Depending on the radar configuration and volume, common
125
+ moments can include reflectivity, velocity, spectrum width, and supported
126
+ dual-polarization quantities.
127
+
128
+ Before extraction, record:
129
+
130
+ - the exact moment name used by the decoded file;
131
+ - its calibrated physical unit and scale or offset;
132
+ - the elevation-angle policy and actual beam height at the display range;
133
+ - the quality fields for range folding, clutter, dealiasing, or invalid gates;
134
+ - whether the output requires all sweeps, a nearest sweep, or a sweep search
135
+ based on target height.
136
+
137
+ Do not assume that a moment is present in every volume or at every sweep.
138
+ Report an absent moment or incomplete sweep rather than converting a different
139
+ moment into its place.
140
+
141
+ ## Access Level III Products
142
+
143
+ Level III is a processed radar product with its own product code, scan strategy,
144
+ projection, resolution, and update cadence. Resolve the official current code
145
+ and source for the requested semantic product.
146
+
147
+ For selected real-time data, inspect only the documented Level III prefix for
148
+ the site and time window. For broader operational access, use a current LDM or
149
+ NOAAPort product feed that explicitly carries the requested NEXRAD3 product.
150
+
151
+ After retrieval, verify:
152
+
153
+ - site or coverage area;
154
+ - product code and product description;
155
+ - observation or scan time;
156
+ - projection, dimensions, and data level;
157
+ - units, scale/offset, missing values, and quality flags;
158
+ - whether the product is a single-site, sector, or multi-site product.
159
+
160
+ Never decode a Level III file using a Level II volume contract. Never label a
161
+ single-site Level III product as a mosaic merely because several scans or pixels
162
+ are present.
163
+
164
+ ## Examples
165
+
166
+ For a request such as “Get the latest completed KTLX Level II volume before
167
+ 2026-09-25 12:00 UTC,” state the site, cutoff, selection policy, archive
168
+ source, and selected volume time. Retrieve that exact object, then confirm the
169
+ decoded volume reports KTLX and the expected scan interval before handing it
170
+ to a plotting or analysis step.
171
+
172
+ For “KTLX base reflectivity,” resolve whether the request means the Level II
173
+ reflectivity moment or a Level III processed product. Report the chosen level,
174
+ moment/product identifier, sweep, units, and observed scan time.
175
+
176
+ ## Return an Access Record
177
+
178
+ Return a structured record before decoding begins:
179
+
180
+ ```json
181
+ {
182
+ "site": "KTLX",
183
+ "requested_time_utc": "2026-09-25T12:00:00Z",
184
+ "selection_policy": "nearest-at-or-before",
185
+ "selected_time_utc": "2026-09-25T11:59:54Z",
186
+ "data_level": "Level II",
187
+ "product_or_moment": "REF",
188
+ "source": "s3://unidata-nexrad-level2/EXACT_DOCUMENTED_KEY",
189
+ "object_identity": {
190
+ "etag": "OPAQUE_IDENTITY",
191
+ "last_modified": "2026-09-25T12:01:02Z",
192
+ "size_bytes": 12345678
193
+ },
194
+ "single_site_required": true
195
+ }
196
+ ```
197
+
198
+ Also record rejected candidates, unavailable products, chunk dependencies, and
199
+ the rule that prevented cross-site or cross-product substitution.
200
+
201
+ ## Verification Checklist
202
+
203
+ - The four-character site and site inventory entry are validated.
204
+ - All timestamps are UTC and the scan-selection policy is explicit.
205
+ - The source matches the requested level and product or moment.
206
+ - Historical access uses completed Level II archive volumes when appropriate.
207
+ - Real-time chunks are assembled into a verified complete volume.
208
+ - Level III products are resolved through a documented current source.
209
+ - Decoded metadata confirms site, time, product, dimensions, and quality fields.
210
+ - No result from another site or product is silently substituted.
211
+ - Source identity, local hash, and retrieval time are recorded when required.
212
+
213
+ ## Security & Safety Notes
214
+
215
+ - Use public or authorized NEXRAD resources only.
216
+ - Do not embed cloud credentials, signed URLs, tokens, or private endpoint
217
+ details in records or logs.
218
+ - Treat site identifiers, product names, metadata, and object keys as untrusted
219
+ input when constructing paths or commands.
220
+ - Bound prefix width, pagination, time lookback, response size, concurrency, and
221
+ disk use.
222
+ - Preserve NOAA, NEXRAD, Unidata, and source-provider attribution and license
223
+ terms.
224
+
225
+ ## Common Pitfalls
226
+
227
+ - **The old bucket returned no data:** A tutorial used the deprecated
228
+ `noaa-nexrad-level2` route. Resolve the current archive from the live AWS
229
+ registry.
230
+ - **A real-time file would not decode:** Individual chunks were treated as a
231
+ completed volume. Assemble and validate the full sequence first.
232
+ - **The product selector guessed the wrong item:** A display name was converted
233
+ to an assumed Level III code. Resolve a current official product definition.
234
+ - **A reflectivity request returned velocity:** Product or moment identity was
235
+ not carried through decoding and extraction.
236
+ - **The latest run was silently older:** Candidate time and tolerance were not
237
+ recorded. Return the selected time and rejected candidates.
238
+ - **Data from a neighboring radar appeared:** A regional key search ignored the
239
+ single-site contract. Filter and validate by exact site identity.
240
+
241
+ ## Limitations
242
+
243
+ - Availability, feed contents, product definitions, and archive retention can
244
+ change. Verify current official documentation.
245
+ - The selected real-time Level III resource is not a complete historical
246
+ archive contract.
247
+ - Accessing a file does not prove that its coverage is scientifically suitable
248
+ at a requested location; beam height, terrain, range, and quality still matter.
249
+ - Multi-radar composite access belongs in `nexrad-mosaic-access`.
250
+ - Scientific interpretation belongs in `radar-satellite-analysis`.
251
+
252
+ ## Additional Resources
253
+
254
+ - [NEXRAD on the AWS Registry of Open Data](https://registry.opendata.aws/noaa-nexrad/)
255
+ - [NOAA ROC Level II data types](https://www.roc.noaa.gov/level-two-data-types.php)
256
+ - [NOAA ROC Level III data types](https://www.roc.noaa.gov/level-three-data-types.php)
257
+ - [Unidata LDM feeds](https://unidata.github.io/awips2/edex/ldm/)
258
+ - [Unidata GEMPAK NIDS products](https://unidata.github.io/gempak/man/prog/gpnids.html)