opencode-skills-collection 4.0.73 → 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.
- package/bundled-skills/.antigravity-install-manifest.json +16 -1
- package/bundled-skills/claude-api/SKILL.md +4 -4
- package/bundled-skills/claude-api/curl/examples.md +5 -5
- package/bundled-skills/claude-api/java/claude-api.md +1 -1
- package/bundled-skills/claude-api/php/claude-api.md +2 -2
- package/bundled-skills/claude-api/python/claude-api/README.md +13 -13
- package/bundled-skills/claude-api/python/claude-api/batches.md +3 -3
- package/bundled-skills/claude-api/python/claude-api/files-api.md +3 -3
- package/bundled-skills/claude-api/python/claude-api/streaming.md +6 -6
- package/bundled-skills/claude-api/python/claude-api/tool-use.md +19 -19
- package/bundled-skills/claude-api/ruby/claude-api.md +3 -3
- package/bundled-skills/claude-api/shared/error-codes.md +2 -2
- package/bundled-skills/claude-api/shared/live-sources.md +1 -1
- package/bundled-skills/claude-api/shared/models.md +4 -4
- package/bundled-skills/claude-api/shared/tool-use-concepts.md +2 -2
- package/bundled-skills/claude-api/typescript/claude-api/README.md +12 -12
- package/bundled-skills/claude-api/typescript/claude-api/batches.md +2 -2
- package/bundled-skills/claude-api/typescript/claude-api/files-api.md +1 -1
- package/bundled-skills/claude-api/typescript/claude-api/streaming.md +4 -4
- package/bundled-skills/claude-api/typescript/claude-api/tool-use.md +14 -14
- package/bundled-skills/electron-drive-skill/LICENSE +21 -0
- package/bundled-skills/electron-drive-skill/README.md +172 -0
- package/bundled-skills/electron-drive-skill/SKILL.md +237 -0
- package/bundled-skills/electron-drive-skill/drive.config.json.example +10 -0
- package/bundled-skills/electron-drive-skill/package.json +28 -0
- package/bundled-skills/electron-drive-skill/scripts/daemon.mjs +352 -0
- package/bundled-skills/electron-drive-skill/scripts/drive.mjs +250 -0
- package/bundled-skills/electron-drive-skill/scripts/lib.mjs +165 -0
- package/bundled-skills/electron-drive-skill/scripts/lib.test.mjs +56 -0
- package/bundled-skills/film-crew/SKILL.md +129 -0
- package/bundled-skills/film-crew/references/model-prompting.md +89 -0
- package/bundled-skills/film-crew/references/reroll-review.md +46 -0
- package/bundled-skills/film-crew/references/roles/director.md +38 -0
- package/bundled-skills/film-crew/references/roles/dp.md +28 -0
- package/bundled-skills/film-crew/references/roles/editor.md +34 -0
- package/bundled-skills/film-crew/references/roles/gaffer.md +30 -0
- package/bundled-skills/film-crew/references/roles/production-designer.md +43 -0
- package/bundled-skills/film-crew/references/roles/script-supervisor.md +35 -0
- package/bundled-skills/film-crew/references/roles/sound.md +23 -0
- package/bundled-skills/film-crew/references/templates/shot-list.md +38 -0
- package/bundled-skills/film-crew/references/unslop.md +29 -0
- package/bundled-skills/mcp-dependency-drift-audit/SKILL.md +169 -0
- package/bundled-skills/nexrad-mosaic-access/SKILL.md +297 -0
- package/bundled-skills/nexrad-mosaic-construction/SKILL.md +277 -0
- package/bundled-skills/nexrad-product-access/SKILL.md +258 -0
- package/bundled-skills/nexrad-radar-visualization/SKILL.md +318 -0
- package/bundled-skills/radar-satellite-analysis/SKILL.md +314 -0
- package/bundled-skills/testdriver-e2e-testing/SKILL.md +121 -0
- package/bundled-skills/traderspy-market-briefing/SKILL.md +132 -0
- package/bundled-skills/traderspy-market-screener/SKILL.md +182 -0
- package/bundled-skills/traderspy-market-screener/references/condition-cookbook.md +70 -0
- package/bundled-skills/traderspy-position-check/SKILL.md +130 -0
- package/bundled-skills/traderspy-position-check/references/risk-math.md +60 -0
- package/bundled-skills/traderspy-smart-money/SKILL.md +151 -0
- package/bundled-skills/traderspy-smart-money/references/exchange-notes.md +40 -0
- package/bundled-skills/traderspy-technical-analysis/SKILL.md +162 -0
- package/bundled-skills/traderspy-technical-analysis/references/derivatives-guide.md +57 -0
- package/bundled-skills/traderspy-technical-analysis/references/indicator-guide.md +47 -0
- package/bundled-skills/traderspy-trading-signals/SKILL.md +156 -0
- package/bundled-skills/traderspy-trading-signals/references/signal-fields.md +64 -0
- package/bundled-skills/unified-ai-gateway/SKILL.md +3 -3
- package/package.json +1 -1
- package/skills_index.json +499 -1
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: radar-satellite-analysis
|
|
3
|
+
description: "Interpret weather radar and satellite observations by validating product metadata and geometry, deriving storm and cloud structures, tracking evolution, and quantifying uncertainty."
|
|
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, radar, satellite, nexrad, goes, nowcasting, storm-analysis, remote-sensing, uncertainty]
|
|
11
|
+
tools: [claude, cursor, gemini, codex]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Radar and Satellite Analysis
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Analyze radar and satellite weather products as remote-sensing observations,
|
|
19
|
+
not as ground truth. Validate scan time, geometry, calibration, quality flags,
|
|
20
|
+
and coverage before interpreting a feature. Then separate what the instrument
|
|
21
|
+
directly measures from what a meteorological inference suggests.
|
|
22
|
+
|
|
23
|
+
This skill consumes already retrieved and decoded products. Use it after
|
|
24
|
+
`noaa-radar-satellite-fetching` or an equivalent source-specific skill. It does
|
|
25
|
+
not discover buckets, download files, repair outages, or make a product
|
|
26
|
+
scientifically suitable by naming it radar or satellite data.
|
|
27
|
+
|
|
28
|
+
## When to Use This Skill
|
|
29
|
+
|
|
30
|
+
- Interpret NEXRAD reflectivity, velocity, spectrum width, or multi-moment
|
|
31
|
+
volumes.
|
|
32
|
+
- Track storm growth, decay, splits, mergers, rotation, anvils, or cloud-top
|
|
33
|
+
evolution over time.
|
|
34
|
+
- Analyze GOES visible, infrared, water-vapor, or derived cloud and convection
|
|
35
|
+
products.
|
|
36
|
+
- Combine radar structure with satellite cloud-top evidence while preserving
|
|
37
|
+
each sensor's limitations.
|
|
38
|
+
- Produce a short-term precipitation or severe-weather nowcast from a sequence
|
|
39
|
+
of observations.
|
|
40
|
+
- Explain why a radar or satellite feature is—or is not—supported by the data.
|
|
41
|
+
|
|
42
|
+
Do not infer a surface hail size, wind speed, rainfall rate, or lightning count
|
|
43
|
+
from a single proxy without stating the retrieval assumptions. Do not use a
|
|
44
|
+
single still image to claim a storm's future track or intensity.
|
|
45
|
+
|
|
46
|
+
## Define the Remote-Sensing Analysis Contract
|
|
47
|
+
|
|
48
|
+
Before interpreting pixels, beams, or profiles, record:
|
|
49
|
+
|
|
50
|
+
- event, target phenomenon, region, and UTC interval;
|
|
51
|
+
- radar site, product level, scan/volume interval, elevation angles, moments,
|
|
52
|
+
and resolution—or satellite platform, product, sector, channel, scan mode,
|
|
53
|
+
and resolution;
|
|
54
|
+
- the measurement height or viewing geometry;
|
|
55
|
+
- the quality masks, calibration or scaling, and missing-data policy;
|
|
56
|
+
- the temporal cadence and the allowed lag between radar, satellite,
|
|
57
|
+
observations, and model guidance;
|
|
58
|
+
- the feature definition and the expected output: structure, motion,
|
|
59
|
+
intensity proxy, nowcast, or uncertainty map;
|
|
60
|
+
- the criteria for a confident, tentative, or inconclusive interpretation.
|
|
61
|
+
|
|
62
|
+
Keep observation time, scan start/end time, file creation time, retrieval time,
|
|
63
|
+
and analysis time separate. A file created quickly after a scan is not a newer
|
|
64
|
+
measurement.
|
|
65
|
+
|
|
66
|
+
## Validate the Products Before Interpretation
|
|
67
|
+
|
|
68
|
+
### Common checks
|
|
69
|
+
|
|
70
|
+
1. Confirm the radar site or physical satellite, product identity, sector,
|
|
71
|
+
channel or moment, and expected dimensions from the decoded metadata.
|
|
72
|
+
2. Verify the time interval, scan start and end, coordinate reference system,
|
|
73
|
+
and geolocation. For GOES fixed grids, use the product's geostationary
|
|
74
|
+
projection metadata rather than treating scan `x` and `y` as latitude and
|
|
75
|
+
longitude.
|
|
76
|
+
3. Apply the product's documented scale, offset, fill values, calibration, and
|
|
77
|
+
quality flags before computing statistics or thresholds.
|
|
78
|
+
4. Inspect missing scans, partial volumes, data gaps, saturated or invalid
|
|
79
|
+
values, and spatial coverage. Do not smooth over a gap without labeling it.
|
|
80
|
+
5. Record the resolution, footprint, and observation uncertainty. A high pixel
|
|
81
|
+
count is not a high spatial resolution if the beam or channel is coarse.
|
|
82
|
+
|
|
83
|
+
### Radar-specific checks
|
|
84
|
+
|
|
85
|
+
- Confirm site, volume start/end time, sweep count, moments, and elevation
|
|
86
|
+
angles. Level II, Level III, and real-time chunk products are not
|
|
87
|
+
interchangeable encodings.
|
|
88
|
+
- Account for range-dependent beam width, beam height above the radar, terrain
|
|
89
|
+
blockage, range folding, attenuation, clutter, anomalous propagation, and
|
|
90
|
+
velocity dealiasing where relevant.
|
|
91
|
+
- Determine whether a feature is sampled by one low-level sweep, several
|
|
92
|
+
elevation angles, or a full vertical column. Do not compare a low-level echo
|
|
93
|
+
top with a satellite cloud top as if they were the same physical surface.
|
|
94
|
+
- Keep base reflectivity, column-integrated liquid, echo top, and derived
|
|
95
|
+
products distinct. Their thresholds and physical meanings are not
|
|
96
|
+
interchangeable.
|
|
97
|
+
|
|
98
|
+
### Satellite-specific checks
|
|
99
|
+
|
|
100
|
+
- Confirm platform, instrument, product short name, channel or RGB product,
|
|
101
|
+
sector, scan mode, and scan interval from file attributes.
|
|
102
|
+
- Apply channel-specific calibration and quality flags. Brightness
|
|
103
|
+
temperature, reflectance, cloud-top temperature, and land-surface
|
|
104
|
+
temperature are different quantities.
|
|
105
|
+
- Treat cloud-top parallax as a viewing-geometry problem. A high cloud can be
|
|
106
|
+
displaced from its surface footprint, especially near the edge of a sector.
|
|
107
|
+
- Distinguish visible, infrared, water-vapor, and derived RGB products. Their
|
|
108
|
+
interpretation depends on reflectance, emission, atmospheric absorption, and
|
|
109
|
+
daylight or scan mode.
|
|
110
|
+
|
|
111
|
+
## Analyze Radar Structure
|
|
112
|
+
|
|
113
|
+
### Reflectivity and precipitation proxies
|
|
114
|
+
|
|
115
|
+
Use reflectivity to describe the location and organization of precipitation
|
|
116
|
+
echoes, then qualify the interpretation with beam height, range, attenuation,
|
|
117
|
+
and sampling. Look for features such as:
|
|
118
|
+
|
|
119
|
+
- high-reflectivity cores and their relationship to weaker surrounding echo;
|
|
120
|
+
- echo overhangs, weak-echo regions, bounded weak-echo regions, and vertical
|
|
121
|
+
development;
|
|
122
|
+
- bow, hook, line, multicell, or training structures when the geometry supports
|
|
123
|
+
that description;
|
|
124
|
+
- echo-top or vertically integrated liquid patterns that are relevant to the
|
|
125
|
+
stated question.
|
|
126
|
+
|
|
127
|
+
Do not call a reflectivity threshold hail, tornado, or destructive wind. Those
|
|
128
|
+
are conditional interpretations requiring velocity, cloud-top, lightning,
|
|
129
|
+
surface, or model context. Convert reflectivity to rain rate only with an
|
|
130
|
+
explicit relation, sample assumptions, and uncertainty bounds; a reflectivity
|
|
131
|
+
lookup is not a universal precipitation truth.
|
|
132
|
+
|
|
133
|
+
### Velocity and rotation
|
|
134
|
+
|
|
135
|
+
Analyze radial velocity as a radar-relative measurement. State whether the
|
|
136
|
+
field is gate-to-gate shear, environmental shear, storm-relative radial flow, or
|
|
137
|
+
a derived couplet. Consider dealiasing, range folding, noise, side lobes,
|
|
138
|
+
velocity folding artifacts, and the fact that a velocity signature can have
|
|
139
|
+
multiple meteorological explanations.
|
|
140
|
+
|
|
141
|
+
For rotation or mesocyclone interpretation, use the appropriate temporal,
|
|
142
|
+
azimuthal, and vertical support and compare the result with neighboring scans.
|
|
143
|
+
A single couplet is a candidate feature, not a confirmed tornado. Do not use
|
|
144
|
+
radial velocity as a direct measurement of the environmental wind vector
|
|
145
|
+
without accounting for viewing geometry.
|
|
146
|
+
|
|
147
|
+
### Three-dimensional organization
|
|
148
|
+
|
|
149
|
+
When a volume supports it, align elevation angles and analyze vertical
|
|
150
|
+
structure: low-level inflow, mid-level rotation, updraft organization, echo
|
|
151
|
+
top, overhang, and bounded weak-echo regions. Account for increasing beam
|
|
152
|
+
volume and decreasing resolution with height. A feature that appears vertically
|
|
153
|
+
stacked may be a sampling or attenuation artifact; check adjacent sites or
|
|
154
|
+
scans before asserting a continuous structure.
|
|
155
|
+
|
|
156
|
+
## Analyze Satellite Cloud and Storm Structure
|
|
157
|
+
|
|
158
|
+
Use satellite data to describe cloud-top and environmental context, not to
|
|
159
|
+
replace radar precipitation structure. Depending on the product, examine:
|
|
160
|
+
|
|
161
|
+
- cloud-top temperature, brightness-temperature gradients, and overshooting
|
|
162
|
+
top candidates;
|
|
163
|
+
- anvil extent, spreading direction, and relationship to upper-level outflow;
|
|
164
|
+
- deep-convective cloud shields and mesoscale convective systems;
|
|
165
|
+
- visible-texture changes, cloud-top lowering or warming, and inferred growth or
|
|
166
|
+
decay only with a time sequence;
|
|
167
|
+
- water-vapor patterns, upper-level moisture, and potential convective
|
|
168
|
+
environments when the product and resolution support those claims.
|
|
169
|
+
|
|
170
|
+
An infrared cold cloud top is not, by itself, proof of severe weather, hail,
|
|
171
|
+
or a particular updraft strength. A very cold top can reflect a high cloud
|
|
172
|
+
whose emission and viewing geometry differ from a nearby lower cloud. State the
|
|
173
|
+
proxy, the threshold, and the alternative explanation.
|
|
174
|
+
|
|
175
|
+
## Track Evolution and Motion
|
|
176
|
+
|
|
177
|
+
For a time sequence, use a consistent feature-identification and tracking
|
|
178
|
+
method. Track cell or cloud-system centers, echoes or anvils, growth and decay,
|
|
179
|
+
merges and splits, and changes in shape or intensity proxy. Distinguish motion
|
|
180
|
+
from the steering flow and from apparent motion caused by parallax, changing
|
|
181
|
+
scan geometry, or inconsistent feature definitions.
|
|
182
|
+
|
|
183
|
+
Estimate motion over multiple scans and report the method, time interval,
|
|
184
|
+
position uncertainty, and whether the feature was occluded or lost. A single
|
|
185
|
+
displacement between scans is not a reliable nowcast. If a forecast window is
|
|
186
|
+
short, say so and show the persistence or extrapolation assumption.
|
|
187
|
+
|
|
188
|
+
## Combine Radar and Satellite Carefully
|
|
189
|
+
|
|
190
|
+
Align the products in time and space before joining them. Radar can provide
|
|
191
|
+
precipitation structure, radial motion, and vertical echoes; satellite can
|
|
192
|
+
provide broad cloud shield, cloud-top context, anvils, and environmental
|
|
193
|
+
patterns. Their footprints, resolution, viewing geometry, and quality are not
|
|
194
|
+
identical.
|
|
195
|
+
|
|
196
|
+
Use a joint interpretation only when the evidence is complementary. For
|
|
197
|
+
example, a radar core beneath a rapidly developing cold cloud top can support a
|
|
198
|
+
convective-growth diagnosis, but it still does not establish surface hail or a
|
|
199
|
+
confirmed tornado. Preserve each source's quality mask and contribution in the
|
|
200
|
+
final result instead of collapsing them into an opaque score.
|
|
201
|
+
|
|
202
|
+
For multi-radar mosaics, resolve overlapping beams using a documented rule.
|
|
203
|
+
Never average dBZ values or velocity fields across sites without a physical and
|
|
204
|
+
quality-aware rule. A mosaic should show coverage and the selected source for
|
|
205
|
+
each pixel or cell.
|
|
206
|
+
|
|
207
|
+
## Quantify Uncertainty and Avoid Overclaiming
|
|
208
|
+
|
|
209
|
+
Remote-sensing interpretation has several uncertainty sources: beam geometry,
|
|
210
|
+
attenuation, parallax, threshold choice, temporal resolution, feature tracking,
|
|
211
|
+
instrument calibration, cloud microphysics, and incomplete coverage. When the
|
|
212
|
+
task is operational or safety-relevant, report the strongest alternative
|
|
213
|
+
interpretation and the observations that would distinguish it.
|
|
214
|
+
|
|
215
|
+
Use a bounded nowcast horizon and show how the result changes with alternate
|
|
216
|
+
motion, persistence, growth, or decay assumptions. Do not turn a qualitative
|
|
217
|
+
feature label into a precise probability without a calibration method. If the
|
|
218
|
+
images are too sparse, ambiguous, or poorly geolocated, report that the
|
|
219
|
+
feature is unconfirmed rather than filling the gap with narrative certainty.
|
|
220
|
+
|
|
221
|
+
## Examples
|
|
222
|
+
|
|
223
|
+
When asked whether a storm intensified over an hour, align successive radar
|
|
224
|
+
volumes and satellite scans, verify time and geolocation, and track one
|
|
225
|
+
consistent feature definition. Report measured reflectivity and cloud-top
|
|
226
|
+
changes separately from inferred intensification, include data gaps and
|
|
227
|
+
uncertainty, and do not infer surface hail from a cold cloud top alone.
|
|
228
|
+
|
|
229
|
+
For a suspected velocity couplet, inspect neighboring scans and available
|
|
230
|
+
elevation angles, confirm radial-velocity convention and dealiasing quality,
|
|
231
|
+
and call it a possible rotation signature unless the evidence supports a
|
|
232
|
+
stronger conclusion.
|
|
233
|
+
|
|
234
|
+
## Output Contract
|
|
235
|
+
|
|
236
|
+
Return a traceable analysis with:
|
|
237
|
+
|
|
238
|
+
1. the radar site or satellite platform, product, channel/moment, scan interval,
|
|
239
|
+
region, and time range;
|
|
240
|
+
2. the preprocessing, calibration, geolocation, quality masking, and temporal
|
|
241
|
+
alignment steps;
|
|
242
|
+
3. the observed feature locations, structure, motion, and evolution with the
|
|
243
|
+
supporting pixels or beams identified;
|
|
244
|
+
4. a clear separation between direct measurements, derived indices, and
|
|
245
|
+
meteorological interpretation;
|
|
246
|
+
5. uncertainty, alternative explanations, and coverage limitations;
|
|
247
|
+
6. figures or maps that preserve timestamps, color scales, units, and source;
|
|
248
|
+
7. provenance for the raw or materialized products and every derived artifact.
|
|
249
|
+
|
|
250
|
+
Avoid a report that says only "severe storm," "heavy rain," or "rapidly
|
|
251
|
+
developing convection" without a location, time, measured proxy, and evidence
|
|
252
|
+
beneath the label.
|
|
253
|
+
|
|
254
|
+
## Verification Checklist
|
|
255
|
+
|
|
256
|
+
- Radar site or satellite platform and product metadata are confirmed.
|
|
257
|
+
- Scan start/end time, retrieval time, and analysis time are distinct.
|
|
258
|
+
- Geolocation, projection, scale/offset, calibration, and quality flags are
|
|
259
|
+
applied.
|
|
260
|
+
- Beam height, beam width, range, terrain, attenuation, and radar artifacts are
|
|
261
|
+
considered where relevant.
|
|
262
|
+
- Satellite channel meaning, scan mode, daylight dependence, and parallax are
|
|
263
|
+
considered.
|
|
264
|
+
- Radar and satellite claims remain separate unless their alignment and
|
|
265
|
+
complementary evidence are explicit.
|
|
266
|
+
- Feature tracking uses multiple scans and reports its motion assumptions.
|
|
267
|
+
- Derived products include units, thresholds, coverage, and uncertainty.
|
|
268
|
+
|
|
269
|
+
## Security & Safety Notes
|
|
270
|
+
|
|
271
|
+
- Use only public or authorized radar and satellite products.
|
|
272
|
+
- Do not expose AWS credentials, signed URLs, private bucket names, tokens, or
|
|
273
|
+
restricted provider metadata in reports or logs.
|
|
274
|
+
- Treat filenames, metadata, and product attributes as untrusted input; validate
|
|
275
|
+
them before constructing paths or visualizations.
|
|
276
|
+
- Bound scan counts, image sizes, decoding concurrency, and generated artifact
|
|
277
|
+
resolution.
|
|
278
|
+
- Preserve NOAA, NEXRAD, GOES, and other provider attribution and license terms.
|
|
279
|
+
|
|
280
|
+
## Common Pitfalls
|
|
281
|
+
|
|
282
|
+
- **The file creation time was used as measurement time:** A delayed or
|
|
283
|
+
reprocessed product was placed at the wrong point in a storm timeline. Parse
|
|
284
|
+
scan start and end time.
|
|
285
|
+
- **A cold cloud top became a hail claim:** An infrared proxy was treated as a
|
|
286
|
+
direct hail measurement. State the proxy and supporting evidence.
|
|
287
|
+
- **Radar and satellite features did not line up:** Scan intervals, parallax,
|
|
288
|
+
geolocation, or beam height were ignored. Align the observations first.
|
|
289
|
+
- **A reflectivity pixel became a rain rate:** A threshold or lookup relation
|
|
290
|
+
was used without its assumptions and uncertainty. Keep the measured quantity
|
|
291
|
+
separate from the estimate.
|
|
292
|
+
- **A storm “rapidly intensified” from two frames:** A gap, feature mismatch, or
|
|
293
|
+
inconsistent threshold was mistaken for growth. Use a longer sequence and
|
|
294
|
+
tracking evidence.
|
|
295
|
+
- **Radar mosaics hid artifacts:** Values were averaged across sites or a blocked
|
|
296
|
+
beam was treated as a complete field. Retain quality and source information.
|
|
297
|
+
|
|
298
|
+
## Limitations
|
|
299
|
+
|
|
300
|
+
- Radar and satellite products are remote-sensing observations with sampling,
|
|
301
|
+
calibration, attenuation, parallax, and coverage limitations.
|
|
302
|
+
- A single product cannot uniquely identify every convective or microphysical
|
|
303
|
+
process.
|
|
304
|
+
- Historical gaps, instrument outages, scan strategy changes, and provider
|
|
305
|
+
product changes cannot be repaired by interpretation alone.
|
|
306
|
+
- This skill does not retrieve products, perform numerical model comparison, or
|
|
307
|
+
replace official warning and emergency-management guidance.
|
|
308
|
+
|
|
309
|
+
## Additional Resources
|
|
310
|
+
|
|
311
|
+
- [NOAA Radar Operations Center interface documents](https://www.roc.noaa.gov/wsr88d/BuildInfo/Files.aspx)
|
|
312
|
+
- [NOAA NEXRAD on the AWS Registry of Open Data](https://registry.opendata.aws/noaa-nexrad/)
|
|
313
|
+
- [NOAA GOES on the AWS Registry of Open Data](https://registry.opendata.aws/noaa-goes/)
|
|
314
|
+
- [NOAA GOES-R documents](https://www.ospo.noaa.gov/resources/documents/goes-r.html)
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: testdriver-e2e-testing
|
|
3
|
+
description: "Build E2E tests with TestDriver.ai, the AI code reviewer that runs every pull request in a real desktop sandbox, finds bugs, and builds regression tests"
|
|
4
|
+
category: testing
|
|
5
|
+
risk: safe
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: testdriverai/testdriverai
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-09-24"
|
|
10
|
+
author: testdriverai
|
|
11
|
+
tags: [testing, e2e, qa, automation, computer-use]
|
|
12
|
+
tools: [claude, cursor, gemini]
|
|
13
|
+
license: "Apache-2.0"
|
|
14
|
+
license_source: "https://github.com/testdriverai/testdriverai/blob/main/LICENSE"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# TestDriver End-to-End Testing
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
[TestDriver](https://testdriver.ai) is an AI code reviewer that actually runs your app. It automatically runs every pull request in a real desktop sandbox, finds bugs, and builds regression tests. Tests control browsers and native applications using natural language element descriptions and AI vision, and run as Vitest suites. This skill teaches an agent how to author, run, and debug TestDriver tests.
|
|
22
|
+
|
|
23
|
+
## When to Use This Skill
|
|
24
|
+
|
|
25
|
+
- Use when you need to write an end-to-end test for a web or desktop application
|
|
26
|
+
- Use when automating a UI workflow that has no stable selectors (canvas, Electron, native apps)
|
|
27
|
+
- Use when the user asks to verify that a page or flow works ("check if the login page works")
|
|
28
|
+
- Use when debugging a failing TestDriver test
|
|
29
|
+
|
|
30
|
+
## How It Works
|
|
31
|
+
|
|
32
|
+
### Step 1: Set up the project
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx testdriverai init
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
This scaffolds `package.json`, example tests, `vitest.config.mjs`, and a GitHub Actions workflow. The user must set `TD_API_KEY` in `.env` (get a key at https://console.testdriver.ai/team).
|
|
39
|
+
|
|
40
|
+
### Step 2: Write a test
|
|
41
|
+
|
|
42
|
+
Tests are Vitest suites using the TestDriver hooks:
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
import { describe, expect, it } from "vitest";
|
|
46
|
+
import { TestDriver } from "testdriverai/vitest/hooks";
|
|
47
|
+
|
|
48
|
+
describe("Login", () => {
|
|
49
|
+
it("signs in successfully", async (context) => {
|
|
50
|
+
const testdriver = TestDriver(context);
|
|
51
|
+
await testdriver.provision.chrome({ url: "https://example.com/login" });
|
|
52
|
+
|
|
53
|
+
const email = await testdriver.find("email input field");
|
|
54
|
+
await email.click();
|
|
55
|
+
await testdriver.type("user@example.com");
|
|
56
|
+
|
|
57
|
+
const submit = await testdriver.find("Sign In button");
|
|
58
|
+
await submit.click();
|
|
59
|
+
|
|
60
|
+
const result = await testdriver.assert("the dashboard is visible");
|
|
61
|
+
expect(result).toBeTruthy();
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Step 3: Run and iterate
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
vitest run tests/login.test.mjs
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Screenshots are captured automatically before and after every command and saved to `.testdriver/screenshots/`, named with the source line number for easy debugging.
|
|
73
|
+
|
|
74
|
+
## Examples
|
|
75
|
+
|
|
76
|
+
### Example 1: Testing a desktop (Electron) app
|
|
77
|
+
|
|
78
|
+
```javascript
|
|
79
|
+
await testdriver.provision.electron({ appPath: "./dist/my-app" });
|
|
80
|
+
const menu = await testdriver.find("File menu in the menu bar");
|
|
81
|
+
await menu.click();
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Example 2: Waiting for slow elements
|
|
85
|
+
|
|
86
|
+
```javascript
|
|
87
|
+
const done = await testdriver.find("Loading complete indicator", { timeout: 30000 });
|
|
88
|
+
await done.click();
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Best Practices
|
|
92
|
+
|
|
93
|
+
- ✅ Use specific element descriptions ("blue Sign In button in the header", not "button")
|
|
94
|
+
- ✅ Set both `testTimeout` and `hookTimeout` to 900000 in `vitest.config.mjs`
|
|
95
|
+
- ✅ Add `assert()` calls for verifiable pass/fail conditions
|
|
96
|
+
- ✅ Always `await` every TestDriver call
|
|
97
|
+
- ❌ Do not use `npx vitest`; run `vitest run` directly
|
|
98
|
+
- ❌ Do not rely on CSS selectors; TestDriver locates elements visually
|
|
99
|
+
|
|
100
|
+
## Limitations
|
|
101
|
+
|
|
102
|
+
- Requires a TestDriver API key (`TD_API_KEY`) and network access to provision sandboxes.
|
|
103
|
+
- Only works with Vitest as the test runner.
|
|
104
|
+
- This skill does not replace environment-specific validation, testing, or expert review.
|
|
105
|
+
|
|
106
|
+
## Security & Safety Notes
|
|
107
|
+
|
|
108
|
+
- `npx testdriverai init` writes project files to the current directory; run it only in a project you intend to modify.
|
|
109
|
+
- The `TD_API_KEY` credential belongs in `.env` (gitignored by the scaffold). Never commit it.
|
|
110
|
+
- Tests execute inside an isolated remote sandbox, not on the local machine.
|
|
111
|
+
|
|
112
|
+
## Common Pitfalls
|
|
113
|
+
|
|
114
|
+
- **Problem:** Cleanup hooks fail with a 10s timeout.
|
|
115
|
+
**Solution:** Set `hookTimeout: 900000` in `vitest.config.mjs`; sandbox teardown and recording uploads take longer than Vitest's default.
|
|
116
|
+
- **Problem:** Scrolling does nothing.
|
|
117
|
+
**Solution:** An input field has focus. Press Escape or click the page background first, then scroll.
|
|
118
|
+
|
|
119
|
+
## Related Skills
|
|
120
|
+
|
|
121
|
+
- `@webapp-testing` - Playwright-based alternative for local web apps with stable DOM selectors
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: traderspy-market-briefing
|
|
3
|
+
description: "Crypto market briefing from live TraderSpy data: majors, funding, open interest, top-trader lean, fresh AI signals and screener movers. Use for \"what's happening in crypto\" or a recap."
|
|
4
|
+
category: finance
|
|
5
|
+
risk: safe
|
|
6
|
+
source: "https://github.com/target1m/traderspy-mcp/tree/069aae5a84640d671f92705a2e3bc0b62efca1e0/skills/market-briefing"
|
|
7
|
+
source_repo: target1m/traderspy-mcp
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-09-25"
|
|
10
|
+
author: target1m
|
|
11
|
+
tags: [traderspy, crypto, market-briefing, derivatives, mcp]
|
|
12
|
+
tools: [claude, cursor, gemini]
|
|
13
|
+
license: MIT
|
|
14
|
+
license_source: "https://github.com/target1m/traderspy-mcp/blob/069aae5a84640d671f92705a2e3bc0b62efca1e0/LICENSE"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# TraderSpy Market Briefing
|
|
18
|
+
|
|
19
|
+
A briefing is a fixed set of questions answered with fresh numbers, in an order a trader can scan
|
|
20
|
+
in thirty seconds: where are the majors, how is the market positioned, what is the signal engine
|
|
21
|
+
seeing, what stands out on the screener. The value is in the selection and the brevity, not in the
|
|
22
|
+
volume of data — every tool call costs the user quota, so the playbook below is deliberately
|
|
23
|
+
tight.
|
|
24
|
+
|
|
25
|
+
## When to Use
|
|
26
|
+
|
|
27
|
+
- Use when the user asks "what's happening in crypto", for a market update or a morning brief, "how's the market today", "anything interesting right now", an overview or a weekly recap.
|
|
28
|
+
- Use when a conversation opens with a vague question about the crypto market, even a casual one.
|
|
29
|
+
- Do not use for a deep dive on one coin (`@traderspy-technical-analysis`), one trader (`@traderspy-smart-money`) or one signal (`@traderspy-trading-signals`).
|
|
30
|
+
|
|
31
|
+
## The playbook (6 calls, all read-only)
|
|
32
|
+
|
|
33
|
+
1. **Majors** — `get_price` with `["BTCUSDT","ETHUSDT","SOLUSDT"]` plus any coins the user has
|
|
34
|
+
mentioned in the conversation (≤ 20 per call). Price, 24h change, 24h range.
|
|
35
|
+
2. **Positioning** — `get_derivatives` with `["BTC","ETH","SOL"]` (add up to two of the user's
|
|
36
|
+
coins). Funding label and annualized rate, open-interest change and regime, top-trader long
|
|
37
|
+
share, taker flow. The `notes[]` are written to be quoted.
|
|
38
|
+
3. **Movers** — `screen_symbols` with no conditions, `sortBy: "change24h"`, `limit: 50`, `universe:
|
|
39
|
+
50`, `interval: "4h"`. One call returns all 50 most-traded pairs sorted by 24h change: the top
|
|
40
|
+
five are the gainers, the last five the losers.
|
|
41
|
+
4. **What is stretched** — `screen_symbols` with `[{"metric":"rsi","op":"lt","value":30}]` on 4h,
|
|
42
|
+
`limit: 5`. If it returns nothing, flip to `rsi gt 70` — one of the two usually has names.
|
|
43
|
+
5. **Signal engine** — `get_signal_stats` with `period: "24h"` (or `7d` for a weekly recap).
|
|
44
|
+
6. **Freshest ideas** — `get_signals` with `limit: 5`.
|
|
45
|
+
|
|
46
|
+
Smart-money lean is already in step 2 (`positioning.topTraderLongPct`); add `get_positions`
|
|
47
|
+
(`status: open`, `limit: 20`) only when the user asks who specifically is positioned how.
|
|
48
|
+
|
|
49
|
+
**Quota-aware variants.** If the user is on a free key or asks for "just the headline", run steps
|
|
50
|
+
1, 2 and 5 only (three calls) and say what you skipped. For a weekly recap use `7d` in step 5 and
|
|
51
|
+
`interval: "1d"` in steps 3–4.
|
|
52
|
+
|
|
53
|
+
If any call fails or returns empty, keep the section with a one-line "unavailable right now" note
|
|
54
|
+
rather than dropping it silently — a briefing with a hole is more honest than one that quietly
|
|
55
|
+
narrowed.
|
|
56
|
+
|
|
57
|
+
## Reading the pieces
|
|
58
|
+
|
|
59
|
+
- **Funding**: near the 0.01%/8h baseline is neutral; clearly positive means longs pay shorts (a
|
|
60
|
+
crowded long is a risk, not a signal); negative means shorts pay. Quote the annualized figure —
|
|
61
|
+
it is the number people feel.
|
|
62
|
+
- **Open interest regime** (`openInterest.regime`): `new_longs` (OI up, price up), `short_covering`
|
|
63
|
+
(OI down, price up), `new_shorts` (OI up, price down), `long_liquidation` (OI down, price down),
|
|
64
|
+
`flat`. This is the one line that explains WHY the majors moved.
|
|
65
|
+
- **Top-trader long share**: the tool labels `long_heavy` at a long/short ratio ≥ 1.5 (≈ 60%+
|
|
66
|
+
long) and `short_heavy` at ≤ 0.67 (≈ 40% or less); in between call it balanced. Top-trader
|
|
67
|
+
positioning is the more informative one; the all-account ratio shows the crowd.
|
|
68
|
+
- **Signal stats**: `winRate` is hits ÷ (hits + stops) on signals created in the window; say
|
|
69
|
+
`total` and `pending` next to it, and treat a 24h window with fewer than ~10 resolved signals as
|
|
70
|
+
a small sample.
|
|
71
|
+
- **Movers** are the most-traded pairs by 24h volume sorted by change — a liquid-names list, not
|
|
72
|
+
an all-market list. Say so if a small cap the user follows is missing.
|
|
73
|
+
|
|
74
|
+
## The briefing format
|
|
75
|
+
|
|
76
|
+
ALWAYS use this structure, in this order, with real numbers from the calls — no placeholders:
|
|
77
|
+
|
|
78
|
+
**Crypto brief — <date, UTC time of the calls>**
|
|
79
|
+
|
|
80
|
+
1. **Headline** — one sentence: the majors' direction and the single most notable positioning fact.
|
|
81
|
+
2. **Majors** — a table: Symbol · Price · 24h % · 24h range.
|
|
82
|
+
3. **Positioning** — per major, one line: funding (label, annualized), OI regime, top-trader long %,
|
|
83
|
+
and one quoted `note`.
|
|
84
|
+
4. **Movers** — top 5 gainers and top 5 losers among the most-traded pairs (symbol, price, 24h %).
|
|
85
|
+
5. **Stretched** — the oversold or overbought names with their RSI, or "none on the 4h" if empty.
|
|
86
|
+
6. **Signal engine** — `total` signals in the window, hit rate with the resolved count, then the
|
|
87
|
+
five freshest signals as one line each: coin, side, timeframe, preset, status.
|
|
88
|
+
7. **What to watch** — two or three bullets derived from the data above (a funding extreme, an OI
|
|
89
|
+
regime worth confirming, a stretched name that is also in a signal). Facts and their
|
|
90
|
+
implications, not instructions.
|
|
91
|
+
8. One plain sentence: crypto derivatives are high-risk; this is market information for the user's
|
|
92
|
+
own research, not financial advice.
|
|
93
|
+
|
|
94
|
+
Keep it under ~350 words. Numbers beat adjectives: "BTC −2.1% to 77,300, funding neutral, OI −2.7%
|
|
95
|
+
with price flat" is a briefing; "BTC looks weak" is not.
|
|
96
|
+
|
|
97
|
+
## Conduct
|
|
98
|
+
|
|
99
|
+
- A briefing reports the market; it does not tell the user what to do in it. "What to watch" names
|
|
100
|
+
facts and what would confirm or invalidate them — never "buy the dip" or "short this".
|
|
101
|
+
- Hit rates and past moves describe their sample; do not extend them into predictions.
|
|
102
|
+
- Nothing in this connector trades — no order, close, transfer or withdrawal tool exists, by
|
|
103
|
+
design. If asked to act on the briefing, say so plainly; the decision and the trade stay with the
|
|
104
|
+
user.
|
|
105
|
+
- Every number comes from a tool result made in this conversation; state the time of the calls so
|
|
106
|
+
the user knows how fresh the brief is, and never reuse figures from an earlier brief as if they
|
|
107
|
+
were current.
|
|
108
|
+
|
|
109
|
+
## Examples
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
Give me a crypto market briefing.
|
|
113
|
+
Give me a crypto morning brief: what moved, where funding is stretched, and what the AI signals fired overnight.
|
|
114
|
+
Just the headline: where are BTC, ETH and SOL, and how is the market positioned?
|
|
115
|
+
Weekly recap of the crypto market.
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Limitations
|
|
119
|
+
|
|
120
|
+
- Needs the hosted TraderSpy MCP server connected in the client (`https://mcp.traderspy.app/mcp`, Streamable HTTP), authorized with OAuth or a personal key from https://traderspy.app/mcp. A free TraderSpy account is enough. Without the server the skill has no data to work from.
|
|
121
|
+
- Tool calls are metered per day: 300 on the free tier, 5,000 on premium.
|
|
122
|
+
- Every tool is read-only. Nothing here places, closes or modifies an order, and there is no withdrawal or transfer tool.
|
|
123
|
+
- The output is market data and analysis for the user's own research, not investment advice.
|
|
124
|
+
- A full briefing uses six tool calls; the headline variant uses three.
|
|
125
|
+
- The movers and stretched lists cover the most-traded pairs by 24h volume, not every listed coin.
|
|
126
|
+
|
|
127
|
+
## Related Skills
|
|
128
|
+
|
|
129
|
+
- `@traderspy-technical-analysis` - one coin in depth
|
|
130
|
+
- `@traderspy-market-screener` - the full screener and backtests behind the movers list
|
|
131
|
+
- `@traderspy-trading-signals` - one signal in detail
|
|
132
|
+
- `@traderspy-smart-money` - who specifically is positioned how
|