@qvac/skills 0.1.4 → 0.1.6

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.
@@ -1,43 +1,59 @@
1
1
  ---
2
2
  name: weather
3
3
  description: Get current weather and short forecasts for cities via wttr.in.
4
- tools: [http_request]
4
+ tools: [weather_lookup]
5
5
  platform: [darwin, linux, win32, ios, android]
6
- allow_list: [https://wttr.in/]
7
- version: 3
8
- # Tuned on Qwen3.5-2B with an offline eval (33 prompts x mention/prose routes), QVAC-24701.
9
- # v2: few-shot table. 2 repeats: overall 51/132 -> 77/130, "Nassau, Bahamas" 1/4 -> 4/4, city+country 2/24 -> 18/24,
10
- # ambiguous city 0/20 -> 6/20; 4B control 41/66 -> 59/66. Rules-first layouts lost on suffix slips (?3, ?1T).
6
+ version: 4
7
+ # Tuned on Qwen3.5-2B with an offline eval (35 prompts, mention route), QVAC-24701.
8
+ # v2: few-shot table. 2 repeats: overall 51/132 -> 77/130, "Nassau, Bahamas" 1/4 -> 4/4, city+country 2/24 -> 18/24.
11
9
  # v3: + country row. 3 repeats: v2 110/198 -> v3 121/198 (city+country 25 -> 31/36, forecast 17 -> 23/30).
12
- # Aliases, a second ambiguity row, and dropping ?T were tried and did not help (73, 74, 54 of ~130).
10
+ # Aliases, a second ambiguity row and dropping ?T were tried and did not help (73, 74, 54 of ~130).
11
+ # v4: weather_lookup instead of http_request, after v3 answered a 200 for a place that does not exist.
12
+ # 5 repeats, all variants in one sweep so they share a baseline: v3 97/171 -> v4 120/169. city+country
13
+ # 87 -> 93%, unambiguous 57 -> 91%, unknown 57 -> 84%, forecast 68 -> 88%, casual 65 -> 80%, the ticket
14
+ # prompt 80 -> 100%. Context is a wash (2335 -> 2378) though the body is 387 bytes smaller: the tool owns
15
+ # the URL, so three rules about spelling one went away.
16
+ # Not fixed. "Ask which Nassau" is 3/25 on v3 and 0/25 here, and asking when no place is named is 1/10 for
17
+ # both: a one-argument call is easy, so the model calls rather than asks. Rules that tell the model not to
18
+ # act have never cleared ~17% on a 2B in four versions, and a variant that made the tool refuse an
19
+ # ambiguous name measured 13% against 17%, so it was dropped rather than shipped.
13
20
  ---
14
21
 
15
22
  # Weather
16
23
 
17
- One `http_request` to wttr.in, then answer from the body. Always call it exactly like this, with `"method": "GET"`:
24
+ One `weather_lookup` call, then answer from the result. Always call it exactly like this:
18
25
 
19
26
  ```json
20
- { "url": "https://wttr.in/Nassau,+Bahamas?format=3", "method": "GET" }
27
+ { "location": "Nassau, Bahamas" }
21
28
  ```
22
29
 
23
- Match the user's request to a row for the URL:
30
+ Match the user's request to a row for the call:
24
31
 
25
32
  | User asks | Call |
26
33
  | --- | --- |
27
- | "weather in Nassau, Bahamas" | `https://wttr.in/Nassau,+Bahamas?format=3` |
28
- | "weather in London" / "London today" | `https://wttr.in/London?format=3` |
29
- | "Berlin tomorrow" / "this weekend" | `https://wttr.in/Berlin?2T` |
30
- | "Rome for the next 3 days" | `https://wttr.in/Rome?T` |
31
- | "how hot is it in Georgia, the country" | `https://wttr.in/Tbilisi,+Georgia?format=3` (a country → its capital) |
32
- | "weather in Nassau" (Nassau exists in the Bahamas and in New York) | no call — ask: "Which Nassau do you mean, the Bahamas or New York?" |
33
- | "what's the weather?" (no place) | no call — ask which city |
34
+ | "what's the weather?" — no place named | **no call.** Ask which city |
35
+ | "weather in Nassau, Bahamas" | `{ "location": "Nassau, Bahamas" }` |
36
+ | "weather in London" / "London today" | `{ "location": "London" }` |
37
+ | "Berlin tomorrow" / "this weekend" | `{ "location": "Berlin" }` |
38
+ | "Rome for the next 3 days" | `{ "location": "Rome" }` |
39
+ | "how hot is it in Georgia, the country" | `{ "location": "Tbilisi, Georgia" }` (a country → its capital) |
40
+ | "weather in Nassau" | `{ "location": "Nassau" }` — the result names both, ask which |
41
+
42
+ The result is the place on the first line, then the weather now, then one line per day:
43
+
44
+ ```
45
+ Nassau, New Providence, Bahamas
46
+ Now: 29°C / 84°F, Patchy rain nearby, feels like 33°C, humidity 71%, wind 21 km/h
47
+ 2026-09-16 (today): 29-29°C / 84-85°F, Partly Cloudy
48
+ 2026-09-17 (tomorrow): 28-29°C / 83-85°F, Moderate or heavy rain shower
49
+ ```
34
50
 
35
51
  ## Rules
36
52
 
37
- 1. **The location is exactly what the user wrote, spaces as `+`.** Keep a country or state they gave (`Nassau,+Bahamas`, not `Nassau`). Never add one they did not give. A country → its capital (`Tbilisi`).
38
- 2. **Ambiguous city names — Nassau, Springfield, Portland, Cambridge, Georgia, San Jose, Birmingham — with no country or state → do not call, ask which one.**
39
- 3. **The URL ends in `?format=3`, `?2T` or `?T`. Nothing else.** `?format=3` is the default for now/today/current. Write it in full: `London?3`, `London?format=3&format=3` and a bare `London` are all wrong.
40
- 4. **Status not 200, or body `location not found` → say the place could not be found and ask for a more specific name. Do not retry other cities. Never state a temperature you did not receive.**
41
- 5. wttr.in stops at 3 days: for "next week" say so and offer `?T`.
53
+ 1. **There is no default place.** If the user named none, do not call: ask which city. Never use a place from this file.
54
+ 2. **The location is exactly what the user wrote.** Keep a country or state they gave (`Nassau, Bahamas`, not `Nassau`). Never add one they did not give. A country → its capital (`Tbilisi`).
55
+ 3. **Name the place from the first line of the result, not the words the user used.** If they ask for Rome and the first line says `Lome, Maritime, Togo`, say it is Lome in Togo.
56
+ 4. **If the result is not a weather report, say what it says, in those words.** `No such place: "Xyzzyville, Atlantis"` → tell the user that place does not exist and ask for a real one. Do not look it up again under another name, and never state a temperature you did not receive.
57
+ 5. Forecasts stop at 3 days: for "next week" say so and give the 3 days you have.
42
58
 
43
- A `200` body like `Nassau, Bahamas: 🌦️ +30°C` is the answer: give that temperature and condition in one plain sentence.
59
+ Answer in one plain sentence with the temperature and the condition.