opencode-skills-collection 4.0.71 → 4.0.73
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 +13 -1
- package/bundled-skills/agent-memory-discipline/SKILL.md +204 -0
- package/bundled-skills/agent-memory-discipline/references/entry-format.md +37 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +2 -2
- package/bundled-skills/chatexport-need-miner/SKILL.md +196 -0
- package/bundled-skills/dali-short-address-commissioner/SKILL.md +185 -0
- package/bundled-skills/eol-resistor-calculator/SKILL.md +211 -0
- package/bundled-skills/esl-price-sync/SKILL.md +210 -0
- package/bundled-skills/jev-social/SKILL.md +5 -5
- package/bundled-skills/marlin-bed-leveling/SKILL.md +181 -0
- package/bundled-skills/noaa-radar-satellite-fetching/SKILL.md +253 -0
- package/bundled-skills/oneroster-csv-validator/SKILL.md +205 -0
- package/bundled-skills/telegram-mini-app/references/detailed-guide.md +26 -0
- package/bundled-skills/weather-data-lifecycle-management/SKILL.md +159 -0
- package/bundled-skills/weather-data-reproducibility/SKILL.md +292 -0
- package/bundled-skills/weather-model-run-discovery/SKILL.md +241 -0
- package/bundled-skills/weather-pipeline-performance-diagnosis/SKILL.md +184 -0
- package/package.json +1 -1
- package/skills_index.json +385 -1
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weather-model-run-discovery
|
|
3
|
+
description: "Resolve the newest complete numerical weather prediction cycle and forecast objects across provider mirrors without downloading full payloads."
|
|
4
|
+
category: data
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-24"
|
|
9
|
+
author: ShianMike
|
|
10
|
+
tags: [weather, nwp, model-cycle, aws-s3, nomads, herbie]
|
|
11
|
+
tools: [claude, cursor, gemini, codex]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Weather Model Run Discovery
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Resolve a numerical weather prediction run before downloading model fields.
|
|
19
|
+
Probe exact objects or narrow prefixes, verify a request-specific completion
|
|
20
|
+
contract, and return the newest qualifying initialization with its source
|
|
21
|
+
metadata.
|
|
22
|
+
|
|
23
|
+
This skill decides *which run and objects exist*. Use
|
|
24
|
+
`weather-model-data-fetching` afterward to transfer or subset the data.
|
|
25
|
+
|
|
26
|
+
## When to Use This Skill
|
|
27
|
+
|
|
28
|
+
- An application needs the newest usable GFS, GEFS, HRRR, RAP, NAM, or similar
|
|
29
|
+
model cycle.
|
|
30
|
+
- The nominal latest cycle returns `404`, has only early forecast hours, or is
|
|
31
|
+
still changing.
|
|
32
|
+
- Equivalent AWS, NOMADS, Google, Azure, or other mirrors must be compared
|
|
33
|
+
without silently mixing runs.
|
|
34
|
+
- A scheduled job needs a bounded fallback to an older complete cycle.
|
|
35
|
+
- The resolved run and provider must be recorded for later reproduction.
|
|
36
|
+
|
|
37
|
+
Do not activate this skill when the initialization is already fixed or when the
|
|
38
|
+
task is to download, decode, or interpret model variables.
|
|
39
|
+
|
|
40
|
+
## Define Complete Before Probing
|
|
41
|
+
|
|
42
|
+
Collect the following request contract:
|
|
43
|
+
|
|
44
|
+
- model, domain, product, and ensemble member;
|
|
45
|
+
- legal UTC cycle hours and cycle interval;
|
|
46
|
+
- required forecast hours;
|
|
47
|
+
- required companion objects, such as pressure and surface products;
|
|
48
|
+
- required inventory or index sidecars;
|
|
49
|
+
- provider priority and whether cross-provider fallback is allowed;
|
|
50
|
+
- maximum lookback, maximum probes, and freshness requirement.
|
|
51
|
+
|
|
52
|
+
A run is complete only when every sentinel required by the consumer exists.
|
|
53
|
+
Examples include:
|
|
54
|
+
|
|
55
|
+
- one product at one forecast hour for a single-image job;
|
|
56
|
+
- both pressure-level and surface files for a sounding;
|
|
57
|
+
- the terminal forecast hour needed by a time series;
|
|
58
|
+
- every required member for an ensemble statistic.
|
|
59
|
+
|
|
60
|
+
The presence of forecast hour zero does not prove that a run is complete.
|
|
61
|
+
|
|
62
|
+
## Discovery Workflow
|
|
63
|
+
|
|
64
|
+
1. Normalize the current time and all candidate initialization times to UTC.
|
|
65
|
+
2. Enumerate only legal cycles, newest first, within the lookback bound.
|
|
66
|
+
3. Build documented object keys for the exact model, product, member, and
|
|
67
|
+
forecast hour. Never recursively scan an entire bucket.
|
|
68
|
+
4. Probe exact objects with `HeadObject`, HTTP `HEAD`, or a narrow paginated
|
|
69
|
+
prefix listing. A probe should retrieve metadata, not the model payload.
|
|
70
|
+
5. Require every sentinel and sidecar in the completion contract. Reject zero-
|
|
71
|
+
length or obviously placeholder objects.
|
|
72
|
+
6. For a live mirror that may expose objects before publication finishes,
|
|
73
|
+
repeat the metadata probe after a short bounded interval and require stable
|
|
74
|
+
size and object identity.
|
|
75
|
+
7. Select the first complete candidate. A fallback provider must refer to the
|
|
76
|
+
same initialization, product, member, and forecast hour.
|
|
77
|
+
8. Emit a resolution record before starting the download.
|
|
78
|
+
|
|
79
|
+
Use a provider's documented cycle status page as supporting evidence, not as a
|
|
80
|
+
substitute for probing the exact objects the consumer requires.
|
|
81
|
+
|
|
82
|
+
## Minimal Resolver Example
|
|
83
|
+
|
|
84
|
+
Keep provider-specific key construction separate from the selection rule. This
|
|
85
|
+
example accepts a metadata-only `probe` callback so it can be used with S3,
|
|
86
|
+
HTTP, or a test fixture.
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
from datetime import datetime, timedelta, timezone
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def candidate_cycles(now, cycle_hours, lookback):
|
|
93
|
+
now = now.astimezone(timezone.utc).replace(minute=0, second=0, microsecond=0)
|
|
94
|
+
allowed = sorted(set(cycle_hours), reverse=True)
|
|
95
|
+
candidates = []
|
|
96
|
+
for days_back in range((lookback // 24) + 2):
|
|
97
|
+
day = (now - timedelta(days=days_back)).date()
|
|
98
|
+
for hour in allowed:
|
|
99
|
+
cycle = datetime(day.year, day.month, day.day, hour, tzinfo=timezone.utc)
|
|
100
|
+
if cycle <= now and now - cycle <= timedelta(hours=lookback):
|
|
101
|
+
candidates.append(cycle)
|
|
102
|
+
return sorted(set(candidates), reverse=True)
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def resolve_latest(now, cycle_hours, lookback, required_objects, probe):
|
|
106
|
+
"""Return one complete run; probe(uri) returns metadata or None."""
|
|
107
|
+
attempts = []
|
|
108
|
+
for cycle in candidate_cycles(now, cycle_hours, lookback):
|
|
109
|
+
requested = required_objects(cycle)
|
|
110
|
+
found = {name: probe(uri) for name, uri in requested.items()}
|
|
111
|
+
missing = [name for name, metadata in found.items() if not metadata]
|
|
112
|
+
attempts.append({"cycle": cycle.isoformat(), "missing": missing})
|
|
113
|
+
if not missing:
|
|
114
|
+
return {
|
|
115
|
+
"initialization": cycle.isoformat(),
|
|
116
|
+
"objects": [
|
|
117
|
+
{"role": name, "uri": requested[name], **found[name]}
|
|
118
|
+
for name in requested
|
|
119
|
+
],
|
|
120
|
+
"attempts": attempts,
|
|
121
|
+
}
|
|
122
|
+
raise LookupError(f"no complete run within {lookback} hours: {attempts}")
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
The caller must make `required_objects` express the real completion contract;
|
|
126
|
+
checking a single convenient file defeats the purpose of discovery.
|
|
127
|
+
|
|
128
|
+
## Public S3 Diagnostics
|
|
129
|
+
|
|
130
|
+
For public NOAA Open Data buckets, inspect exact objects without loading AWS
|
|
131
|
+
credentials:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
aws s3api head-object --no-sign-request \
|
|
135
|
+
--bucket BUCKET \
|
|
136
|
+
--key "EXACT/DOCUMENTED/OBJECT"
|
|
137
|
+
|
|
138
|
+
aws s3api list-objects-v2 --no-sign-request \
|
|
139
|
+
--bucket BUCKET \
|
|
140
|
+
--prefix "MODEL.DATE/DOMAIN/PRECISE-RUN-PREFIX" \
|
|
141
|
+
--max-items 100
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Paginate narrow listings. S3 returns at most one page at a time, and a
|
|
145
|
+
successful listing still needs defensive response parsing. `403` and `404`
|
|
146
|
+
from `HeadObject` can be intentionally nonspecific; distinguish a missing
|
|
147
|
+
public object from a permission or endpoint error before falling back.
|
|
148
|
+
|
|
149
|
+
## Resolution Record
|
|
150
|
+
|
|
151
|
+
Return enough information for the fetcher and provenance layer to use the exact
|
|
152
|
+
same objects:
|
|
153
|
+
|
|
154
|
+
```json
|
|
155
|
+
{
|
|
156
|
+
"requested_at_utc": "2026-09-18T08:45:00Z",
|
|
157
|
+
"model": "hrrr",
|
|
158
|
+
"product": "prs",
|
|
159
|
+
"initialization": "2026-09-18T06:00:00Z",
|
|
160
|
+
"required_forecast_hours": [0, 6, 18],
|
|
161
|
+
"provider": "aws",
|
|
162
|
+
"objects": [
|
|
163
|
+
{
|
|
164
|
+
"role": "pressure_f018",
|
|
165
|
+
"uri": "s3://bucket/exact-key",
|
|
166
|
+
"size_bytes": 123456,
|
|
167
|
+
"etag": "opaque-object-identity",
|
|
168
|
+
"last_modified": "2026-09-18T07:12:34Z"
|
|
169
|
+
}
|
|
170
|
+
],
|
|
171
|
+
"fallback_cycles_rejected": []
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Keep ETags as opaque identity values. They are not guaranteed to be full-file
|
|
176
|
+
MD5 checksums.
|
|
177
|
+
|
|
178
|
+
## Reliability and Caching
|
|
179
|
+
|
|
180
|
+
- Cache positive results only briefly enough for the model cadence and
|
|
181
|
+
publication latency. Cache negative probes for a shorter interval.
|
|
182
|
+
- Retry timeouts, `408`, `429`, and transient `5xx` responses with bounded
|
|
183
|
+
exponential backoff and jitter; honor `Retry-After`.
|
|
184
|
+
- Bound lookback and total probes so a provider outage cannot create an
|
|
185
|
+
unbounded bucket walk.
|
|
186
|
+
- Do not treat one mirror's lag as proof that the run is absent everywhere.
|
|
187
|
+
- Do not mix objects from different providers unless their run identity and
|
|
188
|
+
product semantics have been verified equivalent.
|
|
189
|
+
- Record rejected cycles and missing sentinels so fallback is visible.
|
|
190
|
+
|
|
191
|
+
## Verification Checklist
|
|
192
|
+
|
|
193
|
+
- Candidate cycles are legal for the requested model and expressed in UTC.
|
|
194
|
+
- Every required product, member, forecast hour, and sidecar is present.
|
|
195
|
+
- Object sizes are nonzero and stable when a stabilization check is required.
|
|
196
|
+
- The resolved provider and exact object identities are recorded.
|
|
197
|
+
- The selected run satisfies the user's freshness and lookback bounds.
|
|
198
|
+
- No model payload was downloaded merely to discover availability.
|
|
199
|
+
- A failure reports which cycles were checked and which sentinels were absent.
|
|
200
|
+
|
|
201
|
+
## Security & Safety Notes
|
|
202
|
+
|
|
203
|
+
- Probe only public datasets or resources the user is authorized to access.
|
|
204
|
+
- Never embed cloud credentials, signed URLs, session tokens, or private
|
|
205
|
+
endpoint details in a resolution record.
|
|
206
|
+
- Keep TLS verification enabled. Unsigned public S3 access is not the same as
|
|
207
|
+
disabling certificate verification.
|
|
208
|
+
- Bound prefix width, pagination, retries, and request rate before probing.
|
|
209
|
+
- Treat provider object names and metadata as untrusted input when writing logs
|
|
210
|
+
or constructing local paths.
|
|
211
|
+
|
|
212
|
+
## Common Pitfalls
|
|
213
|
+
|
|
214
|
+
- **Newest cycle has `f000`:** Later required forecast hours are still
|
|
215
|
+
publishing. Test the actual terminal sentinels.
|
|
216
|
+
- **A provider fallback changes the forecast:** The fallback changed a product,
|
|
217
|
+
member, or cycle as well as the mirror. Reject it.
|
|
218
|
+
- **A listing found an object but the download changes:** The publisher was
|
|
219
|
+
still updating it. Require stable metadata or conditional reads.
|
|
220
|
+
- **Discovery is slow and expensive:** The prefix is too broad or pagination is
|
|
221
|
+
unbounded. Construct exact keys wherever possible.
|
|
222
|
+
- **Local time selected the wrong day:** Perform cycle arithmetic in UTC and
|
|
223
|
+
convert only for display.
|
|
224
|
+
|
|
225
|
+
## Limitations
|
|
226
|
+
|
|
227
|
+
- Publication schedules, provider retention, key layouts, and mirror status can
|
|
228
|
+
change; verify them against current provider documentation.
|
|
229
|
+
- Metadata stability reduces the chance of a partial publication but does not
|
|
230
|
+
prove that the model contents are scientifically valid.
|
|
231
|
+
- This skill does not fetch GRIB2 fields, decode model data, or assess forecast
|
|
232
|
+
quality.
|
|
233
|
+
|
|
234
|
+
## Additional Resources
|
|
235
|
+
|
|
236
|
+
- [NCEP NOMADS data availability](https://nomads.ncep.noaa.gov/)
|
|
237
|
+
- [NCEP NOMADS status](https://nomads.ncep.noaa.gov/status.php)
|
|
238
|
+
- [Herbie latest model run guidance](https://herbie.readthedocs.io/en/latest/user_guide/tutorial/latest.html)
|
|
239
|
+
- [Amazon S3 `HeadObject`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html)
|
|
240
|
+
- [Amazon S3 `ListObjectsV2`](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html)
|
|
241
|
+
- [Amazon S3 conditional requests](https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html)
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weather-pipeline-performance-diagnosis
|
|
3
|
+
description: "Diagnose slow weather-data workflows by measuring discovery, transfer, parsing, scientific processing, and rendering separately before changing code."
|
|
4
|
+
category: data
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-24"
|
|
9
|
+
author: ShianMike
|
|
10
|
+
tags: [weather, performance, profiling, diagnostics, pipelines]
|
|
11
|
+
tools: [claude, cursor, gemini, codex]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Weather Pipeline Performance Diagnosis
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Find the stage that actually makes a weather workflow slow before optimizing it.
|
|
19
|
+
Measure the real runtime path from source discovery through the final artifact,
|
|
20
|
+
including optional companion data and fallback work.
|
|
21
|
+
|
|
22
|
+
This skill diagnoses latency and throughput. It does not prescribe a particular
|
|
23
|
+
data provider, file format, decoder, or optimization.
|
|
24
|
+
|
|
25
|
+
## When to Use This Skill
|
|
26
|
+
|
|
27
|
+
- A fetch, sounding, map, animation, or batch job feels slower than before.
|
|
28
|
+
- A parser or native backend is blamed without stage-level timing evidence.
|
|
29
|
+
- Local runs and packaged or hosted runs have different performance.
|
|
30
|
+
- A cache, provider fallback, optional enrichment, or rendering step may hide
|
|
31
|
+
the real cost.
|
|
32
|
+
- A proposed performance fix needs a repeatable before-and-after comparison.
|
|
33
|
+
|
|
34
|
+
Do not activate this skill for a correctness bug unless performance is also part
|
|
35
|
+
of the observed failure.
|
|
36
|
+
|
|
37
|
+
## Reproduce the Real Path
|
|
38
|
+
|
|
39
|
+
Record one fixed workload before editing code:
|
|
40
|
+
|
|
41
|
+
- requested source, time, location, variables, and output;
|
|
42
|
+
- application commit and runtime version;
|
|
43
|
+
- active implementation or backend, including fallback reason;
|
|
44
|
+
- cold-cache or warm-cache state;
|
|
45
|
+
- machine, operating system, worker count, and relevant resource limits;
|
|
46
|
+
- bytes transferred and final artifact size;
|
|
47
|
+
- whether optional guidance, overlays, or secondary sources were enabled.
|
|
48
|
+
|
|
49
|
+
Use the same workload for the baseline and candidate measurement. A faster run
|
|
50
|
+
with fewer inputs or a warm cache is not evidence that the original path
|
|
51
|
+
improved.
|
|
52
|
+
|
|
53
|
+
## Divide the Pipeline into Stages
|
|
54
|
+
|
|
55
|
+
At minimum, time these boundaries independently:
|
|
56
|
+
|
|
57
|
+
1. request validation and source discovery;
|
|
58
|
+
2. availability checks and fallback selection;
|
|
59
|
+
3. network transfer or cache read;
|
|
60
|
+
4. parsing or decoding;
|
|
61
|
+
5. supplemental-data retrieval;
|
|
62
|
+
6. profile, grid, or derived-value construction;
|
|
63
|
+
7. visualization or export;
|
|
64
|
+
8. cleanup and final publication.
|
|
65
|
+
|
|
66
|
+
Add sub-stages only where the first pass shows meaningful time. Preserve the
|
|
67
|
+
existing behavior while instrumenting; diagnostics must not silently disable
|
|
68
|
+
expensive work.
|
|
69
|
+
|
|
70
|
+
## Lightweight Timing Example
|
|
71
|
+
|
|
72
|
+
Use a monotonic clock and emit structured records that can be compared across
|
|
73
|
+
runs:
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
import json
|
|
77
|
+
import time
|
|
78
|
+
from contextlib import contextmanager
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
@contextmanager
|
|
82
|
+
def timed_stage(name, report):
|
|
83
|
+
started = time.perf_counter()
|
|
84
|
+
outcome = "ok"
|
|
85
|
+
try:
|
|
86
|
+
yield
|
|
87
|
+
except BaseException:
|
|
88
|
+
outcome = "error"
|
|
89
|
+
raise
|
|
90
|
+
finally:
|
|
91
|
+
report.append({
|
|
92
|
+
"stage": name,
|
|
93
|
+
"outcome": outcome,
|
|
94
|
+
"seconds": round(time.perf_counter() - started, 6),
|
|
95
|
+
})
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
timings = []
|
|
99
|
+
with timed_stage("source_discovery", timings):
|
|
100
|
+
source = discover_source()
|
|
101
|
+
with timed_stage("transfer", timings):
|
|
102
|
+
local_path = fetch_source(source)
|
|
103
|
+
with timed_stage("processing", timings):
|
|
104
|
+
result = build_result(local_path)
|
|
105
|
+
|
|
106
|
+
print(json.dumps(timings, sort_keys=True))
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Instrument production boundaries or the same public APIs used by production.
|
|
110
|
+
Avoid a benchmark helper that bypasses the path users report as slow.
|
|
111
|
+
|
|
112
|
+
## Interpret the Evidence
|
|
113
|
+
|
|
114
|
+
- Long discovery with little transfer suggests broad listings, excessive
|
|
115
|
+
retries, provider timeouts, or repeated availability probes.
|
|
116
|
+
- Long transfer with expected parsing time suggests bandwidth, object size,
|
|
117
|
+
throttling, or failure to reuse a valid cache.
|
|
118
|
+
- Long parsing requires proof that the intended backend is active and that the
|
|
119
|
+
input volume is comparable.
|
|
120
|
+
- Long processing after parsing points to interpolation, secondary retrieval,
|
|
121
|
+
profile construction, or repeated computation.
|
|
122
|
+
- Long rendering can come from layout, rasterization, font loading, excessive
|
|
123
|
+
redraws, or large output dimensions.
|
|
124
|
+
- High variance across identical runs suggests external services, contention,
|
|
125
|
+
cold starts, garbage collection, or uncontrolled parallelism.
|
|
126
|
+
|
|
127
|
+
Measure wall time, CPU time, bytes, item counts, cache state, and worker count
|
|
128
|
+
where they explain the result. A single total duration cannot locate a
|
|
129
|
+
bottleneck.
|
|
130
|
+
|
|
131
|
+
## Validate a Fix
|
|
132
|
+
|
|
133
|
+
1. Preserve the baseline report and environment description.
|
|
134
|
+
2. Change the smallest shared cause supported by the measurements.
|
|
135
|
+
3. Rerun the identical workload several times in the same cache state.
|
|
136
|
+
4. Compare the affected stage, total duration, output identity, and resource
|
|
137
|
+
use.
|
|
138
|
+
5. Run correctness tests for the changed path.
|
|
139
|
+
6. Report both improvement and measurement variability.
|
|
140
|
+
|
|
141
|
+
Do not call a slowdown fixed when only a suspected backend, log message, or
|
|
142
|
+
microbenchmark changed. Require an end-to-end result from the reported path.
|
|
143
|
+
|
|
144
|
+
## Verification Checklist
|
|
145
|
+
|
|
146
|
+
- The measured workload matches the user's slow workflow.
|
|
147
|
+
- Active backend and fallback state are observed, not inferred.
|
|
148
|
+
- Network, parsing, processing, rendering, and cleanup are separate timings.
|
|
149
|
+
- Cold and warm cache results are labeled.
|
|
150
|
+
- Optional or supplemental work remains visible.
|
|
151
|
+
- Baseline and candidate use equivalent inputs, outputs, and worker settings.
|
|
152
|
+
- The fix has correctness checks plus repeatable before-and-after evidence.
|
|
153
|
+
|
|
154
|
+
## Security & Safety Notes
|
|
155
|
+
|
|
156
|
+
- Remove credentials, signed URLs, private paths, and sensitive coordinates
|
|
157
|
+
from timing reports before sharing them.
|
|
158
|
+
- Bound benchmark repetitions, downloads, concurrency, and disk usage.
|
|
159
|
+
- Do not disable certificate verification or safety checks to improve timing.
|
|
160
|
+
- Avoid profiling production services in a way that increases load without
|
|
161
|
+
authorization.
|
|
162
|
+
- Keep diagnostic logs from capturing raw private datasets unnecessarily.
|
|
163
|
+
|
|
164
|
+
## Common Pitfalls
|
|
165
|
+
|
|
166
|
+
- **The decoder is blamed first:** Transfer or supplemental data dominates.
|
|
167
|
+
Measure each boundary before changing the decoder.
|
|
168
|
+
- **The candidate looks faster:** It used a warm cache or smaller request.
|
|
169
|
+
Restore equivalent conditions.
|
|
170
|
+
- **A unit benchmark passes:** The real application takes a fallback or render
|
|
171
|
+
path the benchmark omits. Measure the application entry point.
|
|
172
|
+
- **A timing limit is raised:** No stage-level regression analysis was done.
|
|
173
|
+
Inspect evidence and rerun before changing a budget.
|
|
174
|
+
- **Parallelism increases latency:** Workers contend for network, memory, or
|
|
175
|
+
decoder resources. Measure throughput and resource saturation together.
|
|
176
|
+
|
|
177
|
+
## Limitations
|
|
178
|
+
|
|
179
|
+
- External-service latency and hosted-runner capacity can remain variable even
|
|
180
|
+
with correct instrumentation.
|
|
181
|
+
- Instrumentation has overhead; keep it lightweight and measure coarse stages
|
|
182
|
+
before adding fine-grained probes.
|
|
183
|
+
- This skill identifies bottlenecks but does not determine whether an expensive
|
|
184
|
+
scientific operation is necessary or meteorologically appropriate.
|
package/package.json
CHANGED