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,169 @@
1
+ ---
2
+ name: mcp-dependency-drift-audit
3
+ description: "Statically audit MCP configs for mutable npm/npx package references before approval or CI, without executing discovered MCP servers."
4
+ category: security
5
+ risk: safe
6
+ source: "https://github.com/tomelias10/mcp-drift-check"
7
+ source_repo: tomelias10/mcp-drift-check
8
+ source_type: community
9
+ date_added: "2026-09-25"
10
+ author: tomelias10
11
+ tags: [mcp, ai-security, supply-chain, devsecops, sarif]
12
+ tools: [claude, cursor, gemini, codex, windsurf]
13
+ license: MIT
14
+ license_source: "https://github.com/tomelias10/mcp-drift-check/blob/v0/LICENSE"
15
+ ---
16
+
17
+ # MCP Dependency Drift Audit
18
+
19
+ ## Overview
20
+
21
+ Audit Model Context Protocol configuration files for npm/npx package references that can resolve to different code after the configuration was reviewed. The workflow is deliberately static: it reads config text, classifies version selectors, and recommends reproducibility fixes without starting discovered MCP servers.
22
+
23
+ Dependency mutability is a review-boundary signal, not proof that a package is malicious, vulnerable, or compromised.
24
+
25
+ ## When to Use This Skill
26
+
27
+ - Before approving `.mcp.json`, Cursor, VS Code, GitHub Copilot, Claude, or Windsurf MCP configuration.
28
+ - When adding an MCP configuration gate to pull requests or CI.
29
+ - During an AI-agent security review where npm/npx-backed MCP servers are configured.
30
+ - When checking whether a previously reviewed MCP config can silently resolve to newer package code.
31
+
32
+ ## How It Works
33
+
34
+ ### Step 1: Locate and read MCP configs without executing them
35
+
36
+ Inspect known project paths such as `.mcp.json`, `.github/mcp.json`, `.cursor/mcp.json`, `.vscode/mcp.json`, and `.windsurf/mcp.json`, plus any MCP config explicitly supplied by the user.
37
+
38
+ Read them as text/JSON only. Never run a discovered `command` or `args` value as part of this audit. Stay inside the requested workspace by default; only include user-level/global MCP configuration if the user explicitly asks for machine-wide scope.
39
+
40
+ ### Step 2: Use MCP Drift Check when already available
41
+
42
+ If `mcp-drift-check` is already installed, use the workspace-scoped mode from the intended repo root:
43
+
44
+ ```bash
45
+ mcp-drift-check scan-workspace --markdown
46
+ ```
47
+
48
+ For CI evidence:
49
+
50
+ ```bash
51
+ mcp-drift-check scan-workspace --sarif mcp-drift.sarif --markdown
52
+ ```
53
+
54
+ If the scanner is not installed, explain that the following command fetches the open-source scanner from GitHub and get user approval before running it:
55
+
56
+ ```bash
57
+ uvx --from git+https://github.com/tomelias10/mcp-drift-check mcp-drift-check scan-workspace --markdown
58
+ ```
59
+
60
+ If the user declines network access or installation, continue with the manual rules below.
61
+
62
+ ### Step 3: Apply the manual static rules
63
+
64
+ For npm/npx-style package selectors:
65
+
66
+ | Selector | Classification | Reason |
67
+ | --- | --- | --- |
68
+ | `package@1.2.3` | SAFE | Exact package version is reproducible. |
69
+ | bare `package` or `@scope/package` | HIGH | A later resolution can select different package code. |
70
+ | `package@latest` | HIGH | The selector is explicitly mutable. |
71
+ | `package@^1.2.0`, `~1.2.0`, `>=1.2.0`, wildcard | MEDIUM | Resolution can change within the allowed range. |
72
+ | local path, script, binary, unknown executable | REVIEW | npm version-drift rules do not establish update behavior. |
73
+
74
+ Treat `-y` / `--yes` as context only. It suppresses interactive confirmation but is not a vulnerability by itself.
75
+
76
+ ### Step 4: Recommend remediation without inventing versions
77
+
78
+ For mutable npm/npx references, recommend pinning to an exact version that the team has actually reviewed and then updating that pin deliberately.
79
+
80
+ Do not guess the version to pin. If registry lookup is needed, explain that it requires network access and ask before querying it.
81
+
82
+ Pinning improves reproducibility. It does not establish package provenance, vulnerability status, authorization safety, prompt-injection resistance, or runtime isolation.
83
+
84
+ ### Step 5: Produce a bounded report
85
+
86
+ Return:
87
+
88
+ | Config | MCP server | Package/reference | Classification | Why | Recommended next step |
89
+ | --- | --- | --- | --- | --- | --- |
90
+
91
+ Then state:
92
+
93
+ - No MCP servers were executed during the audit.
94
+ - Mutable dependency references are review/reproducibility signals, not breach claims.
95
+ - A clean dependency-drift result is not a complete MCP security assessment.
96
+
97
+ ## Examples
98
+
99
+ ### Example 1: Audit before approval
100
+
101
+ **User:** `Audit this repo's MCP config before we approve it. Do not run any MCP servers.`
102
+
103
+ **Expected shape:**
104
+
105
+ ```text
106
+ .mcp.json | browser | @example/browser-mcp@latest | HIGH
107
+ Reason: @latest can resolve to different package code later.
108
+ Next step: pin the exact version your team reviews and update it deliberately.
109
+
110
+ No MCP servers were executed.
111
+ ```
112
+
113
+ ### Example 2: Add a CI gate
114
+
115
+ For GitHub Actions:
116
+
117
+ ```yaml
118
+ - uses: actions/checkout@v4
119
+ - uses: tomelias10/mcp-drift-check@v0
120
+ ```
121
+
122
+ MCP Drift Check can also emit SARIF 2.1.0 for GitHub Code Scanning. The action defaults to workspace-only discovery; machine-wide user-level scanning remains an explicit `scan-all` choice.
123
+
124
+ ## Best Practices
125
+
126
+ - ✅ Read config text only during discovery and classification.
127
+ - ✅ Keep the default scope to the requested workspace/repository.
128
+ - ✅ Separate reproducibility findings from vulnerability or compromise claims.
129
+ - ✅ Pin only a version the team has actually reviewed.
130
+ - ✅ Keep sensitive config values out of reports and public issues.
131
+ - ❌ Do not execute server commands found in a config to "verify" a static finding.
132
+ - ❌ Do not treat a clean result as a general MCP security guarantee.
133
+
134
+ ## Limitations
135
+
136
+ - This workflow only covers dependency mutability/review drift for package-backed MCP configuration.
137
+ - It does not assess prompt injection, tool poisoning, OAuth/authorization, server implementation flaws, malware, provenance, or runtime sandboxing.
138
+ - Local executables and non-npm launch paths require separate review.
139
+ - A static config can be reproducible and still unsafe for other reasons.
140
+
141
+ ## Security & Safety Notes
142
+
143
+ - The default workflow is read-only, local, and workspace-scoped.
144
+ - Never execute discovered MCP server commands during this audit.
145
+ - Never include credentials, tokens, private headers, or secret values in the output.
146
+ - The optional `uvx` path makes a network fetch from the declared GitHub source; obtain user approval before running it.
147
+ - If deeper active testing is requested, stop and establish explicit authorization and scope before any intrusive action.
148
+
149
+ ## Common Pitfalls
150
+
151
+ - **Problem:** Calling an unpinned dependency a vulnerability.
152
+ **Solution:** Describe it as a reproducibility/review-drift signal unless separate evidence establishes security impact.
153
+ - **Problem:** Pinning to today's registry version without knowing what was reviewed.
154
+ **Solution:** Ask for the reviewed version or, with approval, reconstruct relevant package history; do not guess.
155
+ - **Problem:** Treating `-y` as the core finding.
156
+ **Solution:** Report it only as context; the version selector determines the dependency-drift classification.
157
+ - **Problem:** Scanning user-level MCP configs when the user only asked about one repo.
158
+ **Solution:** Use `scan-workspace` by default; use `scan-all` only when machine-wide scope is explicit.
159
+
160
+ ## Related Skills
161
+
162
+ - `@mcp-server-security` - Broader MCP server hardening, authentication, authorization, transport, and runtime controls.
163
+ - `@supply-chain-security` - Broader software supply-chain assessment beyond MCP configuration.
164
+ - `@sast-scanning` - Static application-security analysis for source code rather than MCP launch configuration.
165
+
166
+ ## Additional Resources
167
+
168
+ - [MCP Drift Check stable v0](https://github.com/tomelias10/mcp-drift-check/tree/v0) - MIT zero-execution scanner, GitHub Action, workspace-scoped mode, and SARIF output.
169
+ - [Public MCP dependency drift examples](https://site-creator-vinext-starter.surfaceproof.workers.dev/research/mcp-dependency-drift) - Commit-specific public configuration examples and methodology limitations.
@@ -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/)