opencode-skills-collection 4.0.66 → 4.0.68

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 (27) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +18 -1
  2. package/bundled-skills/anti-slop-design/SKILL.md +393 -0
  3. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -0
  4. package/bundled-skills/artifact-yylo/SKILL.md +122 -0
  5. package/bundled-skills/beatra-ai-video-studio/SKILL.md +272 -0
  6. package/bundled-skills/google-no-code/SKILL.md +136 -0
  7. package/bundled-skills/idea-evaluator/SKILL.md +75 -0
  8. package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
  9. package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -0
  10. package/bundled-skills/ledger-tasks-yylo/SKILL.md +219 -0
  11. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
  12. package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
  13. package/bundled-skills/meteora-dlmm-pool-screening/SKILL.md +166 -0
  14. package/bundled-skills/meteora-dlmm-pool-screening/references/meteora-apis.md +74 -0
  15. package/bundled-skills/meteora-dlmm-pool-screening/references/meteora-screener.md +352 -0
  16. package/bundled-skills/plan-ledger-tasks-yylo/SKILL.md +52 -0
  17. package/bundled-skills/ralph-loop-yylo/SKILL.md +55 -0
  18. package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
  19. package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -0
  20. package/bundled-skills/resumable-implementation-contracts/SKILL.md +254 -0
  21. package/bundled-skills/understand-project-yylo/SKILL.md +62 -0
  22. package/bundled-skills/weather-model-data-fetching/SKILL.md +277 -0
  23. package/bundled-skills/weather-observation-fetching/SKILL.md +246 -0
  24. package/bundled-skills/wiki-yylo/SKILL.md +114 -0
  25. package/bundled-skills/workflow-yylo/SKILL.md +107 -0
  26. package/package.json +1 -1
  27. package/skills_index.json +422 -0
