jma-weatherlisted
Install: claude install-skill tahodev/kurashi-skill
# jma-weather
気象庁が公式サイトで公開しているJSONデータから天気予報を取得するスキル。APIキー不要、`curl` だけで使える。
## 基本の流れ
1. エリアコードを決める
2. 予報JSONを取得する
3. 必要な時刻・地点の値を読む
### 1. エリアコードを決める
全国のエリア定義は1つのJSONにまとまっている。
```bash
curl -s https://www.jma.go.jp/bosai/common/const/area.json
```
構造: `centers` (管区気象台など) → `offices` (地方の予報単位。予報APIはこのコードを使う) → `class10s` / `class15s` / `class20s` (より細かい地域)。
よく使う `offices` コード:
| コード | 地域 | コード | 地域 |
| --- | --- | --- | --- |
| 014100 | 札幌 | 130000 | 東京 |
| 040000 | 仙台 | 270000 | 大阪 |
| 230000 | 名古屋 | 340000 | 広島 |
| 460040 | 鹿児島 | 471000 | 那覇 |
### 2. 予報JSONを取得する
```bash
# 天気・降水確率・気温(数日分)
curl -s https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json
# 短期予報のテキスト概況
curl -s https://www.jma.go.jp/bosai/forecast/data/overview_forecast/130000.json
```
`130000` の部分を調べたい地域の `offices` コードに変える。
### 3. JSONの読み方
`forecast` レスポンスは配列で、要素ごとに `publishingOffice` (発表気象台) と `reportDatetime` (発表時刻) を持つ。`timeSeries` に時系列データが入る。通常は2要素あり、1つ目が短期(天気・降水確率・気温)、2つ目が週間(7日先までの降水確率と最高/最低気温)を持つ。週間分だけ別エンドポイントはない。
- `timeSeries[].timeDefines`: 各時刻の枠。他の配列とインデックスが対応する。
- `areas[].weathers`: 「晴れ 時々 くもり」などの天気文字列。
- `areas[].weatherCodes`: 天気コード(文字列)。対応表は下記。
- `areas[].pops`: 降水確率(%)。時間帯ごと。
- `areas[].temps`: 気温(℃)。発表時刻によって最低/最高が入る枠が変わるので、`timeDefines` と突き合わせて「何の値か」を確認する。
主な天気コード(先頭3桁):
- 100番台: 晴れ (100: 晴)
- 200番台: くもり (200: 曇)
- 300番台: 雨 (300: 雨)
- 400番台: 雪 (400: 雪)
末尾2桁で「時々」「のち」「一時」などの変化を表す。細かい値は `weathers` の文字列をそのまま使うのが確実。
## 注意
- すべて気象庁の発表データそのまま。加工せず、発表時刻(`reportDatetime`)を一緒に伝える。