@@ -0,0 +1,246 @@
1
+ ---
2
+ name: weather-observation-fetching
3
+ description: "Retrieve surface and upper-air weather observations from authoritative APIs and archives with station identity, time, units, and quality flags preserved."
4
+ category: data
5
+ risk: safe
6
+ source: self
7
+ source_type: self
8
+ date_added: "2026-09-19"
9
+ author: ShianMike
10
+ tags: [weather, observations, metar, radiosonde, noaa, quality-control]
11
+ tools: [claude, cursor, gemini, codex]
12
+ ---
13
+
14
+ # Weather Observation Fetching
15
+
16
+ ## Overview
17
+
18
+ Retrieve measured surface and upper-air weather reports without losing station
19
+ identity, observation time, units, raw values, or provider quality flags. Pick
20
+ the source by observation type and retention need, then validate the returned
21
+ records before normalization.
22
+
23
+ This skill covers METARs, historical surface observations, radiosondes, and
24
+ station metadata. It excludes model output, radar volumes, and satellite
25
+ imagery.
26
+
27
+ ## When to Use This Skill
28
+
29
+ - A task needs recent METAR observations for named stations or a small region.
30
+ - Historical hourly or synoptic surface data is needed from NOAA NCEI.
31
+ - A sounding workflow needs observed radiosonde profiles rather than model
32
+ profiles.
33
+ - Station identifiers, relocations, instruments, or metadata must be resolved.
34
+ - A fetch returned duplicate, stale, unit-ambiguous, or quality-flagged values.
35
+
36
+ Do not use forecast products as observations, and do not substitute a nearby
37
+ model grid point for a missing station report without explicit approval.
38
+
39
+ ## Choose the Source
40
+
41
+ | Need | Preferred source | Notes |
42
+ | --- | --- | --- |
43
+ | Recent aviation surface reports | NOAA Aviation Weather Center Data API | Query a small station/time set; use published cache files for bulk current data. |
44
+ | Historical global surface reports | NOAA NCEI Integrated Surface Database (ISD) | Preserve USAF/WBAN identity, units, and QC fields. |
45
+ | Historical or recent radiosondes | NOAA NCEI IGRA | Use the station inventory and retain level and QC metadata. |
46
+ | Station history and identifier changes | NOAA NCEI station history/HOMR | Resolve moves, renames, and observing-platform changes. |
47
+
48
+ Prefer an existing project adapter when it already handles the provider's
49
+ schema, retries, and cache. Record the exact endpoint or archive object used.
50
+
51
+ ## Define the Observation Request
52
+
53
+ Resolve these values before fetching:
54
+
55
+ - observation type and variables;
56
+ - station identifier system, not just the identifier string;
57
+ - start and end instants in UTC, including interval inclusivity;
58
+ - maximum acceptable observation age;
59
+ - raw, decoded, or both output forms;
60
+ - required quality flags and policy for rejected values;
61
+ - output units and missing-value representation;
62
+ - cache location and retention.
63
+
64
+ For spatial queries, also define the search geometry, distance limit, and how a
65
+ station is selected. Return the selected station and distance rather than
66
+ silently using the nearest report.
67
+
68
+ ## Fetch Recent METARs
69
+
70
+ The Aviation Weather Center exposes machine-readable METAR data under
71
+ `/api/data/metar`. Send a descriptive user agent, keep the query narrow, and
72
+ handle a valid `204 No Content` separately from an error.
73
+
74
+ ```python
75
+ import json
76
+ from urllib.error import HTTPError
77
+ from urllib.parse import urlencode
78
+ from urllib.request import Request, urlopen
79
+
80
+
81
+ def fetch_metars(stations, hours=2):
82
+ station_ids = sorted({station.strip().upper() for station in stations})
83
+ if not station_ids or any(len(station) != 4 for station in station_ids):
84
+ raise ValueError("use one or more four-character ICAO station IDs")
85
+ if not 1 <= hours <= 24:
86
+ raise ValueError("hours must be between 1 and 24 for this narrow query")
87
+
88
+ query = urlencode({
89
+ "ids": ",".join(station_ids),
90
+ "format": "json",
91
+ "hours": hours,
92
+ })
93
+ request = Request(
94
+ f"https://aviationweather.gov/api/data/metar?{query}",
95
+ headers={"User-Agent": "weather-observation-fetching/1.0 contact@example.org"},
96
+ )
97
+ try:
98
+ with urlopen(request, timeout=30) as response:
99
+ if response.status == 204:
100
+ return []
101
+ records = json.load(response)
102
+ except HTTPError as exc:
103
+ if exc.code == 429:
104
+ raise RuntimeError("AWC rate limit reached; honor Retry-After") from exc
105
+ raise
106
+
107
+ if not isinstance(records, list):
108
+ raise RuntimeError("unexpected METAR response shape")
109
+ return records
110
+ ```
111
+
112
+ Replace the example contact address with an appropriate project contact. For a
113
+ large current snapshot, download the provider's compressed cache file once
114
+ instead of issuing many station queries.
115
+
116
+ ## Fetch Historical Surface Data
117
+
118
+ For ISD:
119
+
120
+ 1. Resolve the station using the current station inventory and its USAF/WBAN
121
+ identifiers.
122
+ 2. Confirm that the station's coverage overlaps the requested time range.
123
+ 3. Use bulk HTTPS files for a large historical request; avoid one network call
124
+ per observation.
125
+ 4. Preserve the original report and source/QC codes before converting units.
126
+ 5. Treat trace values, missing sentinels, and calm or variable winds according
127
+ to the data format documentation.
128
+ 6. Join station metadata by both identifier and effective date when station
129
+ history matters.
130
+
131
+ Do not assume one station identifier always represents an unchanged location or
132
+ instrument throughout its archive.
133
+
134
+ ## Fetch Radiosonde Profiles
135
+
136
+ For IGRA:
137
+
138
+ 1. Search the station inventory by identifier or location and verify the
139
+ station's record period.
140
+ 2. Fetch the station file covering the requested dates rather than scraping an
141
+ interactive page.
142
+ 3. Select by the report's UTC time and retain nominal, launch, and release times
143
+ when the source supplies them.
144
+ 4. Preserve pressure, height, temperature, moisture, wind, level type, and QC
145
+ fields. Standard and significant levels are both scientifically relevant.
146
+ 5. Sort the profile only after parsing; do not invent levels or interpolate
147
+ across large gaps during acquisition.
148
+ 6. Report an absent launch or incomplete profile explicitly.
149
+
150
+ Many upper-air stations usually report near 00 and 12 UTC, but the archive is
151
+ the authority. Do not manufacture a schedule or select a different day solely
152
+ because a nominal time is missing.
153
+
154
+ ## Normalize Without Erasing Provenance
155
+
156
+ Each normalized record should retain:
157
+
158
+ - provider and dataset;
159
+ - station identifier plus identifier scheme;
160
+ - station latitude, longitude, elevation, and metadata effective date;
161
+ - observation time in UTC and, when available, receipt or ingestion time;
162
+ - raw report or raw archive row;
163
+ - decoded values with explicit units;
164
+ - provider quality flags and local QC decisions;
165
+ - retrieval time, source URL/object, and response identity.
166
+
167
+ Store original and converted values side by side when a conversion could affect
168
+ rounding. Never use the HTTP `Last-Modified` timestamp as the observation time.
169
+
170
+ ## Quality Control and Deduplication
171
+
172
+ - Treat provider flags as data, not decoration. Define which flags are accepted,
173
+ rejected, or retained with warnings.
174
+ - Deduplicate on provider identity, station, observation time, and report type.
175
+ When corrected reports exist, preserve the correction lineage.
176
+ - Check physical ranges only after handling missing and trace encodings.
177
+ - Verify wind direction conventions, temperature scales, pressure units, and
178
+ precipitation accumulation periods before combining sources.
179
+ - Keep station time, observation time, and ingestion time distinct.
180
+ - Flag stale reports against the request's maximum age rather than returning
181
+ them as current conditions.
182
+
183
+ ## Reliability and Caching
184
+
185
+ - Honor provider request limits, `Retry-After`, and published bulk-download
186
+ guidance.
187
+ - Retry timeouts, `408`, `429`, and transient `5xx` failures with bounded
188
+ backoff and jitter.
189
+ - Cache immutable archive files by URL/object identity and current API responses
190
+ for no longer than their update cadence permits.
191
+ - Write downloads to a temporary path, validate content and expected date range,
192
+ then rename atomically.
193
+ - Keep partial files separate from accepted cache entries.
194
+ - For one-shot processing, remove request-owned temporary observations in
195
+ `finally` only after the derived artifact and provenance record are durable.
196
+
197
+ ## Verification Checklist
198
+
199
+ - The station identifier scheme and station metadata are explicit.
200
+ - All selected observations fall inside the requested UTC interval.
201
+ - The report time, receipt time, and retrieval time are not conflated.
202
+ - Units, missing sentinels, trace values, and QC flags are handled explicitly.
203
+ - Raw reports or rows remain available for audit.
204
+ - Duplicate and corrected reports follow a documented rule.
205
+ - A no-data response is distinguished from provider failure.
206
+ - The final result reports stale, incomplete, or rejected observations.
207
+
208
+ ## Security & Safety Notes
209
+
210
+ - Use only public endpoints or data the user is authorized to access.
211
+ - Do not place API keys, credentials, signed URLs, or private station data in
212
+ examples, logs, caches, or provenance manifests.
213
+ - Keep TLS certificate verification enabled.
214
+ - Encode query parameters rather than concatenating untrusted station input into
215
+ a URL.
216
+ - Bound station count, time span, response size, retries, and parallelism.
217
+ - Follow provider terms, rate limits, and attribution requirements.
218
+
219
+ ## Common Pitfalls
220
+
221
+ - **The latest METAR is old:** The station has not reported recently. Apply the
222
+ maximum-age contract and report staleness.
223
+ - **A station lookup returns the wrong site:** ICAO, WMO, USAF/WBAN, and IGRA
224
+ identifiers were treated as interchangeable. Preserve the identifier scheme.
225
+ - **Temperatures look extreme:** Missing sentinels or units were converted as
226
+ real values. Parse format metadata before unit conversion.
227
+ - **A sounding has too few levels:** Only mandatory levels were retained or the
228
+ launch was incomplete. Preserve significant levels and surface data.
229
+ - **An archive record moved:** Station history changed. Join metadata by its
230
+ effective period and record the selected version.
231
+
232
+ ## Limitations
233
+
234
+ - Provider schemas, retention windows, station inventories, and usage limits can
235
+ change; consult current official documentation.
236
+ - Quality flags identify known conditions but do not guarantee that a
237
+ measurement is scientifically suitable for a particular analysis.
238
+ - This skill does not perform radar retrieval, satellite retrieval, model-data
239
+ fetching, or forecast verification.
240
+
241
+ ## Additional Resources
242
+
243
+ - [NOAA Aviation Weather Center Data API](https://aviationweather.gov/data/api/)
244
+ - [NOAA NCEI Integrated Surface Database](https://www.ncei.noaa.gov/products/land-based-station/integrated-surface-database)
245
+ - [NOAA NCEI Integrated Global Radiosonde Archive](https://www.ncei.noaa.gov/products/weather-balloon/integrated-global-radiosonde-archive)
246
+ - [NOAA NCEI station histories](https://www.ncei.noaa.gov/products/land-based-station/station-histories)
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: wiki-yylo
3
+ description: Use YYLO Ledger wiki Records as durable project knowledge. Search before
4
+ creating, classify information correctly, and make revision-safe Markdown updates
5
+ without editing Ledger storage directly.
6
+ category: project-management
7
+ risk: safe
8
+ source: https://github.com/yylo-dev/yylo-skills
9
+ source_repo: yylo-dev/yylo-skills
10
+ source_type: community
11
+ date_added: '2026-09-19'
12
+ license: MIT
13
+ license_source: https://github.com/yylo-dev/yylo-skills/blob/main/LICENSE
14
+ compatibility: Requires the `yy` CLI with the `wiki` record group installed (controller
15
+ or standalone). Revision-safe Markdown updates only; never edit Ledger storage directly.
16
+ argument-hint: '[wiki question or knowledge to find/create/update]'
17
+ enable-shell-directives: true
18
+ ---
19
+
20
+ # Use YYLO wiki Records
21
+
22
+ Treat Ledger as the source of truth. Use `yy ledger` in a YYLO controller and
23
+ `yylo-ledger` in a standalone Ledger project. Inspect `COMMAND wiki --help` before
24
+ acting; if `wiki` is absent, the installed Ledger version does not expose native
25
+ Record commands and must not be bypassed with direct file edits.
26
+
27
+ ## Choose the right record
28
+
29
+ Before writing, decide where the information belongs:
30
+
31
+ - **Wiki**: durable explanatory project or domain knowledge that future work must discover.
32
+ - **Task**: scoped requested work, status, dependencies, acceptance criteria, and completion evidence.
33
+ - **Workflow**: validated structured steps, not prose guidance.
34
+ - **Artifact**: generated evidence, reports, receipts, logs, model output, or binary payloads.
35
+ - **Source documentation**: documentation released and versioned with product code.
36
+
37
+ Do not put secrets, caches, session transcripts, temporary status, bulky generated
38
+ evidence, or owner-only operational receipts in a wiki.
39
+
40
+ ## Discover before creating
41
+
42
+ Use bounded summary searches first. Resolve records by immutable ID whenever one
43
+ is known; slugs and aliases are discovery conveniences, not replacement identity.
44
+
45
+ ```bash
46
+ yy ledger wiki search --text "deployment policy" --projection summary --limit 20 -f json
47
+ yy ledger wiki get RECORD_ID -f json
48
+ yy ledger wiki get RECORD_ID --raw
49
+ ```
50
+
51
+ Use `--scope archive|all` only when the request requires cold records. Request
52
+ `full` projection only when payload bytes are necessary.
53
+
54
+ ## Create durable Markdown
55
+
56
+ Use a file or stdin for substantial or shell-sensitive content:
57
+
58
+ ```bash
59
+ yy ledger wiki create --title "Service ownership" --file ownership.md
60
+ yy ledger wiki create --title "Incident notes" --file - < incident-notes.md
61
+ ```
62
+
63
+ Choose a stable title, namespace, slug, aliases, and relations deliberately. Keep
64
+ one topic per Record and link related immutable Record IDs rather than duplicating
65
+ truth.
66
+
67
+ ## Update safely
68
+
69
+ 1. Read the current Record and revision.
70
+ 2. Preserve its immutable ID and inspect history when intent is unclear.
71
+ 3. Follow `wiki update --help` for the installed compare-and-replace controls.
72
+ 4. Supply the expected revision and required preimage/digest evidence.
73
+ 5. Use file transport; do not rewrite Ledger files yourself.
74
+ 6. Read back the resulting revision and receipt.
75
+
76
+ A revision or preimage mismatch means the source changed: reread and reconcile.
77
+ Never force past concurrent edits. Archive is a lifecycle transition, not delete.
78
+
79
+ Use `--front-matter` only for canonical front-matter interchange and `--rendered`
80
+ for inert, HTML-escaped rendering. Use `history RECORD_ID` to understand revisions;
81
+ do not infer history from the latest payload alone.
82
+
83
+ ## Project wiki boundary
84
+
85
+ Portable controller guidance may live under the controller wiki, while project
86
+ and domain pages retain project-owned paths. Package-managed and project-owned
87
+ pages can coexist. Migration, runtime replacement, exceptional merge recovery,
88
+ release, deployment, and cold-archive maintenance remain authoritative runbooks,
89
+ not content to summarize into an everyday global skill.
90
+
91
+ ## Complete request
92
+
93
+ $ARGUMENTS
94
+
95
+ ## When to Use
96
+
97
+ - You need durable project or domain knowledge as YYLO Ledger wiki Records (search, create, revision-safe update).
98
+ - You must first decide the record belongs in the wiki rather than a task, workflow, artifact, or product docs.
99
+
100
+ ## Limitations
101
+
102
+ - Search before creating; one topic per Record, linked by immutable Record IDs.
103
+ - Never store secrets, caches, session transcripts, temporary status, bulky generated evidence, or owner-only receipts in a wiki.
104
+ - Updates bind to the expected revision/preimage; on mismatch reread and reconcile - never force past concurrent edits. Archive is a lifecycle transition, not deletion.
105
+ - If the `wiki` group is absent, fail closed and request a Ledger upgrade.
106
+
107
+ ### Example
108
+
109
+ ```bash
110
+ yy ledger wiki search --text "deployment policy" --projection summary --limit 20 -f json
111
+ yy ledger wiki get RECORD_ID -f json
112
+ ```
113
+
114
+ > Adapted from [yylo-dev/yylo-skills](https://github.com/yylo-dev/yylo-skills) (MIT) - v2.0.1; frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance.
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: workflow-yylo
3
+ description: Create and maintain validated YYLO Ledger workflow Records while keeping
4
+ storage, execution, and run evidence as separate explicit boundaries.
5
+ category: project-management
6
+ risk: safe
7
+ source: https://github.com/yylo-dev/yylo-skills
8
+ source_repo: yylo-dev/yylo-skills
9
+ source_type: community
10
+ date_added: '2026-09-19'
11
+ license: MIT
12
+ license_source: https://github.com/yylo-dev/yylo-skills/blob/main/LICENSE
13
+ compatibility: Requires the `yy` CLI with the `workflow` record group installed. Ledger
14
+ stores and validates workflow data; execution needs a separately selected runner
15
+ plus explicit authority.
16
+ argument-hint: '[workflow to find/create/update or execution question]'
17
+ enable-shell-directives: true
18
+ ---
19
+
20
+ # Use YYLO workflow Records
21
+
22
+ Treat Ledger as the source of truth for workflow identity, validated definition,
23
+ and revision history. Use `yy ledger` in a YYLO controller or `yylo-ledger`
24
+ standalone. Inspect `COMMAND workflow --help`; if the namespace is absent, do not
25
+ invent it or edit Ledger storage directly.
26
+
27
+ ## Keep three boundaries distinct
28
+
29
+ 1. **Ledger stores and validates workflow data.** It does not execute workflows.
30
+ 2. **A separately selected YYLO runner executes reviewed workflow data.** Storage
31
+ does not grant execution, network, mutation, release, or deployment authority.
32
+ 3. **Artifact Records retain run evidence.** Do not overwrite the workflow
33
+ definition with stdout, logs, model output, reports, or receipts.
34
+
35
+ The read-only Ledger host also has no workflow execution endpoint.
36
+
37
+ ## Discover and inspect
38
+
39
+ ```bash
40
+ yy ledger workflow search --text "release verification" --projection summary --limit 20 -f json
41
+ yy ledger workflow get RECORD_ID -f json
42
+ yy ledger workflow get RECORD_ID --raw
43
+ yy ledger workflow get RECORD_ID --validated
44
+ ```
45
+
46
+ Prefer immutable IDs after discovery. Use bounded projections and explicit archive
47
+ scope. `--validated` emits normalized YAML only after schema validation.
48
+
49
+ ## Author safe workflow data
50
+
51
+ A workflow v1 document requires a mapping with `schema_version: v1`, a non-empty
52
+ `workflow_id`, and a `steps` list whose step IDs are non-empty and unique.
53
+
54
+ ```yaml
55
+ schema_version: v1
56
+ workflow_id: focused-validation
57
+ steps:
58
+ - id: test
59
+ command: ["npm", "test"]
60
+ ```
61
+
62
+ Create through file/stdin transport:
63
+
64
+ ```bash
65
+ yy ledger workflow create --title "Focused validation" --file workflow.yaml
66
+ ```
67
+
68
+ Ledger rejects unsafe or non-portable YAML, including duplicate keys, aliases,
69
+ anchors, explicit tags, recursive structures, non-string mapping keys, implicit
70
+ date/time values, non-finite numbers, CRLF input, and unsupported values. Never
71
+ weaken validation by storing executable shell as an unvalidated substitute.
72
+
73
+ ## Revise safely
74
+
75
+ Read the current revision and history, then follow the installed
76
+ `workflow update --help` compare-and-replace contract. Bind updates to the
77
+ expected revision and preimage/digests, validate the result, and read it back.
78
+ On drift, stop and reconcile instead of forcing. Archive is non-destructive.
79
+
80
+ Before execution, freeze the exact workflow Record ID, revision, payload digest,
81
+ runner identity, inputs, and granted authorities. After execution, store bounded
82
+ outputs under `artifact-yylo` with workflow/run provenance. An execution request
83
+ never implies merge, release, publication, deployment, or production authority.
84
+
85
+ ## Complete request
86
+
87
+ $ARGUMENTS
88
+
89
+ ## When to Use
90
+
91
+ - You need to find, create, or revision-safe update validated YYLO Ledger workflow Records.
92
+ - You must keep storage, execution, and run-evidence boundaries explicit.
93
+
94
+ ## Limitations
95
+
96
+ - Ledger stores and validates workflow data; it never executes workflows and grants no execution, network, mutation, release, or deployment authority.
97
+ - Run evidence belongs in `artifact-yylo` records with workflow/run provenance - never overwrite the workflow definition with outputs.
98
+ - An execution request never implies merge, release, publication, deployment, or production authority. On revision drift, stop and reconcile instead of forcing.
99
+
100
+ ### Example
101
+
102
+ ```bash
103
+ yy ledger workflow search --text "release verification" --projection summary --limit 20 -f json
104
+ yy ledger workflow get RECORD_ID --validated
105
+ ```
106
+
107
+ > Adapted from [yylo-dev/yylo-skills](https://github.com/yylo-dev/yylo-skills) (MIT) - v2.0.1; frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-skills-collection",
3
- "version": "4.0.66",
3
+ "version": "4.0.68",
4
4
  "description": "OpenCode CLI plugin that automatically downloads and keeps skills up to date.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",